diff --git a/doc/Pacemaker_Explained/en-US/Ap-OCF.xml b/doc/Pacemaker_Explained/en-US/Ap-OCF.xml index 79a5bd4e91..f86e2d7378 100644 --- a/doc/Pacemaker_Explained/en-US/Ap-OCF.xml +++ b/doc/Pacemaker_Explained/en-US/Ap-OCF.xml @@ -1,209 +1,209 @@ More About OCF Resource Agents
Location of Custom Scripts - OCF Resource Agents are found in /usr/lib/ocf/resource.d/{provider}. + OCF Resource Agents are found in /usr/lib/ocf/resource.d/provider. When creating your own agents, you are encouraged to create a new directory under /usr/lib/ocf/resource.d/ so that they are not confused with (or overwritten by) the agents shipped with Heartbeat. So, for example, if you chose the provider name of bigCorp and wanted a new resource named bigApp, you would create a script called /usr/lib/ocf/resource.d/bigCorp/bigApp and define a resource: <primitive id="custom-app" class="ocf" provider="bigCorp" type="bigApp"/>
Actions All OCF Resource Agents are required to implement the following actions Required Actions for OCF Agents Action Description Instructions start Start the resource Return 0 on success and an appropriate error code otherwise. Must not report success until the resource is fully active. stop Stop the resource Return 0 on success and an appropriate error code otherwise. Must not report success until the resource is fully stopped. monitor Check the resource's state Exit 0 if the resource is running, 7 if it is stopped and anything else if it is failed. NOTE: The monitor script should test the state of the resource on the local machine only. meta-data Describe the resource Provide information about this resource as an XML snippet. Exit with 0. NOTE: This is not performed as root. validate-all Verify the supplied parameters are correct Exit with 0 if parameters are valid, 2 if not valid, 6 if resource is not configured.
Additional requirements (not part of the OCF specs) are placed on agents that will be used for advanced concepts like clones and multi-state resources. Optional Actions for OCF Agents Action Description Instructions promote Promote the local instance of a multi-state resource to the master/primary state Return 0 on success demote Demote the local instance of a multi-state resource to the slave/secondary state Return 0 on success notify Used by the cluster to send the agent pre and post notification events telling the resource what is or did just take place Must not fail. Must exit 0
Some actions specified in the OCF specs are not currently used by the cluster reload - reload the configuration of the resource instance without disrupting the service recover - a variant of the start action, this should try to recover a resource locally. Remember to use ocf-tester to verify that your new agent complies with the OCF standard properly.
How Does the Cluster Interpret the OCF Return Codes? The first thing the cluster does is check the return code against the expected result. If the result does not match the expected value, then the operation is considered to have failed and recovery action is initiated. There are three types of failure recovery: Types of recovery performed by the cluster Recovery Type Description Action Taken by the Cluster soft A transient error occurred Restart the resource or move it to a new location hard A non-transient error that may be specific to the current node occurred Move the resource elsewhere and prevent it from being retried on the current node fatal A non-transient error that will be common to all cluster nodes (I.e. a bad configuration was specified) Stop the resource and prevent it from being started on any cluster node
Assuming an action is considered to have failed, the following table outlines the different OCF return codes and the type of recovery the cluster will initiate when it is received. OCF Return Codes and How They are Handled OCF Return Code OCF Alias Description Recovery Type 0 OCF_SUCCESS Success. The command complete successfully. This is the expected result for all start, stop, promote and demote commands. soft 1 OCF_ERR_GENERIC Generic "there was a problem" error code. soft 2 OCF_ERR_ARGS The resource's configuration is not valid on this machine. Eg. Refers to a location/tool not found on the node. hard 3 OCF_ERR_UNIMPLEMENTED The requested action is not implemented. hard 4 OCF_ERR_PERM The resource agent does not have sufficient privileges to complete the task. hard 5 OCF_ERR_INSTALLED The tools required by the resource are not installed on this machine. hard 6 OCF_ERR_CONFIGURED The resource's configuration is invalid. Eg. A required parameters are missing. fatal 7 OCF_NOT_RUNNING The resource is safely stopped. The cluster will not attempt to stop a resource that returns this for any action. N/A 8 OCF_RUNNING_MASTER The resource is running in Master mode. soft 9 OCF_FAILED_MASTER The resource is in Master mode but has failed. The resource will be demoted, stopped and then started (and possibly promoted) again. soft other NA Custom error code. soft
Although counter intuitive, even actions that return 0 (aka. OCF_SUCCESS) can be considered to have failed. This can happen when a resource that is expected to be in the Master state is found running as a Slave, or when a resource is found active on multiple machines..
Exceptions Non-recurring monitor actions (probes) that find a resource active (or in Master mode) will not result in recovery action unless it is also found active elsewhere The recovery action taken when a resource is found active more than once is determined by the multiple-active property of the resource Recurring actions that return OCF_ERR_UNIMPLEMENTED do not cause any type of recovery
diff --git a/doc/Pacemaker_Explained/en-US/Ch-Basics.xml b/doc/Pacemaker_Explained/en-US/Ch-Basics.xml index 43b979eeb4..789ecf6224 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Basics.xml +++ b/doc/Pacemaker_Explained/en-US/Ch-Basics.xml @@ -1,308 +1,308 @@ Configuration Basics
Configuration Layout The cluster is written using XML notation and divided into two main sections; configuration and status. The status section contains the history of each resource on each node and based on this data, the cluster can construct the complete current state of the cluster. The authoritative source for the status section is the local resource manager (lrmd) process on each cluster node and the cluster will occasionally repopulate the entire section. For this reason it is never written to disk and admin's are advised against modifying it in any way. The configuration section contains the more traditional information like cluster options, lists of resources and indications of where they should be placed. The configuration section is the primary focus of this document. The configuration section itself is divided into four parts: Configuration options (called crm_config) Nodes Resources Resource relationships (called constraints) An empty configuration ]]>
The Current State of the Cluster Before one starts to configure a cluster, it is worth explaining how to view the finished product. For this purpose we have created the crm_mon utility that will display the current state of an active cluster. It can show the cluster status by node or by resource and can be used in either single-shot or dynamically-updating mode. There are also modes for displaying a list of the operations performed (grouped by node and resource) as well as information about failures. Using this tool, you can examine the state of the cluster for irregularities and see how it responds when you cause or simulate failures. Details on all the available options can be obtained using the crm_mon --help command.
Sample output from crm_mon # crm_mon ============ Last updated: Fri Nov 23 15:26:13 2007 Current DC: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec) 3 Nodes configured. 5 Resources configured. ============ Node: sles-1 (1186dc9a-324d-425a-966e-d757e693dc86): online 192.168.100.181 (heartbeat::ocf:IPaddr): Started sles-1 192.168.100.182 (heartbeat:IPaddr): Started sles-1 192.168.100.183 (heartbeat::ocf:IPaddr): Started sles-1 rsc_sles-1 (heartbeat::ocf:IPaddr): Started sles-1 child_DoFencing:2 (stonith:external/vmware): Started sles-1 Node: sles-2 (02fb99a8-e30e-482f-b3ad-0fb3ce27d088): standby Node: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec): online rsc_sles-2 (heartbeat::ocf:IPaddr): Started sles-3 rsc_sles-3 (heartbeat::ocf:IPaddr): Started sles-3 child_DoFencing:0 (stonith:external/vmware): Started sles-3
Sample output from crm_mon -n # crm_mon -n ============ Last updated: Fri Nov 23 15:26:13 2007 Current DC: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec) 3 Nodes configured. 5 Resources configured. ============ Node: sles-1 (1186dc9a-324d-425a-966e-d757e693dc86): online Node: sles-2 (02fb99a8-e30e-482f-b3ad-0fb3ce27d088): standby Node: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec): online Resource Group: group-1 192.168.100.181 (heartbeat::ocf:IPaddr): Started sles-1 192.168.100.182 (heartbeat:IPaddr): Started sles-1 192.168.100.183 (heartbeat::ocf:IPaddr): Started sles-1 rsc_sles-1 (heartbeat::ocf:IPaddr): Started sles-1 rsc_sles-2 (heartbeat::ocf:IPaddr): Started sles-3 rsc_sles-3 (heartbeat::ocf:IPaddr): Started sles-3 Clone Set: DoFencing child_DoFencing:0 (stonith:external/vmware): Started sles-3 child_DoFencing:1 (stonith:external/vmware): Stopped child_DoFencing:2 (stonith:external/vmware): Started sles-1
The DC (Designated Controller) node is where all the decisions are made and if the current DC fails a new one is elected from the remaining cluster nodes. The choice of DC is of no significance to an administrator beyond the fact that its logs will generally be more interesting.
How Should the Configuration be Updated? There are three basic rules for updating the cluster configuration: Rule 1 - Never edit the cib.xml file manually. Ever. I'm not making this up. Rule 2 - Read Rule 1 again. Rule 3 - The cluster will notice if you ignored rules 1 & 2 and refuse to use the configuration. Now that it is clear how NOT to update the configuration, we can begin to explain how you should. The most powerful tool for modifying the configuration is the cibadmin command which talks to a running cluster. With cibadmin, the user can query, add, remove, update or replace any part of the configuration and all changes take effect immediately so there is no need to perform a reload-like operation. The simplest way of using cibadmin is to us it to save the current configuration to a temporary file, edit that file with your favorite text or XML editor and then upload the revised configuration.
Safely using an editor to modify the cluster configuration cibadmin --query > tmp.xml vi tmp.xml cibadmin --replace --xml-file tmp.xml
Some of the better XML editors can make use of a Relax NG schema to help make sure any changes you make are valid. The schema describing the configuration can normally be found in /usr/lib/heartbeat/pacemaker.rng on most systems. If you only wanted to modify the resources section, you could instead do
Safely using an editor to modify a subsection of the cluster configuration cibadmin --query --obj_type resources > tmp.xml vi tmp.xml cibadmin --replace --obj_type resources --xml-file tmp.xml
to avoid modifying any other part of the configuration.
Quickly Deleting Part of the Configuration Identify the object you wish to delete. eg. Next identify the resource's tag name and id (in this case we'll chose primitive and child_DoFencing). Then simply execute: cibadmin --delete --crm_xml ‘<primitive id="child_DoFencing"/>'
Updating the Configuration Without Using XML Some common tasks can also be performed with one of the higher level tools that avoid the need to read or edit XML. To enable stonith for example, one could run: crm_attribute --attr-name stonith-enabled --attr-value true Or to see if somenode is allowed to run resources, there is: crm_standby --get-value --node-uname somenode Or to find the current location of my-test-rsc one can use: crm_resource --locate --resource my-test-rsc
Making Configuration Changes in a Sandbox Often it is desirable to preview the effects of a series of changes before updating the configuration atomically. For this purpose we have created crm_shadow which creates a "shadow" copy of the configuration and arranges for all the command line tools to use it. To begin, simply invoke crm_shadow and give it the name of a configuration to create Shadow copies are identified with a name, making it possible to have more than one and be sure to follow the simple on-screen instructions. Read the above carefully, failure to do so could result in you destroying the cluster's active configuration
Creating and displaying the active sandbox # crm_shadow --create test Setting up shadow instance Type Ctrl-D to exit the crm_shadow shell shadow[test]: shadow[test] # crm_shadow --which test
From this point on, all cluster commands will automatically use the shadow copy instead of talking to the cluster's active configuration. Once you have finished experimenting, you can either commit the changes, or discard them as shown below. Again, be sure to follow the on-screen instructions carefully. For a full list of crm_shadow options and commands, invoke it with the --help option. Using a sandbox to make multiple changes atomically shadow[test] # crm_failcount -G -r rsc_c001n01 name=fail-count-rsc_c001n01 value=0 shadow[test] # crm_standby -v on -n c001n02 shadow[test] # crm_standby -G -n c001n02 name=c001n02 scope=nodes value=on shadow[test] # cibadmin --erase --force shadow[test] # cibadmin --query ]]> shadow[test] # crm_shadow --delete test --force Now type Ctrl-D to exit the crm_shadow shell shadow[test] # exit # crm_shadow --which No shadow instance provided # cibadmin -Q ]]> Making changes in a sandbox and verifying the real configuration is untouched
Testing Your Configuration Changes We saw previously how to make a series of changes to a "shadow" copy of the configuration. Before loading the changes back into the cluster (eg. crm_shadow --commit mytest --force), it is often advisable to simulate the effect of the changes with ptest. Eg. ptest --live-check -VVVVV --save-graph tmp.graph --save-dotfile tmp.dot The tool uses the same library as the live cluster to show what it would have done given the supplied input. It's output, in addition to a significant amount of logging, is stored in two files tmp.graph and tmp.dot, both are representations of the same thing -- the cluster's response to your changes. In the graph file is stored the complete transition, containing a list of all the actions, their parameters and their pre-requisites. Because the transition graph is not terribly easy to read, the tool also generates a Graphviz dot-file representing the same information.
Small Cluster Transition An example transition graph as represented by Graphviz
Interpreting the Graphviz output Arrows indicate ordering dependencies Dashed-arrows indicate dependencies that are not present in the transition graph Actions with a dashed border of any color do not form part of the transition graph Actions with a green border form part of the transition graph Actions with a red border are ones the cluster would like to execute but are unrunnable Actions with a blue border are ones the cluster does not feel need to be executed Actions with orange text are pseudo/pretend actions that the cluster uses to simplify the graph Actions with black text are sent to the LRM - Resource actions have text of the form {rsc}_{action}_{interval} {node} + Resource actions have text of the form rsc_action_interval node Any action depending on an action with a red border will not be able to execute. Loops are really bad. Please report them to the development team. In the above example, it appears that a new node, node2, has come online and that the cluster is checking to make sure rsc1, rsc2 and rsc3 are not already running there (Indicated by the *_monitor_0 entries). Once it did that, and assuming the resources were not active there, it would have liked to stop rsc1 and rsc2 on node1 and move them to node2. However, there appears to be some problem and the cluster cannot or is not permitted to perform the stop actions which implies it also cannot perform the start actions. For some reason the cluster does not want to start rsc3 anywhere. For information on the options supported by ptest, use ptest --help
Complex Cluster Transition Another, slightly more complex, transition graph that you're not expected to be able to read
Do I Need to Update the Configuration on all Cluster Nodes? No. Any changes are immediately synchronized to the other active members of the cluster. To reduce bandwidth, the cluster only broadcasts the incremental updates that result from your changes and uses MD5 sums to ensure that each copy is completely consistent.
diff --git a/doc/Pacemaker_Explained/en-US/Ch-Stonith.xml b/doc/Pacemaker_Explained/en-US/Ch-Stonith.xml index 23ea52f015..c5ef7570e5 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Stonith.xml +++ b/doc/Pacemaker_Explained/en-US/Ch-Stonith.xml @@ -1,84 +1,84 @@ Protecting Your Data - STONITH
Why You Need STONITH STONITH is an acronym for Shoot-The-Other-Node-In-The-Head and it protects your data from being corrupted by rouge nodes or concurrent access. Just because a node is unresponsive, this doesn't mean it isn't accessing your data. The only way to be 100% sure that your data is safe, is to use STONITH so we can be certain that the node is truly offline, before allowing the data to be accessed from another node. STONITH also has a role to play in the event that a clustered service cannot be stopped. In this case, the cluster uses STONITH to force the whole node offline, thereby making it safe to start the service elsewhere.
What STONITH Device Should You Use It is crucial that the STONITH device can allow the cluster to differentiate between a node failure and a network one. The biggest mistake people make in choosing a STONITH device is to use remote power switch (such as many on-board IMPI controllers) that shares power with the node it controls. In such cases, the cluster cannot be sure if the node is really offline, or active and suffering from a network fault. Likewise, any device that relies on the machine being active (such as SSH-based "devices" used during testing) are inappropriate.
Configuring STONITH Find the correct driver: stonith -L Since every device is different, the parameters needed to configure it will vary. - To find out the parameters required by the device: stonith -t {type} -n + To find out the parameters required by the device: stonith -t type -n Hopefully the developers chose names that make sense, if not you can query for some additional information by finding an active cluster node and running: - lrmadmin -M stonith {type} pacemaker + lrmadmin -M stonith type pacemaker The output should be XML formatted text containing additional parameter descriptions - Create a file called stonith.xml containing a primitive resource with a class of stonith, a type of {type} and a parameter for each of the values returned in step 2 + Create a file called stonith.xml containing a primitive resource with a class of stonith, a type of type and a parameter for each of the values returned in step 2 Create a clone from the primitive resource if the device can shoot more than one node and supports multiple simultaneous connections. Upload it into the CIB using cibadmin: cibadmin -C -o resources --xml-file stonith.xml
Example Assuming we have an IBM BladeCenter consisting of four nodes and the management interface is active on 10.0.0.1, then we would chose the external/ibmrsa driver in step 2 and obtain the following list of parameters
Obtaining a list of STONITH Parameters stonith -t external/ibmrsa -n hostname ipaddr userid passwd type
from which we would create a STONITH resource fragment that might look like this Sample STONITH Resource ]]>
diff --git a/pengine/graph.c b/pengine/graph.c index 6d9b6f9f48..ece1831951 100644 --- a/pengine/graph.c +++ b/pengine/graph.c @@ -1,784 +1,784 @@ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include gboolean update_action(action_t *action); gboolean update_action_states(GListPtr actions) { crm_debug_2("Updating %d actions", g_list_length(actions)); slist_iter( action, action_t, actions, lpc, update_action(action); ); return TRUE; } static gboolean any_possible(resource_t *rsc, const char *task) { if(rsc && rsc->children) { slist_iter(child, resource_t, rsc->children, lpc, if(any_possible(child, task)) { return TRUE; } ); } else if(rsc) { slist_iter(op, action_t, rsc->actions, lpc, if(task && safe_str_neq(op->task, task)) { continue; } if(op->runnable) { return TRUE; } ); } return FALSE; } static action_t *first_required(resource_t *rsc, const char *task) { if(rsc && rsc->children) { slist_iter(child, resource_t, rsc->children, lpc, action_t *op = first_required(child, task); if(op) { return op; } ); } else if(rsc) { slist_iter(op, action_t, rsc->actions, lpc, if(task && safe_str_neq(op->task, task)) { continue; } if(op->optional == FALSE) { return op; } ); } return NULL; } gboolean update_action(action_t *action) { int local_type = 0; int default_log_level = LOG_DEBUG_3; int log_level = default_log_level; gboolean changed = FALSE; do_crm_log_unlikely(log_level, "Processing action %s: %s %s %s", action->uuid, action->optional?"optional":"required", action->runnable?"runnable":"unrunnable", action->pseudo?"pseudo":action->task); slist_iter( other, action_wrapper_t, action->actions_before, lpc, gboolean other_changed = FALSE; node_t *node = other->action->node; resource_t *other_rsc = other->action->rsc; enum rsc_role_e other_role = RSC_ROLE_UNKNOWN; unsigned long long other_flags = 0; const char *other_id = "None"; if(other_rsc) { other_id = other_rsc->id; other_flags = other_rsc->flags; other_role = other_rsc->fns->state(other_rsc, TRUE); } if(other->type & pe_order_test) { log_level = LOG_NOTICE; do_crm_log_unlikely(log_level, "Processing action %s: %s %s %s", action->uuid, action->optional?"optional":"required", action->runnable?"runnable":"unrunnable", action->pseudo?"pseudo":action->task); } else { log_level = default_log_level; } do_crm_log_unlikely(log_level, " Checking action %s: %s %s %s (flags=0x%.6x)", other->action->uuid, other->action->optional?"optional":"required", other->action->runnable?"runnable":"unrunnable", other->action->pseudo?"pseudo":other->action->task, other->type); local_type = other->type; if((local_type & pe_order_demote_stop) && other->action->pseudo == FALSE && other_role > RSC_ROLE_SLAVE && node != NULL && node->details->online) { local_type |= pe_order_implies_left; do_crm_log_unlikely(log_level,"Upgrading demote->stop constraint to implies_left"); } if((local_type & pe_order_demote) && other->action->pseudo == FALSE && other_role > RSC_ROLE_SLAVE && node != NULL && node->details->online) { local_type |= pe_order_runnable_left; do_crm_log_unlikely(log_level,"Upgrading restart constraint to runnable_left"); } if((local_type & pe_order_complex_right) && (local_type ^ pe_order_complex_right) != pe_order_optional) { if(action->optional && other->action->optional == FALSE) { local_type |= pe_order_implies_right; do_crm_log_unlikely(log_level,"Upgrading complex constraint to implies_right"); } else if(action->runnable && any_possible(other->action->rsc, RSC_START) == FALSE) { action_t *first = first_required(action->rsc, RSC_START); if(first && first->runnable) { do_crm_log_unlikely( log_level-1, " * Marking action %s manditory because of %s (complex right)", first->uuid, other->action->uuid); action->runnable = FALSE; first->runnable = FALSE; update_action(first); changed = TRUE; } } } if((local_type & pe_order_complex_left) && action->optional == FALSE && other->action->optional && (local_type ^ pe_order_complex_left) != pe_order_optional) { local_type |= pe_order_implies_left; do_crm_log_unlikely(log_level,"Upgrading complex constraint to implies_left"); } if((local_type & pe_order_shutdown) && action->optional && other->action->optional == FALSE && is_set(other_flags, pe_rsc_shutdown)) { action->optional = FALSE; changed = TRUE; do_crm_log_unlikely(log_level-1, " * Marking action %s manditory because of %s (complex)", action->uuid, other->action->uuid); } if((local_type & pe_order_restart) && other_role > RSC_ROLE_STOPPED) { if(other_rsc && other_rsc->variant == pe_native) { local_type |= pe_order_implies_left; do_crm_log_unlikely(log_level,"Upgrading restart constraint to implies_left"); } if(other->action->optional && other->action->runnable && action->runnable == FALSE) { do_crm_log_unlikely(log_level-1, " * Marking action %s manditory because %s is unrunnable", other->action->uuid, action->uuid); other->action->optional = FALSE; if(other_rsc) { set_bit(other_rsc->flags, pe_rsc_shutdown); } other_changed = TRUE; } } if((local_type & pe_order_runnable_left) && other->action->runnable == FALSE) { if(other->action->implied_by_stonith) { do_crm_log_unlikely(log_level, "Ignoring un-runnable - implied_by_stonith"); } else if(action->runnable == FALSE) { do_crm_log_unlikely(log_level+1, "Already un-runnable"); } else { action->runnable = FALSE; do_crm_log_unlikely(log_level-1, " * Marking action %s un-runnable because of %s", action->uuid, other->action->uuid); changed = TRUE; } } if((local_type & pe_order_runnable_right) && action->runnable == FALSE) { if(action->pseudo) { do_crm_log_unlikely(log_level, "Ignoring un-runnable - pseudo"); } else if(other->action->runnable == FALSE) { do_crm_log_unlikely(log_level+1, "Already un-runnable"); } else { other->action->runnable = FALSE; do_crm_log_unlikely(log_level-1, " * Marking action %s un-runnable because of %s", other->action->uuid, action->uuid); other_changed = TRUE; } } if(local_type & pe_order_implies_left) { if(other->action->optional == FALSE) { /* nothing to do */ do_crm_log_unlikely(log_level+1, " Ignoring implies left - redundant"); } else if(safe_str_eq(other->action->task, RSC_STOP) && other_role == RSC_ROLE_STOPPED) { do_crm_log_unlikely(log_level-1, " Ignoring implies left - %s already stopped", other_id); } else if((local_type & pe_order_demote) && other_role < RSC_ROLE_MASTER) { do_crm_log_unlikely(log_level-1, " Ignoring implies left - %s already demoted", other_id); } else if(action->optional == FALSE) { other->action->optional = FALSE; - do_crm_log_unlikely(log_level-1, + do_crm_log_unlikely(LOG_ERR, " * (implies left) Marking action %s mandatory because of %s", other->action->uuid, action->uuid); other_changed = TRUE; } else { do_crm_log_unlikely(log_level, " Ignoring implies left"); } } if(local_type & pe_order_implies_left_printed) { if(other->action->optional == TRUE && other->action->print_always == FALSE) { if(action->optional == FALSE || (other->action->pseudo && action->print_always)) { other_changed = TRUE; other->action->print_always = TRUE; do_crm_log_unlikely(log_level-1, " * (implies left) Ensuring action %s is included because of %s", other->action->uuid, action->uuid); } } } if(local_type & pe_order_implies_right) { if(action->optional == FALSE) { /* nothing to do */ do_crm_log_unlikely(log_level+1, " Ignoring implies right - redundant"); } else if(other->action->optional == FALSE) { action->optional = FALSE; do_crm_log_unlikely(log_level-1, " * (implies right) Marking action %s mandatory because of %s", action->uuid, other->action->uuid); changed = TRUE; } else { do_crm_log_unlikely(log_level, " Ignoring implies right"); } } if(local_type & pe_order_implies_right_printed) { if(action->optional == TRUE && action->print_always == FALSE) { if(other->action->optional == FALSE || (action->pseudo && other->action->print_always)) { changed = TRUE; action->print_always = TRUE; do_crm_log_unlikely(log_level-1, " * (implies right) Ensuring action %s is included because of %s", action->uuid, other->action->uuid); } } } if(other_changed) { do_crm_log_unlikely(log_level, "%s changed, processing after list", other->action->uuid); update_action(other->action); slist_iter( before_other, action_wrapper_t, other->action->actions_after, lpc2, do_crm_log_unlikely(log_level, "%s changed, processing %s", other->action->uuid, before_other->action->uuid); update_action(before_other->action); ); slist_iter( before_other, action_wrapper_t, other->action->actions_before, lpc2, do_crm_log_unlikely(log_level, "%s changed, processing %s", other->action->uuid, before_other->action->uuid); update_action(before_other->action); ); } ); if(changed) { update_action(action); do_crm_log_unlikely(log_level, "%s changed, processing after list", action->uuid); slist_iter( other, action_wrapper_t, action->actions_after, lpc, do_crm_log_unlikely(log_level, "%s changed, processing %s", action->uuid, other->action->uuid); update_action(other->action); ); do_crm_log_unlikely(log_level, "%s changed, processing before list", action->uuid); slist_iter( other, action_wrapper_t, action->actions_before, lpc, do_crm_log_unlikely(log_level, "%s changed, processing %s", action->uuid, other->action->uuid); update_action(other->action); ); } return FALSE; } gboolean shutdown_constraints( node_t *node, action_t *shutdown_op, pe_working_set_t *data_set) { /* add the stop to the before lists so it counts as a pre-req * for the shutdown */ slist_iter( rsc, resource_t, node->details->running_rsc, lpc, if(is_not_set(rsc->flags, pe_rsc_managed)) { continue; } custom_action_order( rsc, stop_key(rsc), NULL, NULL, crm_strdup(CRM_OP_SHUTDOWN), shutdown_op, pe_order_implies_left, data_set); ); return TRUE; } gboolean stonith_constraints( node_t *node, action_t *stonith_op, pe_working_set_t *data_set) { CRM_CHECK(stonith_op != NULL, return FALSE); /* * Make sure the stonith OP occurs before we start any shared resources */ if(stonith_op != NULL) { slist_iter( rsc, resource_t, data_set->resources, lpc, rsc->cmds->stonith_ordering(rsc, stonith_op, data_set); ); } /* add the stonith OP as a stop pre-req and the mark the stop * as a pseudo op - since its now redundant */ return TRUE; } xmlNode * action2xml(action_t *action, gboolean as_input) { gboolean needs_node_info = TRUE; xmlNode * action_xml = NULL; xmlNode * args_xml = NULL; char *action_id_s = NULL; if(action == NULL) { return NULL; } crm_debug_4("Dumping action %d as XML", action->id); if(safe_str_eq(action->task, CRM_OP_FENCE)) { action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT); /* needs_node_info = FALSE; */ } else if(safe_str_eq(action->task, CRM_OP_SHUTDOWN)) { action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT); } else if(safe_str_eq(action->task, CRM_OP_LRM_REFRESH)) { action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT); /* } else if(safe_str_eq(action->task, RSC_PROBED)) { */ /* action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT); */ } else if(action->pseudo) { action_xml = create_xml_node(NULL, XML_GRAPH_TAG_PSEUDO_EVENT); needs_node_info = FALSE; } else { action_xml = create_xml_node(NULL, XML_GRAPH_TAG_RSC_OP); } action_id_s = crm_itoa(action->id); crm_xml_add(action_xml, XML_ATTR_ID, action_id_s); crm_free(action_id_s); crm_xml_add(action_xml, XML_LRM_ATTR_TASK, action->task); if(action->rsc != NULL && action->rsc->clone_name != NULL) { char *clone_key = NULL; const char *interval_s = g_hash_table_lookup(action->meta, "interval"); int interval = crm_parse_int(interval_s, "0"); if(safe_str_eq(action->task, RSC_NOTIFY)) { const char *n_type = g_hash_table_lookup(action->meta, "notify_type"); const char *n_task = g_hash_table_lookup(action->meta, "notify_operation"); CRM_CHECK(n_type != NULL, crm_err("No notify type value found for %s", action->uuid)); CRM_CHECK(n_task != NULL, crm_err("No notify operation value found for %s", action->uuid)); clone_key = generate_notify_key(action->rsc->clone_name, n_type, n_task); } else { clone_key = generate_op_key(action->rsc->clone_name, action->task, interval); } CRM_CHECK(clone_key != NULL, crm_err("Could not generate a key for %s", action->uuid)); crm_xml_add(action_xml, XML_LRM_ATTR_TASK_KEY, clone_key); crm_xml_add(action_xml, "internal_"XML_LRM_ATTR_TASK_KEY, action->uuid); crm_free(clone_key); } else { crm_xml_add(action_xml, XML_LRM_ATTR_TASK_KEY, action->uuid); } if(needs_node_info && action->node != NULL) { crm_xml_add(action_xml, XML_LRM_ATTR_TARGET, action->node->details->uname); crm_xml_add(action_xml, XML_LRM_ATTR_TARGET_UUID, action->node->details->id); } if(action->failure_is_fatal == FALSE) { add_hash_param(action->meta, XML_ATTR_TE_ALLOWFAIL, XML_BOOLEAN_TRUE); } if(as_input) { return action_xml; } if(action->rsc) { if(action->pseudo == FALSE) { int lpc = 0; xmlNode *rsc_xml = create_xml_node( action_xml, crm_element_name(action->rsc->xml)); const char *attr_list[] = { XML_AGENT_ATTR_CLASS, XML_AGENT_ATTR_PROVIDER, XML_ATTR_TYPE }; if(action->rsc->clone_name != NULL) { crm_debug("Using clone name %s for %s", action->rsc->clone_name, action->rsc->id); crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->clone_name); crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); } else { crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->id); crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->long_name); } for(lpc = 0; lpc < DIMOF(attr_list); lpc++) { crm_xml_add(rsc_xml, attr_list[lpc], g_hash_table_lookup(action->rsc->meta, attr_list[lpc])); } } } args_xml = create_xml_node(NULL, XML_TAG_ATTRS); crm_xml_add(args_xml, XML_ATTR_CRM_VERSION, CRM_FEATURE_SET); g_hash_table_foreach(action->extra, hash2field, args_xml); if(action->rsc != NULL && safe_str_neq(action->task, RSC_STOP)) { g_hash_table_foreach(action->rsc->parameters, hash2smartfield, args_xml); } g_hash_table_foreach(action->meta, hash2metafield, args_xml); if(action->rsc != NULL) { int lpc = 0; char *value = NULL; const char *key = NULL; const char *meta_list[] = { XML_RSC_ATTR_UNIQUE, XML_RSC_ATTR_INCARNATION, XML_RSC_ATTR_INCARNATION_MAX, XML_RSC_ATTR_INCARNATION_NODEMAX, XML_RSC_ATTR_MASTER_MAX, XML_RSC_ATTR_MASTER_NODEMAX, }; for(lpc = 0; lpc < DIMOF(meta_list); lpc++) { key = meta_list[lpc]; value = g_hash_table_lookup(action->rsc->meta, key); if(value != NULL) { char *key_copy = crm_strdup(key); /* fucking glib */ hash2metafield(key_copy, value, args_xml); crm_free(key_copy); } } } sorted_xml(args_xml, action_xml, FALSE); crm_log_xml_debug_4(action_xml, "dumped action"); free_xml(args_xml); return action_xml; } static gboolean should_dump_action(action_t *action) { int log_filter = LOG_DEBUG_5; CRM_CHECK(action != NULL, return FALSE); if(action->dumped) { do_crm_log_unlikely(log_filter, "action %d (%s) was already dumped", action->id, action->uuid); return FALSE; } else if(action->runnable == FALSE) { do_crm_log_unlikely(log_filter, "action %d (%s) was not runnable", action->id, action->uuid); return FALSE; } else if(action->optional && action->print_always == FALSE) { do_crm_log_unlikely(log_filter, "action %d (%s) was optional", action->id, action->uuid); return FALSE; } else if(action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { const char * interval = NULL; interval = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL); /* make sure probes and recurring monitors go through */ if(safe_str_neq(action->task, RSC_STATUS) && interval == NULL) { do_crm_log_unlikely(log_filter, "action %d (%s) was for an unmanaged resource (%s)", action->id, action->uuid, action->rsc->id); return FALSE; } } if(action->pseudo || safe_str_eq(action->task, CRM_OP_FENCE) || safe_str_eq(action->task, CRM_OP_SHUTDOWN)) { /* skip the next checks */ return TRUE; } if(action->node == NULL) { pe_err("action %d (%s) was not allocated", action->id, action->uuid); log_action(LOG_DEBUG, "Unallocated action", action, FALSE); return FALSE; } else if(action->node->details->online == FALSE) { pe_err("action %d was (%s) scheduled for offline node", action->id, action->uuid); log_action(LOG_DEBUG, "Action for offline node", action, FALSE); return FALSE; #if 0 /* but this would also affect resources that can be safely * migrated before a fencing op */ } else if(action->node->details->unclean == FALSE) { pe_err("action %d was (%s) scheduled for unclean node", action->id, action->uuid); log_action(LOG_DEBUG, "Action for unclean node", action, FALSE); return FALSE; #endif } return TRUE; } /* lowest to highest */ static gint sort_action_id(gconstpointer a, gconstpointer b) { const action_wrapper_t *action_wrapper2 = (const action_wrapper_t*)a; const action_wrapper_t *action_wrapper1 = (const action_wrapper_t*)b; if(a == NULL) { return 1; } if(b == NULL) { return -1; } if(action_wrapper1->action->id > action_wrapper2->action->id) { return -1; } if(action_wrapper1->action->id < action_wrapper2->action->id) { return 1; } return 0; } static gboolean should_dump_input(int last_action, action_t *action, action_wrapper_t *wrapper) { int type = wrapper->type; int log_dump = LOG_DEBUG_3; int log_filter = LOG_DEBUG_3; type &= ~pe_order_implies_left_printed; type &= ~pe_order_implies_right_printed; type &= ~pe_order_optional; wrapper->state = pe_link_not_dumped; if(last_action == wrapper->action->id) { do_crm_log_unlikely(log_filter, "Input (%d) %s duplicated for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); wrapper->state = pe_link_dup; return FALSE; } else if(wrapper->type == pe_order_none) { do_crm_log_unlikely(log_filter, "Input (%d) %s suppressed for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); return FALSE; } else if(wrapper->action->runnable == FALSE && type == pe_order_none) { do_crm_log_unlikely(log_filter, "Input (%d) %s optional (ordering) for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); return FALSE; } else if(action->pseudo && (wrapper->type & pe_order_stonith_stop)) { do_crm_log_unlikely(log_filter, "Input (%d) %s suppressed for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); return FALSE; } else if(wrapper->action->dumped || should_dump_action(wrapper->action)) { do_crm_log_unlikely(log_dump, "Input (%d) %s should be dumped for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); goto dump; #if 0 } if(wrapper->action->runnable && wrapper->action->pseudo && wrapper->action->rsc->variant != pe_native) { do_crm_log(LOG_CRIT, "Input (%d) %s should be dumped for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); goto dump; #endif } else if(wrapper->action->optional == TRUE && wrapper->action->print_always == FALSE) { do_crm_log_unlikely(log_filter, "Input (%d) %s optional for %s", wrapper->action->id, wrapper->action->uuid, action->uuid); do_crm_log_unlikely(log_filter, "Input (%d) %s n=%p p=%d r=%d o=%d a=%d f=0x%.6x", wrapper->action->id, wrapper->action->uuid, wrapper->action->node, wrapper->action->pseudo, wrapper->action->runnable, wrapper->action->optional, wrapper->action->print_always, wrapper->type); return FALSE; } dump: do_crm_log_unlikely(log_dump, "Input (%d) %s n=%p p=%d r=%d o=%d a=%d f=0x%.6x dumped for %s", wrapper->action->id, wrapper->action->uuid, wrapper->action->node, wrapper->action->pseudo, wrapper->action->runnable, wrapper->action->optional, wrapper->action->print_always, wrapper->type, action->uuid); return TRUE; } void graph_element_from_action(action_t *action, pe_working_set_t *data_set) { int last_action = -1; int synapse_priority = 0; xmlNode * syn = NULL; xmlNode * set = NULL; xmlNode * in = NULL; xmlNode * input = NULL; xmlNode * xml_action = NULL; if(should_dump_action(action) == FALSE) { return; } action->dumped = TRUE; syn = create_xml_node(data_set->graph, "synapse"); set = create_xml_node(syn, "action_set"); in = create_xml_node(syn, "inputs"); crm_xml_add_int(syn, XML_ATTR_ID, data_set->num_synapse); data_set->num_synapse++; if(action->rsc != NULL) { synapse_priority = action->rsc->priority; } if(action->priority > synapse_priority) { synapse_priority = action->priority; } if(synapse_priority > 0) { crm_xml_add_int(syn, XML_CIB_ATTR_PRIORITY, synapse_priority); } xml_action = action2xml(action, FALSE); add_node_nocopy(set, crm_element_name(xml_action), xml_action); action->actions_before = g_list_sort( action->actions_before, sort_action_id); slist_iter(wrapper,action_wrapper_t,action->actions_before,lpc, if(should_dump_input(last_action, action, wrapper) == FALSE) { continue; } wrapper->state = pe_link_dumped; CRM_CHECK(last_action < wrapper->action->id, ;); last_action = wrapper->action->id; input = create_xml_node(in, "trigger"); xml_action = action2xml(wrapper->action, TRUE); add_node_nocopy(input, crm_element_name(xml_action), xml_action); ); } diff --git a/pengine/regression.sh b/pengine/regression.sh index 4f05743c26..47889918e4 100755 --- a/pengine/regression.sh +++ b/pengine/regression.sh @@ -1,333 +1,334 @@ #!/bin/bash # Copyright (C) 2004 Andrew Beekhof # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # if [ -x /usr/bin/valgrind ]; then export G_SLICE=always-malloc VALGRIND_CMD="valgrind -q --show-reachable=no --leak-check=full --trace-children=no --time-stamp=yes --num-callers=20 --suppressions=./ptest.supp" fi . regression.core.sh create_mode="true" echo Generating test outputs for these tests... # do_test file description echo Done. echo "" echo Performing the following tests... create_mode="false" echo "" do_test simple1 "Offline " do_test simple2 "Start " do_test simple3 "Start 2 " do_test simple4 "Start Failed" do_test simple6 "Stop Start " do_test simple7 "Shutdown " #do_test simple8 "Stonith " #do_test simple9 "Lower version" #do_test simple10 "Higher version" do_test simple11 "Priority (ne)" do_test simple12 "Priority (eq)" do_test simple8 "Stickiness" echo "" do_test params-0 "Params: No change" do_test params-1 "Params: Changed" do_test params-2 "Params: Resource definition" do_test params-4 "Params: Reload" do_test novell-251689 "Resource definition change + target_role=stopped" do_test bug-lf-2106 "Restart all anonymous clone instances after config change" echo "" do_test orphan-0 "Orphan ignore" do_test orphan-1 "Orphan stop" echo "" do_test target-0 "Target Role : baseline" do_test target-1 "Target Role : test" echo "" do_test date-1 "Dates" -d "2005-020" do_test date-2 "Date Spec - Pass" -d "2005-020T12:30" do_test date-3 "Date Spec - Fail" -d "2005-020T11:30" do_test probe-0 "Probe (anon clone)" do_test probe-1 "Pending Probe" do_test probe-2 "Correctly re-probe cloned groups" do_test standby "Standby" do_test comments "Comments" echo "" do_test rsc_dep1 "Must not " do_test rsc_dep3 "Must " do_test rsc_dep5 "Must not 3 " do_test rsc_dep7 "Must 3 " do_test rsc_dep10 "Must (but cant)" do_test rsc_dep2 "Must (running) " do_test rsc_dep8 "Must (running : alt) " do_test rsc_dep4 "Must (running + move)" do_test asymmetric "Asymmetric - require explicit location constraints" echo "" do_test order1 "Order start 1 " do_test order2 "Order start 2 " do_test order3 "Order stop " do_test order4 "Order (multiple) " do_test order5 "Order (move) " do_test order6 "Order (move w/ restart) " do_test order7 "Order (manditory) " do_test order-optional "Order (score=0) " do_test order-required "Order (score=INFINITY) " do_test bug-lf-2171 "Prevent group start when clone is stopped" do_test order-clone "Clone ordering should be able to prevent startup of dependant clones" do_test order-sets "Ordering for resource sets" echo "" do_test coloc-loop "Colocation - loop" do_test coloc-many-one "Colocation - many-to-one" do_test coloc-list "Colocation - many-to-one with list" do_test coloc-group "Colocation - groups" do_test coloc-slave-anti "Anti-colocation with slave shouldn't prevent master colocation" do_test coloc-attr "Colocation based on node attributes" #echo "" #do_test agent1 "version: lt (empty)" #do_test agent2 "version: eq " #do_test agent3 "version: gt " echo "" do_test attrs1 "string: eq (and) " do_test attrs2 "string: lt / gt (and)" do_test attrs3 "string: ne (or) " do_test attrs4 "string: exists " do_test attrs5 "string: not_exists " do_test attrs6 "is_dc: true " do_test attrs7 "is_dc: false " do_test attrs8 "score_attribute " echo "" do_test mon-rsc-1 "Schedule Monitor - start" do_test mon-rsc-2 "Schedule Monitor - move " do_test mon-rsc-3 "Schedule Monitor - pending start " do_test mon-rsc-4 "Schedule Monitor - move/pending start" echo "" do_test rec-rsc-0 "Resource Recover - no start " do_test rec-rsc-1 "Resource Recover - start " do_test rec-rsc-2 "Resource Recover - monitor " do_test rec-rsc-3 "Resource Recover - stop - ignore" do_test rec-rsc-4 "Resource Recover - stop - block " do_test rec-rsc-5 "Resource Recover - stop - fence " do_test rec-rsc-6 "Resource Recover - multiple - restart" do_test rec-rsc-7 "Resource Recover - multiple - stop " do_test rec-rsc-8 "Resource Recover - multiple - block " do_test rec-rsc-9 "Resource Recover - group/group" echo "" do_test quorum-1 "No quorum - ignore" do_test quorum-2 "No quorum - freeze" do_test quorum-3 "No quorum - stop " do_test quorum-4 "No quorum - start anyway" do_test quorum-5 "No quorum - start anyway (group)" do_test quorum-6 "No quorum - start anyway (clone)" echo "" do_test rec-node-1 "Node Recover - Startup - no fence" do_test rec-node-2 "Node Recover - Startup - fence " do_test rec-node-3 "Node Recover - HA down - no fence" do_test rec-node-4 "Node Recover - HA down - fence " do_test rec-node-5 "Node Recover - CRM down - no fence" do_test rec-node-6 "Node Recover - CRM down - fence " do_test rec-node-7 "Node Recover - no quorum - ignore " do_test rec-node-8 "Node Recover - no quorum - freeze " do_test rec-node-9 "Node Recover - no quorum - stop " do_test rec-node-10 "Node Recover - no quorum - stop w/fence" do_test rec-node-11 "Node Recover - CRM down w/ group - fence " do_test rec-node-12 "Node Recover - nothing active - fence " do_test rec-node-13 "Node Recover - failed resource + shutdown - fence " do_test rec-node-15 "Node Recover - unknown lrm section" do_test rec-node-14 "Serialize all stonith's" echo "" do_test multi1 "Multiple Active (stop/start)" echo "" do_test migrate-stop "Migration in a stopping stack" do_test migrate-start "Migration in a starting stack" do_test migrate-stop_start "Migration in a restarting stack" do_test migrate-stop-complex "Migration in a complex stopping stack" do_test migrate-start-complex "Migration in a complex starting stack" do_test migrate-1 "Migrate (migrate)" do_test migrate-2 "Migrate (stable)" do_test migrate-3 "Migrate (failed migrate_to)" do_test migrate-4 "Migrate (failed migrate_from)" do_test novell-252693 "Migration in a stopping stack" do_test novell-252693-2 "Migration in a starting stack" do_test novell-252693-3 "Non-Migration in a starting and stopping stack" do_test bug-1820 "Migration in a group" do_test bug-1820-1 "Non-migration in a group" do_test migrate-5 "Primitive migration with a clone" #echo "" #do_test complex1 "Complex " echo "" do_test group1 "Group " do_test group2 "Group + Native " do_test group3 "Group + Group " do_test group4 "Group + Native (nothing)" do_test group5 "Group + Native (move) " do_test group6 "Group + Group (move) " do_test group7 "Group colocation" do_test group13 "Group colocation (cant run)" do_test group8 "Group anti-colocation" do_test group9 "Group recovery" do_test group10 "Group partial recovery" do_test group11 "Group target_role" do_test group14 "Group stop (graph terminated)" do_test group15 "-ve group colocation" do_test bug-1573 "Partial stop of a group with two children" do_test bug-1718 "Mandatory group ordering - Stop group_FUN" echo "" do_test clone-anon-probe-1 "Probe the correct (anonymous) clone instance for each node" do_test clone-anon-probe-2 "Avoid needless re-probing of anonymous clones" do_test inc0 "Incarnation start" do_test inc1 "Incarnation start order" do_test inc2 "Incarnation silent restart, stop, move" do_test inc3 "Inter-incarnation ordering, silent restart, stop, move" do_test inc4 "Inter-incarnation ordering, silent restart, stop, move (ordered)" do_test inc5 "Inter-incarnation ordering, silent restart, stop, move (restart 1)" do_test inc6 "Inter-incarnation ordering, silent restart, stop, move (restart 2)" do_test inc7 "Clone colocation" do_test inc8 "Clone anti-colocation" do_test inc9 "Non-unique clone" do_test inc10 "Non-unique clone (stop)" do_test inc11 "Primitive colocation with clones" do_test inc12 "Clone shutdown" do_test cloned-group "Make sure only the correct number of cloned groups are started" do_test clone-no-shuffle "Dont prioritize allocation of instances that must be moved" do_test clone-max-zero "Orphan processing with clone-max=0" do_test clone-anon-dup "Bug LF#2087 - Correctly parse the state of anonymous clones that are active more than once per node" do_test bug-lf-2160 "Dont shuffle clones due to colocation" do_test bug-lf-2213 "clone-node-max enforcement for cloned groups" +do_test bug-lf-2153 "Clone ordering constraints" echo "" do_test master-0 "Stopped -> Slave" do_test master-1 "Stopped -> Promote" do_test master-2 "Stopped -> Promote : notify" do_test master-3 "Stopped -> Promote : master location" do_test master-4 "Started -> Promote : master location" do_test master-5 "Promoted -> Promoted" do_test master-6 "Promoted -> Promoted (2)" do_test master-7 "Promoted -> Fenced" do_test master-8 "Promoted -> Fenced -> Moved" do_test master-9 "Stopped + Promotable + No quorum" do_test master-10 "Stopped -> Promotable : notify with monitor" do_test master-11 "Stopped -> Promote : colocation" do_test novell-239082 "Demote/Promote ordering" do_test novell-239087 "Stable master placement" do_test master-12 "Promotion based solely on rsc_location constraints" do_test master-13 "Include preferences of colocated resources when placing master" do_test master-demote "Ordering when actions depends on demoting a slave resource" do_test master-ordering "Prevent resources from starting that need a master" do_test bug-1765 "Master-Master Colocation (dont stop the slaves)" do_test master-group "Promotion of cloned groups" do_test bug-lf-1852 "Don't shuffle master/slave instances unnecessarily" do_test master-failed-demote "Dont retry failed demote actions" do_test master-failed-demote-2 "Dont retry failed demote actions (notify=false)" do_test master-depend "Ensure resources that depend on the master don't get allocated until the master does" do_test master-reattach "Re-attach to a running master" do_test master-allow-start "Don't include master score if it would prevent allocation" do_test master-colocation "Allow master instances placemaker to be influenced by colocation constraints" do_test master-pseudo "Make sure promote/demote pseudo actions are created correctly" do_test master-role "Prevent target-role from promoting more than master-max instances" echo "" do_test managed-0 "Managed (reference)" do_test managed-1 "Not managed - down " do_test managed-2 "Not managed - up " echo "" do_test interleave-0 "Interleave (reference)" do_test interleave-1 "coloc - not interleaved" do_test interleave-2 "coloc - interleaved " do_test interleave-3 "coloc - interleaved (2)" do_test interleave-pseudo-stop "Interleaved clone during stonith" do_test interleave-stop "Interleaved clone during stop" do_test interleave-restart "Interleaved clone during dependancy restart" echo "" do_test notify-0 "Notify reference" do_test notify-1 "Notify simple" do_test notify-2 "Notify simple, confirm" do_test notify-3 "Notify move, confirm" do_test novell-239079 "Notification priority" #do_test notify-2 "Notify - 764" echo "" do_test 594 "OSDL #594" do_test 662 "OSDL #662" do_test 696 "OSDL #696" do_test 726 "OSDL #726" do_test 735 "OSDL #735" do_test 764 "OSDL #764" do_test 797 "OSDL #797" do_test 829 "OSDL #829" do_test 994 "OSDL #994" do_test 994-2 "OSDL #994 - with a dependant resource" do_test 1360 "OSDL #1360 - Clone stickiness" do_test 1484 "OSDL #1484 - on_fail=stop" do_test 1494 "OSDL #1494 - Clone stability" do_test unrunnable-1 "Unrunnable" do_test stonith-0 "Stonith loop - 1" do_test stonith-1 "Stonith loop - 2" do_test stonith-2 "Stonith loop - 3" do_test stonith-3 "Stonith startup" do_test bug-1572-1 "Recovery of groups depending on master/slave" do_test bug-1572-2 "Recovery of groups depending on master/slave when the master is never re-promoted" do_test bug-1685 "Depends-on-master ordering" do_test bug-1822 "Dont promote partially active groups" do_test bug-pm-11 "New resource added to a m/s group" do_test bug-pm-12 "Recover only the failed portion of a cloned group" do_test bug-n-387749 "Don't shuffle clone instances" do_test bug-n-385265 "Don't ignore the failure stickiness of group children - resource_idvscommon should stay stopped" do_test bug-n-385265-2 "Ensure groups are migrated instead of remaining partially active on the current node" do_test bug-lf-1920 "Correctly handle probes that find active resources" do_test bnc-515172 "Location constraint with multiple expressions" echo "" do_test systemhealth1 "System Health () #1" do_test systemhealth2 "System Health () #2" do_test systemhealth3 "System Health () #3" do_test systemhealthn1 "System Health (None) #1" do_test systemhealthn2 "System Health (None) #2" do_test systemhealthn3 "System Health (None) #3" do_test systemhealthm1 "System Health (Migrate On Red) #1" do_test systemhealthm2 "System Health (Migrate On Red) #2" do_test systemhealthm3 "System Health (Migrate On Red) #3" do_test systemhealtho1 "System Health (Only Green) #1" do_test systemhealtho2 "System Health (Only Green) #2" do_test systemhealtho3 "System Health (Only Green) #3" do_test systemhealthp1 "System Health (Progessive) #1" do_test systemhealthp2 "System Health (Progessive) #2" do_test systemhealthp3 "System Health (Progessive) #3" echo "" test_results diff --git a/pengine/test10/bug-1572-1.dot b/pengine/test10/bug-1572-1.dot index 668e4d1033..7190cf1ad5 100644 --- a/pengine/test10/bug-1572-1.dot +++ b/pengine/test10/bug-1572-1.dot @@ -1,159 +1,160 @@ digraph "g" { "IPaddr_147_81_84_133_monitor_25000 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "IPaddr_147_81_84_133_start_0 arc-tkincaidlx.wsicorp.com" -> "IPaddr_147_81_84_133_monitor_25000 arc-tkincaidlx.wsicorp.com" [ style = bold] "IPaddr_147_81_84_133_start_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_running_0" [ style = bold] "IPaddr_147_81_84_133_start_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "IPaddr_147_81_84_133_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "all_stopped" [ style=bold color="green" fontcolor="orange" ] "do_shutdown arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "fs_mirror_start_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_running_0" [ style = bold] "fs_mirror_start_0 arc-tkincaidlx.wsicorp.com" -> "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "fs_mirror_start_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" -> "fs_mirror_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "grp_pgsql_mirror_running_0" [ style=bold color="green" fontcolor="orange" ] "grp_pgsql_mirror_start_0" -> "IPaddr_147_81_84_133_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_start_0" -> "fs_mirror_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_start_0" -> "grp_pgsql_mirror_running_0" [ style = bold] "grp_pgsql_mirror_start_0" -> "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_start_0" [ style=bold color="green" fontcolor="orange" ] "grp_pgsql_mirror_stop_0" -> "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stop_0" -> "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stop_0" -> "grp_pgsql_mirror_start_0" [ style = bold] "grp_pgsql_mirror_stop_0" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "grp_pgsql_mirror_stop_0" -> "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stop_0" [ style=bold color="green" fontcolor="orange" ] "grp_pgsql_mirror_stopped_0" -> "grp_pgsql_mirror_start_0" [ style = bold] "grp_pgsql_mirror_stopped_0" -> "ms_drbd_7788_demote_0" [ style = bold] +"grp_pgsql_mirror_stopped_0" -> "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-post_notify_demoted_0" -> "ms_drbd_7788_pre_notify_promote_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_demoted_0" -> "ms_drbd_7788_pre_notify_start_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_demoted_0" -> "ms_drbd_7788_pre_notify_stop_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-post_notify_promoted_0" -> "grp_pgsql_mirror_start_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-post_notify_running_0" -> "ms_drbd_7788_pre_notify_promote_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "ms_drbd_7788_confirmed-post_notify_stopped_0" -> "ms_drbd_7788_pre_notify_promote_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_stopped_0" -> "ms_drbd_7788_pre_notify_start_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-pre_notify_demote_0" -> "ms_drbd_7788_demote_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_demote_0" -> "ms_drbd_7788_post_notify_demoted_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-pre_notify_promote_0" -> "ms_drbd_7788_post_notify_promoted_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_promote_0" -> "ms_drbd_7788_promote_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-pre_notify_start_0" -> "ms_drbd_7788_post_notify_running_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_start_0" -> "ms_drbd_7788_start_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-pre_notify_stop_0" -> "ms_drbd_7788_post_notify_stopped_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_stop_0" -> "ms_drbd_7788_stop_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_demote_0" -> "ms_drbd_7788_demoted_0" [ style = bold] "ms_drbd_7788_demote_0" -> "ms_drbd_7788_stop_0" [ style = bold] "ms_drbd_7788_demote_0" -> "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_demoted_0" -> "ms_drbd_7788_post_notify_demoted_0" [ style = bold] "ms_drbd_7788_demoted_0" -> "ms_drbd_7788_promote_0" [ style = bold] "ms_drbd_7788_demoted_0" -> "ms_drbd_7788_start_0" [ style = bold] "ms_drbd_7788_demoted_0" -> "ms_drbd_7788_stop_0" [ style = bold] "ms_drbd_7788_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_post_notify_demoted_0" -> "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style = bold] "ms_drbd_7788_post_notify_demoted_0" -> "rsc_drbd_7788:0_post_notify_demote_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_post_notify_demoted_0" -> "rsc_drbd_7788:1_post_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_post_notify_promoted_0" -> "ms_drbd_7788_confirmed-post_notify_promoted_0" [ style = bold] "ms_drbd_7788_post_notify_promoted_0" -> "rsc_drbd_7788:1_post_notify_promote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_post_notify_running_0" -> "ms_drbd_7788_confirmed-post_notify_running_0" [ style = bold] "ms_drbd_7788_post_notify_running_0" -> "rsc_drbd_7788:1_post_notify_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_post_notify_stopped_0" -> "ms_drbd_7788_confirmed-post_notify_stopped_0" [ style = bold] "ms_drbd_7788_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_pre_notify_demote_0" -> "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style = bold] "ms_drbd_7788_pre_notify_demote_0" -> "rsc_drbd_7788:0_pre_notify_demote_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_pre_notify_demote_0" -> "rsc_drbd_7788:1_pre_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_pre_notify_promote_0" -> "ms_drbd_7788_confirmed-pre_notify_promote_0" [ style = bold] "ms_drbd_7788_pre_notify_promote_0" -> "rsc_drbd_7788:1_pre_notify_promote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_pre_notify_start_0" -> "ms_drbd_7788_confirmed-pre_notify_start_0" [ style = bold] "ms_drbd_7788_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_pre_notify_stop_0" -> "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style = bold] "ms_drbd_7788_pre_notify_stop_0" -> "rsc_drbd_7788:0_pre_notify_stop_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_pre_notify_stop_0" -> "rsc_drbd_7788:1_pre_notify_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_promote_0" -> "rsc_drbd_7788:1_promote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_promoted_0" -> "grp_pgsql_mirror_start_0" [ style = bold] "ms_drbd_7788_promoted_0" -> "ms_drbd_7788_post_notify_promoted_0" [ style = bold] "ms_drbd_7788_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_running_0" -> "ms_drbd_7788_post_notify_running_0" [ style = bold] "ms_drbd_7788_running_0" -> "ms_drbd_7788_promote_0" [ style = bold] "ms_drbd_7788_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_start_0" -> "ms_drbd_7788_promote_0" [ style = bold] "ms_drbd_7788_start_0" -> "ms_drbd_7788_running_0" [ style = bold] "ms_drbd_7788_start_0" -> "rsc_drbd_7788:1_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_stop_0" -> "ms_drbd_7788_start_0" [ style = bold] "ms_drbd_7788_stop_0" -> "ms_drbd_7788_stopped_0" [ style = bold] "ms_drbd_7788_stop_0" -> "rsc_drbd_7788:0_stop_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_stop_0" -> "rsc_drbd_7788:1_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_stopped_0" -> "ms_drbd_7788_post_notify_stopped_0" [ style = bold] "ms_drbd_7788_stopped_0" -> "ms_drbd_7788_promote_0" [ style = bold] "ms_drbd_7788_stopped_0" -> "ms_drbd_7788_start_0" [ style = bold] "ms_drbd_7788_stopped_0" [ style=bold color="green" fontcolor="orange" ] "pgsql_5555_monitor_30000 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" -> "IPaddr_147_81_84_133_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_running_0" [ style = bold] "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" -> "pgsql_5555_monitor_30000 arc-tkincaidlx.wsicorp.com" [ style = bold] "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "pgsql_5555_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_post_notify_demote_0 arc-dknightlx" -> "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style = bold] "rsc_drbd_7788:0_post_notify_demote_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_pre_notify_demote_0 arc-dknightlx" -> "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style = bold] "rsc_drbd_7788:0_pre_notify_demote_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_pre_notify_stop_0 arc-dknightlx" -> "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style = bold] "rsc_drbd_7788:0_pre_notify_stop_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_stop_0 arc-dknightlx" -> "all_stopped" [ style = bold] "rsc_drbd_7788:0_stop_0 arc-dknightlx" -> "do_shutdown arc-dknightlx" [ style = bold] "rsc_drbd_7788:0_stop_0 arc-dknightlx" -> "ms_drbd_7788_stopped_0" [ style = bold] "rsc_drbd_7788:0_stop_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_demoted_0" [ style = bold] "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" -> "rsc_drbd_7788:1_promote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" -> "rsc_drbd_7788:1_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_post_notify_demote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style = bold] "rsc_drbd_7788:1_post_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_post_notify_promote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-post_notify_promoted_0" [ style = bold] "rsc_drbd_7788:1_post_notify_promote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_post_notify_start_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-post_notify_running_0" [ style = bold] "rsc_drbd_7788:1_post_notify_start_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_pre_notify_demote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style = bold] "rsc_drbd_7788:1_pre_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_pre_notify_promote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-pre_notify_promote_0" [ style = bold] "rsc_drbd_7788:1_pre_notify_promote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_pre_notify_stop_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style = bold] "rsc_drbd_7788:1_pre_notify_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_promote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_promoted_0" [ style = bold] "rsc_drbd_7788:1_promote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_start_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_running_0" [ style = bold] "rsc_drbd_7788:1_start_0 arc-tkincaidlx.wsicorp.com" -> "rsc_drbd_7788:1_promote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "rsc_drbd_7788:1_start_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "rsc_drbd_7788:1_stop_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_stopped_0" [ style = bold] "rsc_drbd_7788:1_stop_0 arc-tkincaidlx.wsicorp.com" -> "rsc_drbd_7788:1_start_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "rsc_drbd_7788:1_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/bug-1572-1.exp b/pengine/test10/bug-1572-1.exp index 25460895b2..274b2d61bd 100644 --- a/pengine/test10/bug-1572-1.exp +++ b/pengine/test10/bug-1572-1.exp @@ -1,806 +1,809 @@ + + + diff --git a/pengine/test10/bug-1572-2.dot b/pengine/test10/bug-1572-2.dot index c8b3dd9154..d7979b365a 100644 --- a/pengine/test10/bug-1572-2.dot +++ b/pengine/test10/bug-1572-2.dot @@ -1,79 +1,80 @@ digraph "g" { "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" -> "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "all_stopped" [ style=bold color="green" fontcolor="orange" ] "do_shutdown arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "grp_pgsql_mirror_stop_0" -> "IPaddr_147_81_84_133_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stop_0" -> "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stop_0" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "grp_pgsql_mirror_stop_0" -> "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stop_0" [ style=bold color="green" fontcolor="orange" ] "grp_pgsql_mirror_stopped_0" -> "ms_drbd_7788_demote_0" [ style = bold] +"grp_pgsql_mirror_stopped_0" -> "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "grp_pgsql_mirror_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-post_notify_demoted_0" -> "ms_drbd_7788_pre_notify_stop_0" [ style = bold] "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "ms_drbd_7788_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-pre_notify_demote_0" -> "ms_drbd_7788_demote_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_demote_0" -> "ms_drbd_7788_post_notify_demoted_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_confirmed-pre_notify_stop_0" -> "ms_drbd_7788_post_notify_stopped_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_stop_0" -> "ms_drbd_7788_stop_0" [ style = bold] "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_demote_0" -> "ms_drbd_7788_demoted_0" [ style = bold] "ms_drbd_7788_demote_0" -> "ms_drbd_7788_stop_0" [ style = bold] "ms_drbd_7788_demote_0" -> "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_demoted_0" -> "ms_drbd_7788_post_notify_demoted_0" [ style = bold] "ms_drbd_7788_demoted_0" -> "ms_drbd_7788_stop_0" [ style = bold] "ms_drbd_7788_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_post_notify_demoted_0" -> "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style = bold] "ms_drbd_7788_post_notify_demoted_0" -> "rsc_drbd_7788:0_post_notify_demote_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_post_notify_demoted_0" -> "rsc_drbd_7788:1_post_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_post_notify_stopped_0" -> "ms_drbd_7788_confirmed-post_notify_stopped_0" [ style = bold] "ms_drbd_7788_post_notify_stopped_0" -> "rsc_drbd_7788:1_post_notify_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_pre_notify_demote_0" -> "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style = bold] "ms_drbd_7788_pre_notify_demote_0" -> "rsc_drbd_7788:0_pre_notify_demote_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_pre_notify_demote_0" -> "rsc_drbd_7788:1_pre_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_pre_notify_stop_0" -> "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style = bold] "ms_drbd_7788_pre_notify_stop_0" -> "rsc_drbd_7788:0_pre_notify_stop_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_pre_notify_stop_0" -> "rsc_drbd_7788:1_pre_notify_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "ms_drbd_7788_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_stop_0" -> "ms_drbd_7788_stopped_0" [ style = bold] "ms_drbd_7788_stop_0" -> "rsc_drbd_7788:0_stop_0 arc-dknightlx" [ style = bold] "ms_drbd_7788_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_7788_stopped_0" -> "ms_drbd_7788_post_notify_stopped_0" [ style = bold] "ms_drbd_7788_stopped_0" [ style=bold color="green" fontcolor="orange" ] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "all_stopped" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "fs_mirror_stop_0 arc-tkincaidlx.wsicorp.com" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" -> "grp_pgsql_mirror_stopped_0" [ style = bold] "pgsql_5555_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_post_notify_demote_0 arc-dknightlx" -> "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style = bold] "rsc_drbd_7788:0_post_notify_demote_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_pre_notify_demote_0 arc-dknightlx" -> "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style = bold] "rsc_drbd_7788:0_pre_notify_demote_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_pre_notify_stop_0 arc-dknightlx" -> "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style = bold] "rsc_drbd_7788:0_pre_notify_stop_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:0_stop_0 arc-dknightlx" -> "all_stopped" [ style = bold] "rsc_drbd_7788:0_stop_0 arc-dknightlx" -> "do_shutdown arc-dknightlx" [ style = bold] "rsc_drbd_7788:0_stop_0 arc-dknightlx" -> "ms_drbd_7788_stopped_0" [ style = bold] "rsc_drbd_7788:0_stop_0 arc-dknightlx" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_demoted_0" [ style = bold] "rsc_drbd_7788:1_demote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_post_notify_demote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-post_notify_demoted_0" [ style = bold] "rsc_drbd_7788:1_post_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_post_notify_stop_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-post_notify_stopped_0" [ style = bold] "rsc_drbd_7788:1_post_notify_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_pre_notify_demote_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-pre_notify_demote_0" [ style = bold] "rsc_drbd_7788:1_pre_notify_demote_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] "rsc_drbd_7788:1_pre_notify_stop_0 arc-tkincaidlx.wsicorp.com" -> "ms_drbd_7788_confirmed-pre_notify_stop_0" [ style = bold] "rsc_drbd_7788:1_pre_notify_stop_0 arc-tkincaidlx.wsicorp.com" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/bug-1572-2.exp b/pengine/test10/bug-1572-2.exp index 3c10435940..0234ed3544 100644 --- a/pengine/test10/bug-1572-2.exp +++ b/pengine/test10/bug-1572-2.exp @@ -1,412 +1,415 @@ + + + diff --git a/pengine/test10/bug-lf-2153.dot b/pengine/test10/bug-lf-2153.dot new file mode 100644 index 0000000000..d58b78c91a --- /dev/null +++ b/pengine/test10/bug-lf-2153.dot @@ -0,0 +1,36 @@ +digraph "g" { +"all_stopped" [ style=bold color="green" fontcolor="orange" ] +"cl_tgtd_stop_0" -> "cl_tgtd_stopped_0" [ style = bold] +"cl_tgtd_stop_0" -> "res_tgtd:0_stop_0 bob" [ style = bold] +"cl_tgtd_stop_0" [ style=bold color="green" fontcolor="orange" ] +"cl_tgtd_stopped_0" [ style=bold color="green" fontcolor="orange" ] +"ms_drbd_iscsivg01_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] +"ms_drbd_iscsivg01_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] +"ms_drbd_iscsivg01_confirmed-pre_notify_stop_0" -> "ms_drbd_iscsivg01_post_notify_stopped_0" [ style = bold] +"ms_drbd_iscsivg01_confirmed-pre_notify_stop_0" -> "ms_drbd_iscsivg01_stop_0" [ style = bold] +"ms_drbd_iscsivg01_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] +"ms_drbd_iscsivg01_post_notify_stopped_0" -> "ms_drbd_iscsivg01_confirmed-post_notify_stopped_0" [ style = bold] +"ms_drbd_iscsivg01_post_notify_stopped_0" -> "res_drbd_iscsivg01:1_post_notify_stop_0 alice" [ style = bold] +"ms_drbd_iscsivg01_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] +"ms_drbd_iscsivg01_pre_notify_stop_0" -> "ms_drbd_iscsivg01_confirmed-pre_notify_stop_0" [ style = bold] +"ms_drbd_iscsivg01_pre_notify_stop_0" -> "res_drbd_iscsivg01:0_pre_notify_stop_0 bob" [ style = bold] +"ms_drbd_iscsivg01_pre_notify_stop_0" -> "res_drbd_iscsivg01:1_pre_notify_stop_0 alice" [ style = bold] +"ms_drbd_iscsivg01_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] +"ms_drbd_iscsivg01_stop_0" -> "ms_drbd_iscsivg01_stopped_0" [ style = bold] +"ms_drbd_iscsivg01_stop_0" -> "res_drbd_iscsivg01:0_stop_0 bob" [ style = bold] +"ms_drbd_iscsivg01_stop_0" [ style=bold color="green" fontcolor="orange" ] +"ms_drbd_iscsivg01_stopped_0" -> "ms_drbd_iscsivg01_post_notify_stopped_0" [ style = bold] +"ms_drbd_iscsivg01_stopped_0" [ style=bold color="green" fontcolor="orange" ] +"res_drbd_iscsivg01:0_pre_notify_stop_0 bob" -> "ms_drbd_iscsivg01_confirmed-pre_notify_stop_0" [ style = bold] +"res_drbd_iscsivg01:0_pre_notify_stop_0 bob" [ style=bold color="green" fontcolor="black" ] +"res_drbd_iscsivg01:0_stop_0 bob" -> "all_stopped" [ style = bold] +"res_drbd_iscsivg01:0_stop_0 bob" -> "ms_drbd_iscsivg01_stopped_0" [ style = bold] +"res_drbd_iscsivg01:0_stop_0 bob" [ style=bold color="green" fontcolor="black" ] +"res_drbd_iscsivg01:1_post_notify_stop_0 alice" -> "ms_drbd_iscsivg01_confirmed-post_notify_stopped_0" [ style = bold] +"res_drbd_iscsivg01:1_post_notify_stop_0 alice" [ style=bold color="green" fontcolor="black" ] +"res_drbd_iscsivg01:1_pre_notify_stop_0 alice" -> "ms_drbd_iscsivg01_confirmed-pre_notify_stop_0" [ style = bold] +"res_drbd_iscsivg01:1_pre_notify_stop_0 alice" [ style=bold color="green" fontcolor="black" ] +"res_tgtd:0_stop_0 bob" -> "all_stopped" [ style = bold] +"res_tgtd:0_stop_0 bob" -> "cl_tgtd_stopped_0" [ style = bold] +"res_tgtd:0_stop_0 bob" [ style=bold color="green" fontcolor="black" ] +} diff --git a/pengine/test10/bug-lf-2153.exp b/pengine/test10/bug-lf-2153.exp new file mode 100644 index 0000000000..51fa7cb29c --- /dev/null +++ b/pengine/test10/bug-lf-2153.exp @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pengine/test10/bug-lf-2153.scores b/pengine/test10/bug-lf-2153.scores new file mode 100644 index 0000000000..3979aff148 --- /dev/null +++ b/pengine/test10/bug-lf-2153.scores @@ -0,0 +1,55 @@ +Allocation scores: +clone_color: ms_drbd_iscsivg01 allocation score on alice: 1500 +clone_color: ms_drbd_iscsivg01 allocation score on bob: -1000000 +clone_color: res_drbd_iscsivg01:0 allocation score on alice: 0 +clone_color: res_drbd_iscsivg01:0 allocation score on bob: 1 +clone_color: res_drbd_iscsivg01:1 allocation score on alice: 101 +clone_color: res_drbd_iscsivg01:1 allocation score on bob: 0 +native_color: res_drbd_iscsivg01:1 allocation score on alice: 101 +native_color: res_drbd_iscsivg01:1 allocation score on bob: -1000000 +native_color: res_drbd_iscsivg01:0 allocation score on alice: -1000000 +native_color: res_drbd_iscsivg01:0 allocation score on bob: -1000000 +res_drbd_iscsivg01:1 promotion score on alice: 3100 +res_drbd_iscsivg01:0 promotion score on none: 0 +clone_color: cl_tgtd allocation score on alice: 1500 +clone_color: cl_tgtd allocation score on bob: -1000000 +clone_color: res_tgtd:0 allocation score on alice: 0 +clone_color: res_tgtd:0 allocation score on bob: 1 +clone_color: res_tgtd:1 allocation score on alice: 1 +clone_color: res_tgtd:1 allocation score on bob: 0 +native_color: res_tgtd:1 allocation score on alice: 1 +native_color: res_tgtd:1 allocation score on bob: -1000000 +native_color: res_tgtd:0 allocation score on alice: -1000000 +native_color: res_tgtd:0 allocation score on bob: -1000000 +group_color: rg_iscsivg01 allocation score on alice: 100 +group_color: rg_iscsivg01 allocation score on bob: 0 +group_color: res_portblock_iscsivg01_block allocation score on alice: 300 +group_color: res_portblock_iscsivg01_block allocation score on bob: 0 +group_color: res_lvm_iscsivg01 allocation score on alice: 200 +group_color: res_lvm_iscsivg01 allocation score on bob: 0 +group_color: res_target_iscsivg01 allocation score on alice: 200 +group_color: res_target_iscsivg01 allocation score on bob: 0 +group_color: res_lu_iscsivg01_lun1 allocation score on alice: 200 +group_color: res_lu_iscsivg01_lun1 allocation score on bob: 0 +group_color: res_lu_iscsivg01_lun2 allocation score on alice: 200 +group_color: res_lu_iscsivg01_lun2 allocation score on bob: 0 +group_color: res_ip_alicebob01 allocation score on alice: 200 +group_color: res_ip_alicebob01 allocation score on bob: 0 +group_color: res_portblock_iscsivg01_unblock allocation score on alice: 200 +group_color: res_portblock_iscsivg01_unblock allocation score on bob: 0 +res_drbd_iscsivg01:1 promotion score on alice: 1000000 +res_drbd_iscsivg01:0 promotion score on none: 0 +native_color: res_portblock_iscsivg01_block allocation score on alice: 1602 +native_color: res_portblock_iscsivg01_block allocation score on bob: -1000000 +native_color: res_lvm_iscsivg01 allocation score on alice: 1200 +native_color: res_lvm_iscsivg01 allocation score on bob: -1000000 +native_color: res_target_iscsivg01 allocation score on alice: 1000 +native_color: res_target_iscsivg01 allocation score on bob: -1000000 +native_color: res_lu_iscsivg01_lun1 allocation score on alice: 800 +native_color: res_lu_iscsivg01_lun1 allocation score on bob: -1000000 +native_color: res_lu_iscsivg01_lun2 allocation score on alice: 600 +native_color: res_lu_iscsivg01_lun2 allocation score on bob: -1000000 +native_color: res_ip_alicebob01 allocation score on alice: 400 +native_color: res_ip_alicebob01 allocation score on bob: -1000000 +native_color: res_portblock_iscsivg01_unblock allocation score on alice: 200 +native_color: res_portblock_iscsivg01_unblock allocation score on bob: -1000000 diff --git a/pengine/test10/bug-lf-2153.xml b/pengine/test10/bug-lf-2153.xml new file mode 100644 index 0000000000..9940d8a730 --- /dev/null +++ b/pengine/test10/bug-lf-2153.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pengine/test10/bug-lf-2171.dot b/pengine/test10/bug-lf-2171.dot index b915c1b493..6d978c87cf 100644 --- a/pengine/test10/bug-lf-2171.dot +++ b/pengine/test10/bug-lf-2171.dot @@ -1,37 +1,38 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "cl_res_Dummy1_stop_0" -> "cl_res_Dummy1_stopped_0" [ style = bold] "cl_res_Dummy1_stop_0" -> "res_Dummy1:0_stop_0 xenserver2" [ style = bold] "cl_res_Dummy1_stop_0" -> "res_Dummy1:1_stop_0 xenserver1" [ style = bold] "cl_res_Dummy1_stop_0" [ style=bold color="green" fontcolor="orange" ] "cl_res_Dummy1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "gr_Dummy_running_0" [ style=dashed color="red" fontcolor="orange" ] "gr_Dummy_stop_0" -> "gr_Dummy_stopped_0" [ style = bold] "gr_Dummy_stop_0" -> "res_Dummy2_stop_0 xenserver1" [ style = bold] "gr_Dummy_stop_0" -> "res_Dummy3_stop_0 xenserver1" [ style = bold] "gr_Dummy_stop_0" [ style=bold color="green" fontcolor="orange" ] "gr_Dummy_stopped_0" -> "cl_res_Dummy1_stop_0" [ style = bold] +"gr_Dummy_stopped_0" -> "res_Dummy1:1_stop_0 xenserver1" [ style = bold] "gr_Dummy_stopped_0" [ style=bold color="green" fontcolor="orange" ] "res_Dummy1:0_stop_0 xenserver2" -> "all_stopped" [ style = bold] "res_Dummy1:0_stop_0 xenserver2" -> "cl_res_Dummy1_stopped_0" [ style = bold] "res_Dummy1:0_stop_0 xenserver2" [ style=bold color="green" fontcolor="black" ] "res_Dummy1:1_stop_0 xenserver1" -> "all_stopped" [ style = bold] "res_Dummy1:1_stop_0 xenserver1" -> "cl_res_Dummy1_stopped_0" [ style = bold] "res_Dummy1:1_stop_0 xenserver1" [ style=bold color="green" fontcolor="black" ] "res_Dummy2_monitor_10000 xenserver1" [ style=dashed color="red" fontcolor="black" ] "res_Dummy2_start_0 xenserver1" -> "gr_Dummy_running_0" [ style = dashed] "res_Dummy2_start_0 xenserver1" -> "res_Dummy2_monitor_10000 xenserver1" [ style = dashed] "res_Dummy2_start_0 xenserver1" [ style=dashed color="red" fontcolor="black" ] "res_Dummy2_stop_0 xenserver1" -> "all_stopped" [ style = bold] "res_Dummy2_stop_0 xenserver1" -> "gr_Dummy_stopped_0" [ style = bold] "res_Dummy2_stop_0 xenserver1" -> "res_Dummy2_start_0 xenserver1" [ style = dashed] "res_Dummy2_stop_0 xenserver1" [ style=bold color="green" fontcolor="black" ] "res_Dummy3_monitor_10000 xenserver1" [ style=dashed color="red" fontcolor="black" ] "res_Dummy3_start_0 xenserver1" -> "gr_Dummy_running_0" [ style = dashed] "res_Dummy3_start_0 xenserver1" -> "res_Dummy3_monitor_10000 xenserver1" [ style = dashed] "res_Dummy3_start_0 xenserver1" [ style=dashed color="red" fontcolor="black" ] "res_Dummy3_stop_0 xenserver1" -> "all_stopped" [ style = bold] "res_Dummy3_stop_0 xenserver1" -> "gr_Dummy_stopped_0" [ style = bold] "res_Dummy3_stop_0 xenserver1" -> "res_Dummy3_start_0 xenserver1" [ style = dashed] "res_Dummy3_stop_0 xenserver1" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/bug-lf-2171.exp b/pengine/test10/bug-lf-2171.exp index 39277ac3aa..72c0d453da 100644 --- a/pengine/test10/bug-lf-2171.exp +++ b/pengine/test10/bug-lf-2171.exp @@ -1,132 +1,135 @@ + + + diff --git a/pengine/test10/clone-no-shuffle.dot b/pengine/test10/clone-no-shuffle.dot index 51751b0e84..04f2fbfd79 100644 --- a/pengine/test10/clone-no-shuffle.dot +++ b/pengine/test10/clone-no-shuffle.dot @@ -1,97 +1,98 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "drbd1:0_demote_0 dktest2sles10" -> "drbd1:0_stop_0 dktest2sles10" [ style = bold] "drbd1:0_demote_0 dktest2sles10" -> "ms-drbd1_demoted_0" [ style = bold] "drbd1:0_demote_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:0_post_notify_demote_0 dktest2sles10" -> "ms-drbd1_confirmed-post_notify_demoted_0" [ style = bold] "drbd1:0_post_notify_demote_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:0_pre_notify_demote_0 dktest2sles10" -> "ms-drbd1_confirmed-pre_notify_demote_0" [ style = bold] "drbd1:0_pre_notify_demote_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:0_pre_notify_stop_0 dktest2sles10" -> "ms-drbd1_confirmed-pre_notify_stop_0" [ style = bold] "drbd1:0_pre_notify_stop_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:0_stop_0 dktest2sles10" -> "all_stopped" [ style = bold] "drbd1:0_stop_0 dktest2sles10" -> "ms-drbd1_stopped_0" [ style = bold] "drbd1:0_stop_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:1_monitor_0 dktest1sles10" -> "probe_complete dktest1sles10" [ style = bold] "drbd1:1_monitor_0 dktest1sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:1_monitor_11000 dktest1sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:1_post_notify_start_0 dktest1sles10" -> "ms-drbd1_confirmed-post_notify_running_0" [ style = bold] "drbd1:1_post_notify_start_0 dktest1sles10" [ style=bold color="green" fontcolor="black" ] "drbd1:1_start_0 dktest1sles10" -> "drbd1:1_monitor_11000 dktest1sles10" [ style = bold] "drbd1:1_start_0 dktest1sles10" -> "ms-drbd1_running_0" [ style = bold] "drbd1:1_start_0 dktest1sles10" [ style=bold color="green" fontcolor="black" ] "ms-drbd1_confirmed-post_notify_demoted_0" -> "ms-drbd1_pre_notify_start_0" [ style = bold] "ms-drbd1_confirmed-post_notify_demoted_0" -> "ms-drbd1_pre_notify_stop_0" [ style = bold] "ms-drbd1_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_confirmed-post_notify_running_0" -> "drbd1:1_monitor_11000 dktest1sles10" [ style = bold] "ms-drbd1_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "ms-drbd1_confirmed-post_notify_stopped_0" -> "ms-drbd1_pre_notify_start_0" [ style = bold] "ms-drbd1_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_confirmed-pre_notify_demote_0" -> "ms-drbd1_demote_0" [ style = bold] "ms-drbd1_confirmed-pre_notify_demote_0" -> "ms-drbd1_post_notify_demoted_0" [ style = bold] "ms-drbd1_confirmed-pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_confirmed-pre_notify_start_0" -> "ms-drbd1_post_notify_running_0" [ style = bold] "ms-drbd1_confirmed-pre_notify_start_0" -> "ms-drbd1_start_0" [ style = bold] "ms-drbd1_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_confirmed-pre_notify_stop_0" -> "ms-drbd1_post_notify_stopped_0" [ style = bold] "ms-drbd1_confirmed-pre_notify_stop_0" -> "ms-drbd1_stop_0" [ style = bold] "ms-drbd1_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_demote_0" -> "drbd1:0_demote_0 dktest2sles10" [ style = bold] "ms-drbd1_demote_0" -> "ms-drbd1_demoted_0" [ style = bold] "ms-drbd1_demote_0" -> "ms-drbd1_stop_0" [ style = bold] "ms-drbd1_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_demoted_0" -> "ms-drbd1_post_notify_demoted_0" [ style = bold] "ms-drbd1_demoted_0" -> "ms-drbd1_start_0" [ style = bold] "ms-drbd1_demoted_0" -> "ms-drbd1_stop_0" [ style = bold] "ms-drbd1_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_post_notify_demoted_0" -> "drbd1:0_post_notify_demote_0 dktest2sles10" [ style = bold] "ms-drbd1_post_notify_demoted_0" -> "ms-drbd1_confirmed-post_notify_demoted_0" [ style = bold] "ms-drbd1_post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_post_notify_running_0" -> "drbd1:1_post_notify_start_0 dktest1sles10" [ style = bold] "ms-drbd1_post_notify_running_0" -> "ms-drbd1_confirmed-post_notify_running_0" [ style = bold] "ms-drbd1_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_post_notify_stopped_0" -> "ms-drbd1_confirmed-post_notify_stopped_0" [ style = bold] "ms-drbd1_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_pre_notify_demote_0" -> "drbd1:0_pre_notify_demote_0 dktest2sles10" [ style = bold] "ms-drbd1_pre_notify_demote_0" -> "ms-drbd1_confirmed-pre_notify_demote_0" [ style = bold] "ms-drbd1_pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_pre_notify_start_0" -> "ms-drbd1_confirmed-pre_notify_start_0" [ style = bold] "ms-drbd1_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_pre_notify_stop_0" -> "drbd1:0_pre_notify_stop_0 dktest2sles10" [ style = bold] "ms-drbd1_pre_notify_stop_0" -> "ms-drbd1_confirmed-pre_notify_stop_0" [ style = bold] "ms-drbd1_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_running_0" -> "ms-drbd1_post_notify_running_0" [ style = bold] "ms-drbd1_running_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_start_0" -> "drbd1:1_start_0 dktest1sles10" [ style = bold] "ms-drbd1_start_0" -> "ms-drbd1_running_0" [ style = bold] "ms-drbd1_start_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_stop_0" -> "drbd1:0_stop_0 dktest2sles10" [ style = bold] "ms-drbd1_stop_0" -> "ms-drbd1_start_0" [ style = bold] "ms-drbd1_stop_0" -> "ms-drbd1_stopped_0" [ style = bold] "ms-drbd1_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd1_stopped_0" -> "ms-drbd1_post_notify_stopped_0" [ style = bold] "ms-drbd1_stopped_0" -> "ms-drbd1_start_0" [ style = bold] "ms-drbd1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "probe_complete dktest1sles10" -> "probe_complete" [ style = bold] "probe_complete dktest1sles10" [ style=bold color="green" fontcolor="black" ] "probe_complete dktest2sles10" -> "probe_complete" [ style = bold] "probe_complete dktest2sles10" [ style=bold color="green" fontcolor="black" ] "probe_complete" -> "drbd1:0_stop_0 dktest2sles10" [ style = bold] "probe_complete" -> "drbd1:1_start_0 dktest1sles10" [ style = bold] "probe_complete" -> "ms-drbd1_start_0" [ style = bold] "probe_complete" -> "ms-drbd1_stop_0" [ style = bold] "probe_complete" -> "stonith-1_start_0 dktest2sles10" [ style = bold] "probe_complete" -> "testip_stop_0 dktest2sles10" [ style = bold] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "stonith-1_monitor_0 dktest1sles10" -> "probe_complete dktest1sles10" [ style = bold] "stonith-1_monitor_0 dktest1sles10" [ style=bold color="green" fontcolor="black" ] "stonith-1_monitor_0 dktest2sles10" -> "probe_complete dktest2sles10" [ style = bold] "stonith-1_monitor_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "stonith-1_start_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] "testip_monitor_0 dktest1sles10" -> "probe_complete dktest1sles10" [ style = bold] "testip_monitor_0 dktest1sles10" [ style=bold color="green" fontcolor="black" ] "testip_stop_0 dktest2sles10" -> "all_stopped" [ style = bold] +"testip_stop_0 dktest2sles10" -> "drbd1:0_demote_0 dktest2sles10" [ style = bold] "testip_stop_0 dktest2sles10" -> "ms-drbd1_demote_0" [ style = bold] "testip_stop_0 dktest2sles10" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/clone-no-shuffle.exp b/pengine/test10/clone-no-shuffle.exp index 724f86c664..acae77751a 100644 --- a/pengine/test10/clone-no-shuffle.exp +++ b/pengine/test10/clone-no-shuffle.exp @@ -1,513 +1,516 @@ + + + diff --git a/pengine/test10/inc1.dot b/pengine/test10/inc1.dot index d42c173fa5..f93798de7f 100644 --- a/pengine/test10/inc1.dot +++ b/pengine/test10/inc1.dot @@ -1,64 +1,66 @@ digraph "g" { "child_rsc2:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_start_0 node2" -> "rsc2_running_0" [ style = bold] "child_rsc2:0_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_start_0 node2" -> "rsc2_running_0" [ style = bold] "child_rsc2:2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" -> "probe_complete" [ style = bold] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "probe_complete" -> "child_rsc2:0_start_0 node2" [ style = bold] "probe_complete" -> "child_rsc2:1_start_0 node1" [ style = bold] "probe_complete" -> "child_rsc2:2_start_0 node2" [ style = bold] "probe_complete" -> "child_rsc2:3_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0 node1" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] "probe_complete" -> "rsc2_stop_0" [ style = bold] "probe_complete" -> "rsc3_start_0 node2" [ style = bold] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] +"rsc1_start_0 node1" -> "child_rsc2:1_start_0 node1" [ style = bold] +"rsc1_start_0 node1" -> "child_rsc2:3_start_0 node1" [ style = bold] "rsc1_start_0 node1" -> "rsc2_start_0" [ style = bold] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_running_0" -> "rsc3_start_0 node2" [ style = bold] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_start_0" -> "child_rsc2:0_start_0 node2" [ style = bold] "rsc2_start_0" -> "child_rsc2:1_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:2_start_0 node2" [ style = bold] "rsc2_start_0" -> "child_rsc2:3_start_0 node1" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stop_0" -> "rsc2_start_0" [ style = bold] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/inc1.exp b/pengine/test10/inc1.exp index 16a2798805..5bf3b3ed40 100644 --- a/pengine/test10/inc1.exp +++ b/pengine/test10/inc1.exp @@ -1,351 +1,357 @@ + + + + + + diff --git a/pengine/test10/master-demote.dot b/pengine/test10/master-demote.dot index eb1dd50068..979841e15e 100644 --- a/pengine/test10/master-demote.dot +++ b/pengine/test10/master-demote.dot @@ -1,37 +1,38 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] +"named_address_start_0 cxb1" -> "named_drbd_node:0_promote_0 cxb1" [ style = bold] "named_address_start_0 cxb1" -> "named_drbd_promote_0" [ style = bold] "named_address_start_0 cxb1" [ style=bold color="green" fontcolor="black" ] "named_address_stop_0 cxa1" -> "all_stopped" [ style = bold] "named_address_stop_0 cxa1" -> "named_address_start_0 cxb1" [ style = bold] "named_address_stop_0 cxa1" [ style=bold color="green" fontcolor="black" ] "named_drbd_confirmed-post_notify_promoted_0" -> "named_drbd_node:0_monitor_10000 cxb1" [ style = bold] "named_drbd_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "named_drbd_confirmed-pre_notify_promote_0" -> "named_drbd_post_notify_promoted_0" [ style = bold] "named_drbd_confirmed-pre_notify_promote_0" -> "named_drbd_promote_0" [ style = bold] "named_drbd_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "named_drbd_node:0_monitor_10000 cxb1" [ style=bold color="green" fontcolor="black" ] "named_drbd_node:0_post_notify_promote_0 cxb1" -> "named_drbd_confirmed-post_notify_promoted_0" [ style = bold] "named_drbd_node:0_post_notify_promote_0 cxb1" [ style=bold color="green" fontcolor="black" ] "named_drbd_node:0_pre_notify_promote_0 cxb1" -> "named_drbd_confirmed-pre_notify_promote_0" [ style = bold] "named_drbd_node:0_pre_notify_promote_0 cxb1" [ style=bold color="green" fontcolor="black" ] "named_drbd_node:0_promote_0 cxb1" -> "named_drbd_node:0_monitor_10000 cxb1" [ style = bold] "named_drbd_node:0_promote_0 cxb1" -> "named_drbd_promoted_0" [ style = bold] "named_drbd_node:0_promote_0 cxb1" [ style=bold color="green" fontcolor="black" ] "named_drbd_node:1_post_notify_promote_0 cxa1" -> "named_drbd_confirmed-post_notify_promoted_0" [ style = bold] "named_drbd_node:1_post_notify_promote_0 cxa1" [ style=bold color="green" fontcolor="black" ] "named_drbd_node:1_pre_notify_promote_0 cxa1" -> "named_drbd_confirmed-pre_notify_promote_0" [ style = bold] "named_drbd_node:1_pre_notify_promote_0 cxa1" [ style=bold color="green" fontcolor="black" ] "named_drbd_post_notify_promoted_0" -> "named_drbd_confirmed-post_notify_promoted_0" [ style = bold] "named_drbd_post_notify_promoted_0" -> "named_drbd_node:0_post_notify_promote_0 cxb1" [ style = bold] "named_drbd_post_notify_promoted_0" -> "named_drbd_node:1_post_notify_promote_0 cxa1" [ style = bold] "named_drbd_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "named_drbd_pre_notify_promote_0" -> "named_drbd_confirmed-pre_notify_promote_0" [ style = bold] "named_drbd_pre_notify_promote_0" -> "named_drbd_node:0_pre_notify_promote_0 cxb1" [ style = bold] "named_drbd_pre_notify_promote_0" -> "named_drbd_node:1_pre_notify_promote_0 cxa1" [ style = bold] "named_drbd_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "named_drbd_promote_0" -> "named_drbd_node:0_promote_0 cxb1" [ style = bold] "named_drbd_promote_0" [ style=bold color="green" fontcolor="orange" ] "named_drbd_promoted_0" -> "named_drbd_post_notify_promoted_0" [ style = bold] "named_drbd_promoted_0" [ style=bold color="green" fontcolor="orange" ] } diff --git a/pengine/test10/master-demote.exp b/pengine/test10/master-demote.exp index c10c4cd077..26851ad613 100644 --- a/pengine/test10/master-demote.exp +++ b/pengine/test10/master-demote.exp @@ -1,204 +1,207 @@ + + + diff --git a/pengine/test10/master-ordering.dot b/pengine/test10/master-ordering.dot index 442a37c59f..64e68c8d9f 100644 --- a/pengine/test10/master-ordering.dot +++ b/pengine/test10/master-ordering.dot @@ -1,97 +1,101 @@ digraph "g" { "apache2:0_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "apache2:0_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "drbd_mysql:0_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "drbd_mysql:0_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "drbd_mysql:0_post_notify_start_0 webcluster01" -> "ms_drbd_mysql_confirmed-post_notify_running_0" [ style = bold] "drbd_mysql:0_post_notify_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "drbd_mysql:0_start_0 webcluster01" -> "ms_drbd_mysql_running_0" [ style = bold] "drbd_mysql:0_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "drbd_www:0_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "drbd_www:0_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "drbd_www:0_post_notify_start_0 webcluster01" -> "ms_drbd_www_confirmed-post_notify_running_0" [ style = bold] "drbd_www:0_post_notify_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "drbd_www:0_start_0 webcluster01" -> "ms_drbd_www_running_0" [ style = bold] "drbd_www:0_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "extip_1_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "extip_1_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "extip_1_monitor_30000 webcluster01" [ style=bold color="green" fontcolor="black" ] "extip_1_start_0 webcluster01" -> "extip_1_monitor_30000 webcluster01" [ style = bold] "extip_1_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "extip_2_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "extip_2_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "extip_2_monitor_30000 webcluster01" [ style=bold color="green" fontcolor="black" ] "extip_2_start_0 webcluster01" -> "extip_2_monitor_30000 webcluster01" [ style = bold] "extip_2_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "fs_mysql_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "fs_mysql_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "intip_0_main_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "intip_0_main_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "intip_1_master_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "intip_1_master_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "intip_1_master_monitor_30000 webcluster01" [ style=bold color="green" fontcolor="black" ] +"intip_1_master_start_0 webcluster01" -> "drbd_mysql:0_start_0 webcluster01" [ style = bold] +"intip_1_master_start_0 webcluster01" -> "drbd_www:0_start_0 webcluster01" [ style = bold] "intip_1_master_start_0 webcluster01" -> "intip_1_master_monitor_30000 webcluster01" [ style = bold] "intip_1_master_start_0 webcluster01" -> "ms_drbd_mysql_start_0" [ style = bold] "intip_1_master_start_0 webcluster01" -> "ms_drbd_www_start_0" [ style = bold] "intip_1_master_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "intip_2_slave_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "intip_2_slave_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "intip_2_slave_monitor_30000 webcluster01" [ style=bold color="green" fontcolor="black" ] +"intip_2_slave_start_0 webcluster01" -> "drbd_mysql:0_start_0 webcluster01" [ style = bold] +"intip_2_slave_start_0 webcluster01" -> "drbd_www:0_start_0 webcluster01" [ style = bold] "intip_2_slave_start_0 webcluster01" -> "intip_2_slave_monitor_30000 webcluster01" [ style = bold] "intip_2_slave_start_0 webcluster01" -> "ms_drbd_mysql_start_0" [ style = bold] "intip_2_slave_start_0 webcluster01" -> "ms_drbd_www_start_0" [ style = bold] "intip_2_slave_start_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "ms_drbd_mysql_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_mysql_confirmed-pre_notify_start_0" -> "ms_drbd_mysql_post_notify_running_0" [ style = bold] "ms_drbd_mysql_confirmed-pre_notify_start_0" -> "ms_drbd_mysql_start_0" [ style = bold] "ms_drbd_mysql_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_mysql_post_notify_running_0" -> "drbd_mysql:0_post_notify_start_0 webcluster01" [ style = bold] "ms_drbd_mysql_post_notify_running_0" -> "ms_drbd_mysql_confirmed-post_notify_running_0" [ style = bold] "ms_drbd_mysql_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_mysql_pre_notify_start_0" -> "ms_drbd_mysql_confirmed-pre_notify_start_0" [ style = bold] "ms_drbd_mysql_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_mysql_running_0" -> "ms_drbd_mysql_post_notify_running_0" [ style = bold] "ms_drbd_mysql_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_mysql_start_0" -> "drbd_mysql:0_start_0 webcluster01" [ style = bold] "ms_drbd_mysql_start_0" -> "ms_drbd_mysql_running_0" [ style = bold] "ms_drbd_mysql_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_mysql_stop_0" -> "ms_drbd_mysql_start_0" [ style = bold] "ms_drbd_mysql_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_confirmed-pre_notify_start_0" -> "ms_drbd_www_post_notify_running_0" [ style = bold] "ms_drbd_www_confirmed-pre_notify_start_0" -> "ms_drbd_www_start_0" [ style = bold] "ms_drbd_www_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_post_notify_running_0" -> "drbd_www:0_post_notify_start_0 webcluster01" [ style = bold] "ms_drbd_www_post_notify_running_0" -> "ms_drbd_www_confirmed-post_notify_running_0" [ style = bold] "ms_drbd_www_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_pre_notify_start_0" -> "ms_drbd_www_confirmed-pre_notify_start_0" [ style = bold] "ms_drbd_www_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_running_0" -> "ms_drbd_www_post_notify_running_0" [ style = bold] "ms_drbd_www_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_start_0" -> "drbd_www:0_start_0 webcluster01" [ style = bold] "ms_drbd_www_start_0" -> "ms_drbd_www_running_0" [ style = bold] "ms_drbd_www_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_www_stop_0" -> "ms_drbd_www_start_0" [ style = bold] "ms_drbd_www_stop_0" [ style=bold color="green" fontcolor="orange" ] "mysql-proxy:0_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "mysql-proxy:0_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "mysql-server_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "mysql-server_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "ocfs2_www:0_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "ocfs2_www:0_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "ocfs2_www:1_monitor_0 webcluster01" -> "probe_complete webcluster01" [ style = bold] "ocfs2_www:1_monitor_0 webcluster01" [ style=bold color="green" fontcolor="black" ] "probe_complete webcluster01" -> "probe_complete" [ style = bold] "probe_complete webcluster01" [ style=bold color="green" fontcolor="black" ] "probe_complete" -> "drbd_mysql:0_start_0 webcluster01" [ style = bold] "probe_complete" -> "drbd_www:0_start_0 webcluster01" [ style = bold] "probe_complete" -> "extip_1_start_0 webcluster01" [ style = bold] "probe_complete" -> "extip_2_start_0 webcluster01" [ style = bold] "probe_complete" -> "intip_1_master_start_0 webcluster01" [ style = bold] "probe_complete" -> "intip_2_slave_start_0 webcluster01" [ style = bold] "probe_complete" -> "ms_drbd_mysql_start_0" [ style = bold] "probe_complete" -> "ms_drbd_mysql_stop_0" [ style = bold] "probe_complete" -> "ms_drbd_www_start_0" [ style = bold] "probe_complete" -> "ms_drbd_www_stop_0" [ style = bold] "probe_complete" [ style=bold color="green" fontcolor="orange" ] } diff --git a/pengine/test10/master-ordering.exp b/pengine/test10/master-ordering.exp index afdef6725d..ec4c9929f7 100644 --- a/pengine/test10/master-ordering.exp +++ b/pengine/test10/master-ordering.exp @@ -1,544 +1,556 @@ + + + + + + + + + + + + diff --git a/pengine/test10/master-pseudo.dot b/pengine/test10/master-pseudo.dot index 651d84074a..0fd555f06e 100644 --- a/pengine/test10/master-pseudo.dot +++ b/pengine/test10/master-pseudo.dot @@ -1,57 +1,58 @@ digraph "g" { "drbd_float:0_post_notify_promote_0 sambuca.linbit" -> "ms_drbd_float_confirmed-post_notify_promoted_0" [ style = bold] "drbd_float:0_post_notify_promote_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "drbd_float:0_post_notify_start_0 sambuca.linbit" -> "ms_drbd_float_confirmed-post_notify_running_0" [ style = bold] "drbd_float:0_post_notify_start_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "drbd_float:0_pre_notify_promote_0 sambuca.linbit" -> "ms_drbd_float_confirmed-pre_notify_promote_0" [ style = bold] "drbd_float:0_pre_notify_promote_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "drbd_float:0_promote_0 sambuca.linbit" -> "ms_drbd_float_promoted_0" [ style = bold] "drbd_float:0_promote_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "drbd_float:0_start_0 sambuca.linbit" -> "drbd_float:0_promote_0 sambuca.linbit" [ style = bold] "drbd_float:0_start_0 sambuca.linbit" -> "ms_drbd_float_running_0" [ style = bold] "drbd_float:0_start_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "fs_float_start_0 " -> "nfsexport_running_0" [ style = dashed] "fs_float_start_0 " [ style=dashed color="red" fontcolor="black" ] +"ip_float_right_start_0 sambuca.linbit" -> "drbd_float:0_start_0 sambuca.linbit" [ style = bold] "ip_float_right_start_0 sambuca.linbit" -> "ms_drbd_float_start_0" [ style = bold] "ip_float_right_start_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "ip_nfs_start_0 sambuca.linbit" -> "fs_float_start_0 " [ style = dashed] "ip_nfs_start_0 sambuca.linbit" -> "nfsexport_running_0" [ style = dashed] "ip_nfs_start_0 sambuca.linbit" [ style=bold color="green" fontcolor="black" ] "ms_drbd_float_confirmed-post_notify_promoted_0" -> "nfsexport_start_0" [ style = bold] "ms_drbd_float_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_confirmed-post_notify_running_0" -> "ms_drbd_float_pre_notify_promote_0" [ style = bold] "ms_drbd_float_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_confirmed-pre_notify_promote_0" -> "ms_drbd_float_post_notify_promoted_0" [ style = bold] "ms_drbd_float_confirmed-pre_notify_promote_0" -> "ms_drbd_float_promote_0" [ style = bold] "ms_drbd_float_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_confirmed-pre_notify_start_0" -> "ms_drbd_float_post_notify_running_0" [ style = bold] "ms_drbd_float_confirmed-pre_notify_start_0" -> "ms_drbd_float_start_0" [ style = bold] "ms_drbd_float_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_post_notify_promoted_0" -> "drbd_float:0_post_notify_promote_0 sambuca.linbit" [ style = bold] "ms_drbd_float_post_notify_promoted_0" -> "ms_drbd_float_confirmed-post_notify_promoted_0" [ style = bold] "ms_drbd_float_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_post_notify_running_0" -> "drbd_float:0_post_notify_start_0 sambuca.linbit" [ style = bold] "ms_drbd_float_post_notify_running_0" -> "ms_drbd_float_confirmed-post_notify_running_0" [ style = bold] "ms_drbd_float_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_pre_notify_promote_0" -> "drbd_float:0_pre_notify_promote_0 sambuca.linbit" [ style = bold] "ms_drbd_float_pre_notify_promote_0" -> "ms_drbd_float_confirmed-pre_notify_promote_0" [ style = bold] "ms_drbd_float_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_pre_notify_start_0" -> "ms_drbd_float_confirmed-pre_notify_start_0" [ style = bold] "ms_drbd_float_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_promote_0" -> "drbd_float:0_promote_0 sambuca.linbit" [ style = bold] "ms_drbd_float_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_promoted_0" -> "ms_drbd_float_post_notify_promoted_0" [ style = bold] "ms_drbd_float_promoted_0" -> "nfsexport_start_0" [ style = bold] "ms_drbd_float_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_running_0" -> "ms_drbd_float_post_notify_running_0" [ style = bold] "ms_drbd_float_running_0" -> "ms_drbd_float_promote_0" [ style = bold] "ms_drbd_float_running_0" [ style=bold color="green" fontcolor="orange" ] "ms_drbd_float_start_0" -> "drbd_float:0_start_0 sambuca.linbit" [ style = bold] "ms_drbd_float_start_0" -> "ms_drbd_float_promote_0" [ style = bold] "ms_drbd_float_start_0" -> "ms_drbd_float_running_0" [ style = bold] "ms_drbd_float_start_0" [ style=bold color="green" fontcolor="orange" ] "nfsexport_running_0" [ style=dashed color="red" fontcolor="orange" ] "nfsexport_start_0" -> "ip_nfs_start_0 sambuca.linbit" [ style = bold] "nfsexport_start_0" -> "nfsexport_running_0" [ style = dashed] "nfsexport_start_0" [ style=bold color="green" fontcolor="orange" ] } diff --git a/pengine/test10/master-pseudo.exp b/pengine/test10/master-pseudo.exp index 54659f85fc..830259450c 100644 --- a/pengine/test10/master-pseudo.exp +++ b/pengine/test10/master-pseudo.exp @@ -1,275 +1,278 @@ + + + diff --git a/pengine/test10/migrate-5.dot b/pengine/test10/migrate-5.dot index 43b1ef8eb9..419ac328d3 100644 --- a/pengine/test10/migrate-5.dot +++ b/pengine/test10/migrate-5.dot @@ -1,22 +1,23 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stop_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "clone-dom0-iscsi1_stop_0" -> "dom0-iscsi1:0_stop_0" [ style = bold] "clone-dom0-iscsi1_stop_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "all_stopped" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style = bold] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1:0_stop_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1:0_stopped_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "dom0-iscsi1:0_stopped_0" [ style=bold color="green" fontcolor="orange" ] "domU-test01_migrate_from_0 dom0-01" -> "all_stopped" [ style = bold] "domU-test01_migrate_from_0 dom0-01" -> "clone-dom0-iscsi1_stop_0" [ style = bold] "domU-test01_migrate_from_0 dom0-01" [ style=bold color="green" fontcolor="black" ] "domU-test01_migrate_to_0 dom0-02" -> "all_stopped" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "clone-dom0-iscsi1_stop_0" [ style = bold] +"domU-test01_migrate_to_0 dom0-02" -> "dom0-iscsi1:0_stop_0" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "domU-test01_migrate_from_0 dom0-01" [ style = bold] "domU-test01_migrate_to_0 dom0-02" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/migrate-5.exp b/pengine/test10/migrate-5.exp index 66977e20c9..b14854e267 100644 --- a/pengine/test10/migrate-5.exp +++ b/pengine/test10/migrate-5.exp @@ -1,113 +1,116 @@ + + + diff --git a/pengine/test10/migrate-stop-complex.dot b/pengine/test10/migrate-stop-complex.dot index 777aac66ab..a90f421a8b 100644 --- a/pengine/test10/migrate-stop-complex.dot +++ b/pengine/test10/migrate-stop-complex.dot @@ -1,37 +1,39 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "bottom:1_stop_0 dom0-02" -> "all_stopped" [ style = bold] "bottom:1_stop_0 dom0-02" -> "clone-bottom_stopped_0" [ style = bold] "bottom:1_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] "clone-bottom_stop_0" -> "bottom:1_stop_0 dom0-02" [ style = bold] "clone-bottom_stop_0" -> "clone-bottom_stopped_0" [ style = bold] "clone-bottom_stop_0" [ style=bold color="green" fontcolor="orange" ] "clone-bottom_stopped_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stop_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "clone-dom0-iscsi1_stop_0" -> "dom0-iscsi1:0_stop_0" [ style = bold] "clone-dom0-iscsi1_stop_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "all_stopped" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style = bold] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1:0_stop_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1:0_stopped_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "dom0-iscsi1:0_stopped_0" [ style=bold color="green" fontcolor="orange" ] "domU-test01_migrate_from_0 dom0-01" -> "all_stopped" [ style = bold] "domU-test01_migrate_from_0 dom0-01" -> "clone-bottom_stop_0" [ style = bold] "domU-test01_migrate_from_0 dom0-01" -> "clone-dom0-iscsi1_stop_0" [ style = bold] "domU-test01_migrate_from_0 dom0-01" -> "top_start_0 dom0-01" [ style = bold] "domU-test01_migrate_from_0 dom0-01" [ style=bold color="green" fontcolor="black" ] "domU-test01_migrate_to_0 dom0-02" -> "all_stopped" [ style = bold] +"domU-test01_migrate_to_0 dom0-02" -> "bottom:1_stop_0 dom0-02" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "clone-bottom_stop_0" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "clone-dom0-iscsi1_stop_0" [ style = bold] +"domU-test01_migrate_to_0 dom0-02" -> "dom0-iscsi1:0_stop_0" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "domU-test01_migrate_from_0 dom0-01" [ style = bold] "domU-test01_migrate_to_0 dom0-02" [ style=bold color="green" fontcolor="black" ] "top_start_0 dom0-01" [ style=bold color="green" fontcolor="black" ] "top_stop_0 dom0-02" -> "all_stopped" [ style = bold] "top_stop_0 dom0-02" -> "domU-test01_migrate_to_0 dom0-02" [ style = bold] "top_stop_0 dom0-02" -> "top_start_0 dom0-01" [ style = bold] "top_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/migrate-stop-complex.exp b/pengine/test10/migrate-stop-complex.exp index ef553350b1..c0117f6061 100644 --- a/pengine/test10/migrate-stop-complex.exp +++ b/pengine/test10/migrate-stop-complex.exp @@ -1,191 +1,197 @@ + + + + + + diff --git a/pengine/test10/migrate-stop.dot b/pengine/test10/migrate-stop.dot index 817e9cd354..7ee7c8fa1c 100644 --- a/pengine/test10/migrate-stop.dot +++ b/pengine/test10/migrate-stop.dot @@ -1,22 +1,23 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stop_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "clone-dom0-iscsi1_stop_0" -> "dom0-iscsi1:0_stop_0" [ style = bold] "clone-dom0-iscsi1_stop_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "all_stopped" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style = bold] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1:0_stop_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1:0_stopped_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "dom0-iscsi1:0_stopped_0" [ style=bold color="green" fontcolor="orange" ] "domU-test01_migrate_from_0 dom0-01" -> "all_stopped" [ style = bold] "domU-test01_migrate_from_0 dom0-01" -> "clone-dom0-iscsi1_stop_0" [ style = bold] "domU-test01_migrate_from_0 dom0-01" [ style=bold color="green" fontcolor="black" ] "domU-test01_migrate_to_0 dom0-02" -> "all_stopped" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "clone-dom0-iscsi1_stop_0" [ style = bold] +"domU-test01_migrate_to_0 dom0-02" -> "dom0-iscsi1:0_stop_0" [ style = bold] "domU-test01_migrate_to_0 dom0-02" -> "domU-test01_migrate_from_0 dom0-01" [ style = bold] "domU-test01_migrate_to_0 dom0-02" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/migrate-stop.exp b/pengine/test10/migrate-stop.exp index 66977e20c9..b14854e267 100644 --- a/pengine/test10/migrate-stop.exp +++ b/pengine/test10/migrate-stop.exp @@ -1,113 +1,116 @@ + + + diff --git a/pengine/test10/migrate-stop_start.dot b/pengine/test10/migrate-stop_start.dot index e25b0328f4..ced9d982db 100644 --- a/pengine/test10/migrate-stop_start.dot +++ b/pengine/test10/migrate-stop_start.dot @@ -1,37 +1,38 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_running_0" -> "domU-test01_start_0 dom0-01" [ style = bold] "clone-dom0-iscsi1_running_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_start_0" -> "clone-dom0-iscsi1_running_0" [ style = bold] "clone-dom0-iscsi1_start_0" -> "dom0-iscsi1:0_start_0" [ style = bold] "clone-dom0-iscsi1_start_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stop_0" -> "clone-dom0-iscsi1_start_0" [ style = bold] "clone-dom0-iscsi1_stop_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "clone-dom0-iscsi1_stop_0" -> "dom0-iscsi1:0_stop_0" [ style = bold] "clone-dom0-iscsi1_stop_0" [ style=bold color="green" fontcolor="orange" ] "clone-dom0-iscsi1_stopped_0" -> "clone-dom0-iscsi1_start_0" [ style = bold] "clone-dom0-iscsi1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1-cnx1:0_start_0 dom0-01" -> "dom0-iscsi1:0_running_0" [ style = bold] "dom0-iscsi1-cnx1:0_start_0 dom0-01" [ style=bold color="green" fontcolor="black" ] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "all_stopped" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "dom0-iscsi1-cnx1:0_start_0 dom0-01" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] "dom0-iscsi1:0_running_0" -> "clone-dom0-iscsi1_running_0" [ style = bold] "dom0-iscsi1:0_running_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1:0_start_0" -> "dom0-iscsi1-cnx1:0_start_0 dom0-01" [ style = bold] "dom0-iscsi1:0_start_0" -> "dom0-iscsi1:0_running_0" [ style = bold] "dom0-iscsi1:0_start_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1-cnx1:0_stop_0 dom0-02" [ style = bold] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1:0_start_0" [ style = bold] "dom0-iscsi1:0_stop_0" -> "dom0-iscsi1:0_stopped_0" [ style = bold] "dom0-iscsi1:0_stop_0" [ style=bold color="green" fontcolor="orange" ] "dom0-iscsi1:0_stopped_0" -> "clone-dom0-iscsi1_stopped_0" [ style = bold] "dom0-iscsi1:0_stopped_0" -> "dom0-iscsi1:0_start_0" [ style = bold] "dom0-iscsi1:0_stopped_0" [ style=bold color="green" fontcolor="orange" ] "domU-test01_start_0 dom0-01" [ style=bold color="green" fontcolor="black" ] "domU-test01_stop_0 dom0-02" -> "all_stopped" [ style = bold] "domU-test01_stop_0 dom0-02" -> "clone-dom0-iscsi1_stop_0" [ style = bold] +"domU-test01_stop_0 dom0-02" -> "dom0-iscsi1:0_stop_0" [ style = bold] "domU-test01_stop_0 dom0-02" -> "domU-test01_start_0 dom0-01" [ style = bold] "domU-test01_stop_0 dom0-02" [ style=bold color="green" fontcolor="black" ] } diff --git a/pengine/test10/migrate-stop_start.exp b/pengine/test10/migrate-stop_start.exp index 46327c8c0d..2bd2729a34 100644 --- a/pengine/test10/migrate-stop_start.exp +++ b/pengine/test10/migrate-stop_start.exp @@ -1,189 +1,192 @@ + + + diff --git a/pengine/test10/novell-239082.dot b/pengine/test10/novell-239082.dot index a8638c5304..e65e567b26 100644 --- a/pengine/test10/novell-239082.dot +++ b/pengine/test10/novell-239082.dot @@ -1,94 +1,95 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "do_shutdown xen-1" [ style=bold color="green" fontcolor="black" ] "drbd0:0_post_notify_demote_0 xen-2" -> "ms-drbd0_confirmed-post_notify_demoted_0" [ style = bold] "drbd0:0_post_notify_demote_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:0_post_notify_promote_0 xen-2" -> "ms-drbd0_confirmed-post_notify_promoted_0" [ style = bold] "drbd0:0_post_notify_promote_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:0_post_notify_stop_0 xen-2" -> "ms-drbd0_confirmed-post_notify_stopped_0" [ style = bold] "drbd0:0_post_notify_stop_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:0_pre_notify_demote_0 xen-2" -> "ms-drbd0_confirmed-pre_notify_demote_0" [ style = bold] "drbd0:0_pre_notify_demote_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:0_pre_notify_promote_0 xen-2" -> "ms-drbd0_confirmed-pre_notify_promote_0" [ style = bold] "drbd0:0_pre_notify_promote_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:0_pre_notify_stop_0 xen-2" -> "ms-drbd0_confirmed-pre_notify_stop_0" [ style = bold] "drbd0:0_pre_notify_stop_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:0_promote_0 xen-2" -> "ms-drbd0_promoted_0" [ style = bold] "drbd0:0_promote_0 xen-2" [ style=bold color="green" fontcolor="black" ] "drbd0:1_demote_0 xen-1" -> "drbd0:1_stop_0 xen-1" [ style = bold] "drbd0:1_demote_0 xen-1" -> "ms-drbd0_demoted_0" [ style = bold] "drbd0:1_demote_0 xen-1" [ style=bold color="green" fontcolor="black" ] "drbd0:1_post_notify_demote_0 xen-1" -> "ms-drbd0_confirmed-post_notify_demoted_0" [ style = bold] "drbd0:1_post_notify_demote_0 xen-1" [ style=bold color="green" fontcolor="black" ] "drbd0:1_pre_notify_demote_0 xen-1" -> "ms-drbd0_confirmed-pre_notify_demote_0" [ style = bold] "drbd0:1_pre_notify_demote_0 xen-1" [ style=bold color="green" fontcolor="black" ] "drbd0:1_pre_notify_stop_0 xen-1" -> "ms-drbd0_confirmed-pre_notify_stop_0" [ style = bold] "drbd0:1_pre_notify_stop_0 xen-1" [ style=bold color="green" fontcolor="black" ] "drbd0:1_stop_0 xen-1" -> "all_stopped" [ style = bold] "drbd0:1_stop_0 xen-1" -> "do_shutdown xen-1" [ style = bold] "drbd0:1_stop_0 xen-1" -> "ms-drbd0_stopped_0" [ style = bold] "drbd0:1_stop_0 xen-1" [ style=bold color="green" fontcolor="black" ] "fs_1_start_0 xen-2" [ style=bold color="green" fontcolor="black" ] "fs_1_stop_0 xen-1" -> "all_stopped" [ style = bold] "fs_1_stop_0 xen-1" -> "do_shutdown xen-1" [ style = bold] +"fs_1_stop_0 xen-1" -> "drbd0:1_demote_0 xen-1" [ style = bold] "fs_1_stop_0 xen-1" -> "fs_1_start_0 xen-2" [ style = bold] "fs_1_stop_0 xen-1" -> "ms-drbd0_demote_0" [ style = bold] "fs_1_stop_0 xen-1" [ style=bold color="green" fontcolor="black" ] "ms-drbd0_confirmed-post_notify_demoted_0" -> "ms-drbd0_pre_notify_promote_0" [ style = bold] "ms-drbd0_confirmed-post_notify_demoted_0" -> "ms-drbd0_pre_notify_stop_0" [ style = bold] "ms-drbd0_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_confirmed-post_notify_promoted_0" -> "fs_1_start_0 xen-2" [ style = bold] "ms-drbd0_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "ms-drbd0_confirmed-post_notify_stopped_0" -> "ms-drbd0_pre_notify_promote_0" [ style = bold] "ms-drbd0_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_confirmed-pre_notify_demote_0" -> "ms-drbd0_demote_0" [ style = bold] "ms-drbd0_confirmed-pre_notify_demote_0" -> "ms-drbd0_post_notify_demoted_0" [ style = bold] "ms-drbd0_confirmed-pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_confirmed-pre_notify_promote_0" -> "ms-drbd0_post_notify_promoted_0" [ style = bold] "ms-drbd0_confirmed-pre_notify_promote_0" -> "ms-drbd0_promote_0" [ style = bold] "ms-drbd0_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_confirmed-pre_notify_stop_0" -> "ms-drbd0_post_notify_stopped_0" [ style = bold] "ms-drbd0_confirmed-pre_notify_stop_0" -> "ms-drbd0_stop_0" [ style = bold] "ms-drbd0_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_demote_0" -> "drbd0:1_demote_0 xen-1" [ style = bold] "ms-drbd0_demote_0" -> "ms-drbd0_demoted_0" [ style = bold] "ms-drbd0_demote_0" -> "ms-drbd0_stop_0" [ style = bold] "ms-drbd0_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_demoted_0" -> "ms-drbd0_post_notify_demoted_0" [ style = bold] "ms-drbd0_demoted_0" -> "ms-drbd0_promote_0" [ style = bold] "ms-drbd0_demoted_0" -> "ms-drbd0_stop_0" [ style = bold] "ms-drbd0_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_post_notify_demoted_0" -> "drbd0:0_post_notify_demote_0 xen-2" [ style = bold] "ms-drbd0_post_notify_demoted_0" -> "drbd0:1_post_notify_demote_0 xen-1" [ style = bold] "ms-drbd0_post_notify_demoted_0" -> "ms-drbd0_confirmed-post_notify_demoted_0" [ style = bold] "ms-drbd0_post_notify_demoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_post_notify_promoted_0" -> "drbd0:0_post_notify_promote_0 xen-2" [ style = bold] "ms-drbd0_post_notify_promoted_0" -> "ms-drbd0_confirmed-post_notify_promoted_0" [ style = bold] "ms-drbd0_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_post_notify_stopped_0" -> "drbd0:0_post_notify_stop_0 xen-2" [ style = bold] "ms-drbd0_post_notify_stopped_0" -> "ms-drbd0_confirmed-post_notify_stopped_0" [ style = bold] "ms-drbd0_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_pre_notify_demote_0" -> "drbd0:0_pre_notify_demote_0 xen-2" [ style = bold] "ms-drbd0_pre_notify_demote_0" -> "drbd0:1_pre_notify_demote_0 xen-1" [ style = bold] "ms-drbd0_pre_notify_demote_0" -> "ms-drbd0_confirmed-pre_notify_demote_0" [ style = bold] "ms-drbd0_pre_notify_demote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_pre_notify_promote_0" -> "drbd0:0_pre_notify_promote_0 xen-2" [ style = bold] "ms-drbd0_pre_notify_promote_0" -> "ms-drbd0_confirmed-pre_notify_promote_0" [ style = bold] "ms-drbd0_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_pre_notify_stop_0" -> "drbd0:0_pre_notify_stop_0 xen-2" [ style = bold] "ms-drbd0_pre_notify_stop_0" -> "drbd0:1_pre_notify_stop_0 xen-1" [ style = bold] "ms-drbd0_pre_notify_stop_0" -> "ms-drbd0_confirmed-pre_notify_stop_0" [ style = bold] "ms-drbd0_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_promote_0" -> "drbd0:0_promote_0 xen-2" [ style = bold] "ms-drbd0_promote_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_promoted_0" -> "fs_1_start_0 xen-2" [ style = bold] "ms-drbd0_promoted_0" -> "ms-drbd0_post_notify_promoted_0" [ style = bold] "ms-drbd0_promoted_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_stop_0" -> "drbd0:1_stop_0 xen-1" [ style = bold] "ms-drbd0_stop_0" -> "ms-drbd0_stopped_0" [ style = bold] "ms-drbd0_stop_0" [ style=bold color="green" fontcolor="orange" ] "ms-drbd0_stopped_0" -> "ms-drbd0_post_notify_stopped_0" [ style = bold] "ms-drbd0_stopped_0" -> "ms-drbd0_promote_0" [ style = bold] "ms-drbd0_stopped_0" [ style=bold color="green" fontcolor="orange" ] } diff --git a/pengine/test10/novell-239082.exp b/pengine/test10/novell-239082.exp index abb522d27a..5db2ea0836 100644 --- a/pengine/test10/novell-239082.exp +++ b/pengine/test10/novell-239082.exp @@ -1,495 +1,498 @@ + + + diff --git a/pengine/test10/novell-252693-3.dot b/pengine/test10/novell-252693-3.dot index 8bca13342f..c4ec399c94 100644 --- a/pengine/test10/novell-252693-3.dot +++ b/pengine/test10/novell-252693-3.dot @@ -1,170 +1,171 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange" ] "configstoreclone:0_post_notify_start_0 node2" -> "configstorecloneset_confirmed-post_notify_running_0" [ style = bold] "configstoreclone:0_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "configstoreclone:0_pre_notify_start_0 node2" -> "configstorecloneset_confirmed-pre_notify_start_0" [ style = bold] "configstoreclone:0_pre_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "configstoreclone:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_monitor_20000 node1" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_post_notify_start_0 node1" -> "configstorecloneset_confirmed-post_notify_running_0" [ style = bold] "configstoreclone:1_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_start_0 node1" -> "configstoreclone:1_monitor_20000 node1" [ style = bold] "configstoreclone:1_start_0 node1" -> "configstorecloneset_running_0" [ style = bold] "configstoreclone:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "configstorecloneset_confirmed-post_notify_running_0" -> "configstoreclone:1_monitor_20000 node1" [ style = bold] "configstorecloneset_confirmed-post_notify_running_0" -> "sles10_start_0 node1" [ style = bold] "configstorecloneset_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_confirmed-pre_notify_start_0" -> "configstorecloneset_post_notify_running_0" [ style = bold] "configstorecloneset_confirmed-pre_notify_start_0" -> "configstorecloneset_start_0" [ style = bold] "configstorecloneset_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_post_notify_running_0" -> "configstoreclone:0_post_notify_start_0 node2" [ style = bold] "configstorecloneset_post_notify_running_0" -> "configstoreclone:1_post_notify_start_0 node1" [ style = bold] "configstorecloneset_post_notify_running_0" -> "configstorecloneset_confirmed-post_notify_running_0" [ style = bold] "configstorecloneset_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_pre_notify_start_0" -> "configstoreclone:0_pre_notify_start_0 node2" [ style = bold] "configstorecloneset_pre_notify_start_0" -> "configstorecloneset_confirmed-pre_notify_start_0" [ style = bold] "configstorecloneset_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_running_0" -> "configstorecloneset_post_notify_running_0" [ style = bold] "configstorecloneset_running_0" -> "sles10_start_0 node1" [ style = bold] "configstorecloneset_running_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_start_0" -> "configstoreclone:1_start_0 node1" [ style = bold] "configstorecloneset_start_0" -> "configstorecloneset_running_0" [ style = bold] "configstorecloneset_start_0" [ style=bold color="green" fontcolor="orange" ] "evmsclone:0_post_notify_start_0 node2" -> "evmscloneset_confirmed-post_notify_running_0" [ style = bold] "evmsclone:0_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "evmsclone:0_pre_notify_start_0 node2" -> "evmscloneset_confirmed-pre_notify_start_0" [ style = bold] "evmsclone:0_pre_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "evmsclone:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "evmsclone:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "evmsclone:1_post_notify_start_0 node1" -> "evmscloneset_confirmed-post_notify_running_0" [ style = bold] "evmsclone:1_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "evmsclone:1_start_0 node1" -> "evmscloneset_running_0" [ style = bold] "evmsclone:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "evmscloneset_confirmed-post_notify_running_0" -> "configstorecloneset_start_0" [ style = bold] "evmscloneset_confirmed-post_notify_running_0" -> "imagestorecloneset_start_0" [ style = bold] "evmscloneset_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_confirmed-pre_notify_start_0" -> "evmscloneset_post_notify_running_0" [ style = bold] "evmscloneset_confirmed-pre_notify_start_0" -> "evmscloneset_start_0" [ style = bold] "evmscloneset_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_post_notify_running_0" -> "evmsclone:0_post_notify_start_0 node2" [ style = bold] "evmscloneset_post_notify_running_0" -> "evmsclone:1_post_notify_start_0 node1" [ style = bold] "evmscloneset_post_notify_running_0" -> "evmscloneset_confirmed-post_notify_running_0" [ style = bold] "evmscloneset_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_pre_notify_start_0" -> "evmsclone:0_pre_notify_start_0 node2" [ style = bold] "evmscloneset_pre_notify_start_0" -> "evmscloneset_confirmed-pre_notify_start_0" [ style = bold] "evmscloneset_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_running_0" -> "configstorecloneset_start_0" [ style = bold] "evmscloneset_running_0" -> "evmscloneset_post_notify_running_0" [ style = bold] "evmscloneset_running_0" -> "imagestorecloneset_start_0" [ style = bold] "evmscloneset_running_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_start_0" -> "evmsclone:1_start_0 node1" [ style = bold] "evmscloneset_start_0" -> "evmscloneset_running_0" [ style = bold] "evmscloneset_start_0" [ style=bold color="green" fontcolor="orange" ] "evmsdclone:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "evmsdclone:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "evmsdclone:1_monitor_5000 node1" [ style=bold color="green" fontcolor="black" ] "evmsdclone:1_start_0 node1" -> "evmsdclone:1_monitor_5000 node1" [ style = bold] "evmsdclone:1_start_0 node1" -> "evmsdcloneset_running_0" [ style = bold] "evmsdclone:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "evmsdcloneset_running_0" -> "evmscloneset_start_0" [ style = bold] "evmsdcloneset_running_0" [ style=bold color="green" fontcolor="orange" ] "evmsdcloneset_start_0" -> "evmsdclone:1_start_0 node1" [ style = bold] "evmsdcloneset_start_0" -> "evmsdcloneset_running_0" [ style = bold] "evmsdcloneset_start_0" [ style=bold color="green" fontcolor="orange" ] "imagestoreclone:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "imagestoreclone:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:0_monitor_20000 node1" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:0_post_notify_start_0 node1" -> "imagestorecloneset_confirmed-post_notify_running_0" [ style = bold] "imagestoreclone:0_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:0_pre_notify_stop_0 node2" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "imagestoreclone:0_pre_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:0_start_0 node1" -> "imagestoreclone:0_monitor_20000 node1" [ style = bold] "imagestoreclone:0_start_0 node1" -> "imagestorecloneset_running_0" [ style = bold] "imagestoreclone:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:0_stop_0 node2" -> "all_stopped" [ style = bold] "imagestoreclone:0_stop_0 node2" -> "imagestoreclone:0_start_0 node1" [ style = bold] "imagestoreclone:0_stop_0 node2" -> "imagestorecloneset_stopped_0" [ style = bold] "imagestoreclone:0_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:1_monitor_20000 node2" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:1_post_notify_start_0 node2" -> "imagestorecloneset_confirmed-post_notify_running_0" [ style = bold] "imagestoreclone:1_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:1_start_0 node2" -> "imagestoreclone:1_monitor_20000 node2" [ style = bold] "imagestoreclone:1_start_0 node2" -> "imagestorecloneset_running_0" [ style = bold] "imagestoreclone:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "imagestorecloneset_confirmed-post_notify_running_0" -> "imagestoreclone:0_monitor_20000 node1" [ style = bold] "imagestorecloneset_confirmed-post_notify_running_0" -> "imagestoreclone:1_monitor_20000 node2" [ style = bold] "imagestorecloneset_confirmed-post_notify_running_0" -> "sles10_start_0 node1" [ style = bold] "imagestorecloneset_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "imagestorecloneset_confirmed-post_notify_stopped_0" -> "imagestorecloneset_pre_notify_start_0" [ style = bold] "imagestorecloneset_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_confirmed-pre_notify_start_0" -> "imagestorecloneset_post_notify_running_0" [ style = bold] "imagestorecloneset_confirmed-pre_notify_start_0" -> "imagestorecloneset_start_0" [ style = bold] "imagestorecloneset_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_confirmed-pre_notify_stop_0" -> "imagestorecloneset_post_notify_stopped_0" [ style = bold] "imagestorecloneset_confirmed-pre_notify_stop_0" -> "imagestorecloneset_stop_0" [ style = bold] "imagestorecloneset_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_post_notify_running_0" -> "imagestoreclone:0_post_notify_start_0 node1" [ style = bold] "imagestorecloneset_post_notify_running_0" -> "imagestoreclone:1_post_notify_start_0 node2" [ style = bold] "imagestorecloneset_post_notify_running_0" -> "imagestorecloneset_confirmed-post_notify_running_0" [ style = bold] "imagestorecloneset_post_notify_running_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_post_notify_stopped_0" -> "imagestorecloneset_confirmed-post_notify_stopped_0" [ style = bold] "imagestorecloneset_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_pre_notify_start_0" -> "imagestorecloneset_confirmed-pre_notify_start_0" [ style = bold] "imagestorecloneset_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_pre_notify_stop_0" -> "imagestoreclone:0_pre_notify_stop_0 node2" [ style = bold] "imagestorecloneset_pre_notify_stop_0" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "imagestorecloneset_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_running_0" -> "imagestorecloneset_post_notify_running_0" [ style = bold] "imagestorecloneset_running_0" -> "sles10_start_0 node1" [ style = bold] "imagestorecloneset_running_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_start_0" -> "imagestoreclone:0_start_0 node1" [ style = bold] "imagestorecloneset_start_0" -> "imagestoreclone:1_start_0 node2" [ style = bold] "imagestorecloneset_start_0" -> "imagestorecloneset_running_0" [ style = bold] "imagestorecloneset_start_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_stop_0" -> "imagestoreclone:0_stop_0 node2" [ style = bold] "imagestorecloneset_stop_0" -> "imagestorecloneset_start_0" [ style = bold] "imagestorecloneset_stop_0" -> "imagestorecloneset_stopped_0" [ style = bold] "imagestorecloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_stopped_0" -> "imagestorecloneset_post_notify_stopped_0" [ style = bold] "imagestorecloneset_stopped_0" -> "imagestorecloneset_start_0" [ style = bold] "imagestorecloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete" -> "configstoreclone:1_start_0 node1" [ style = bold] "probe_complete" -> "configstorecloneset_start_0" [ style = bold] "probe_complete" -> "evmsclone:1_start_0 node1" [ style = bold] "probe_complete" -> "evmscloneset_start_0" [ style = bold] "probe_complete" -> "evmsdclone:1_start_0 node1" [ style = bold] "probe_complete" -> "evmsdcloneset_start_0" [ style = bold] "probe_complete" -> "imagestoreclone:0_start_0 node1" [ style = bold] "probe_complete" -> "imagestoreclone:0_stop_0 node2" [ style = bold] "probe_complete" -> "imagestoreclone:1_start_0 node2" [ style = bold] "probe_complete" -> "imagestorecloneset_start_0" [ style = bold] "probe_complete" -> "imagestorecloneset_stop_0" [ style = bold] "probe_complete" -> "sles10_start_0 node1" [ style = bold] "probe_complete" -> "sles10_stop_0 node2" [ style = bold] "probe_complete" -> "stonithclone:1_start_0 node1" [ style = bold] "probe_complete" -> "stonithcloneset_start_0" [ style = bold] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "sles10_monitor_0 node1" -> "probe_complete node1" [ style = bold] "sles10_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "sles10_monitor_10000 node1" [ style=bold color="green" fontcolor="black" ] "sles10_start_0 node1" -> "sles10_monitor_10000 node1" [ style = bold] "sles10_start_0 node1" [ style=bold color="green" fontcolor="black" ] "sles10_stop_0 node2" -> "all_stopped" [ style = bold] +"sles10_stop_0 node2" -> "imagestoreclone:0_stop_0 node2" [ style = bold] "sles10_stop_0 node2" -> "imagestorecloneset_stop_0" [ style = bold] "sles10_stop_0 node2" -> "sles10_start_0 node1" [ style = bold] "sles10_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "stonithclone:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "stonithclone:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "stonithclone:1_monitor_5000 node1" [ style=bold color="green" fontcolor="black" ] "stonithclone:1_start_0 node1" -> "stonithclone:1_monitor_5000 node1" [ style = bold] "stonithclone:1_start_0 node1" -> "stonithcloneset_running_0" [ style = bold] "stonithclone:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "stonithcloneset_running_0" [ style=bold color="green" fontcolor="orange" ] "stonithcloneset_start_0" -> "stonithclone:1_start_0 node1" [ style = bold] "stonithcloneset_start_0" -> "stonithcloneset_running_0" [ style = bold] "stonithcloneset_start_0" [ style=bold color="green" fontcolor="orange" ] } diff --git a/pengine/test10/novell-252693-3.exp b/pengine/test10/novell-252693-3.exp index 2cdf5cfb36..58ef3c103b 100644 --- a/pengine/test10/novell-252693-3.exp +++ b/pengine/test10/novell-252693-3.exp @@ -1,894 +1,897 @@ + + + diff --git a/pengine/test10/novell-252693.dot b/pengine/test10/novell-252693.dot index 2d8b3c07c6..09884849b7 100644 --- a/pengine/test10/novell-252693.dot +++ b/pengine/test10/novell-252693.dot @@ -1,118 +1,120 @@ digraph "g" { "all_stopped" -> "stonithclone:1_stop_0 node1" [ style = bold] "all_stopped" [ style=bold color="green" fontcolor="orange" ] "configstoreclone:0_post_notify_stop_0 node2" -> "configstorecloneset_confirmed-post_notify_stopped_0" [ style = bold] "configstoreclone:0_post_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "configstoreclone:0_pre_notify_stop_0 node2" -> "configstorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "configstoreclone:0_pre_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_pre_notify_stop_0 node1" -> "configstorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "configstoreclone:1_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_stop_0 node1" -> "all_stopped" [ style = bold] "configstoreclone:1_stop_0 node1" -> "configstorecloneset_stopped_0" [ style = bold] "configstoreclone:1_stop_0 node1" -> "do_shutdown node1" [ style = bold] "configstoreclone:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "configstorecloneset_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "configstorecloneset_confirmed-post_notify_stopped_0" -> "evmscloneset_stop_0" [ style = bold] "configstorecloneset_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_confirmed-pre_notify_stop_0" -> "configstorecloneset_post_notify_stopped_0" [ style = bold] "configstorecloneset_confirmed-pre_notify_stop_0" -> "configstorecloneset_stop_0" [ style = bold] "configstorecloneset_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_post_notify_stopped_0" -> "configstoreclone:0_post_notify_stop_0 node2" [ style = bold] "configstorecloneset_post_notify_stopped_0" -> "configstorecloneset_confirmed-post_notify_stopped_0" [ style = bold] "configstorecloneset_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_pre_notify_stop_0" -> "configstoreclone:0_pre_notify_stop_0 node2" [ style = bold] "configstorecloneset_pre_notify_stop_0" -> "configstoreclone:1_pre_notify_stop_0 node1" [ style = bold] "configstorecloneset_pre_notify_stop_0" -> "configstorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "configstorecloneset_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_stop_0" -> "configstoreclone:1_stop_0 node1" [ style = bold] "configstorecloneset_stop_0" -> "configstorecloneset_stopped_0" [ style = bold] "configstorecloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_stopped_0" -> "configstorecloneset_post_notify_stopped_0" [ style = bold] "configstorecloneset_stopped_0" -> "evmscloneset_stop_0" [ style = bold] "configstorecloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] "do_shutdown node1" [ style=bold color="green" fontcolor="black" ] "evmsclone:0_post_notify_stop_0 node2" -> "evmscloneset_confirmed-post_notify_stopped_0" [ style = bold] "evmsclone:0_post_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "evmsclone:0_pre_notify_stop_0 node2" -> "evmscloneset_confirmed-pre_notify_stop_0" [ style = bold] "evmsclone:0_pre_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "evmsclone:1_pre_notify_stop_0 node1" -> "evmscloneset_confirmed-pre_notify_stop_0" [ style = bold] "evmsclone:1_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "evmsclone:1_stop_0 node1" -> "all_stopped" [ style = bold] "evmsclone:1_stop_0 node1" -> "do_shutdown node1" [ style = bold] "evmsclone:1_stop_0 node1" -> "evmscloneset_stopped_0" [ style = bold] "evmsclone:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "evmscloneset_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "evmscloneset_confirmed-post_notify_stopped_0" -> "evmsdcloneset_stop_0" [ style = bold] "evmscloneset_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_confirmed-pre_notify_stop_0" -> "evmscloneset_post_notify_stopped_0" [ style = bold] "evmscloneset_confirmed-pre_notify_stop_0" -> "evmscloneset_stop_0" [ style = bold] "evmscloneset_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_post_notify_stopped_0" -> "evmsclone:0_post_notify_stop_0 node2" [ style = bold] "evmscloneset_post_notify_stopped_0" -> "evmscloneset_confirmed-post_notify_stopped_0" [ style = bold] "evmscloneset_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_pre_notify_stop_0" -> "evmsclone:0_pre_notify_stop_0 node2" [ style = bold] "evmscloneset_pre_notify_stop_0" -> "evmsclone:1_pre_notify_stop_0 node1" [ style = bold] "evmscloneset_pre_notify_stop_0" -> "evmscloneset_confirmed-pre_notify_stop_0" [ style = bold] "evmscloneset_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_stop_0" -> "evmsclone:1_stop_0 node1" [ style = bold] "evmscloneset_stop_0" -> "evmscloneset_stopped_0" [ style = bold] "evmscloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] "evmscloneset_stopped_0" -> "evmscloneset_post_notify_stopped_0" [ style = bold] "evmscloneset_stopped_0" -> "evmsdcloneset_stop_0" [ style = bold] "evmscloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] "evmsdclone:1_stop_0 node1" -> "all_stopped" [ style = bold] "evmsdclone:1_stop_0 node1" -> "do_shutdown node1" [ style = bold] "evmsdclone:1_stop_0 node1" -> "evmsdcloneset_stopped_0" [ style = bold] "evmsdclone:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "evmsdcloneset_stop_0" -> "evmsdclone:1_stop_0 node1" [ style = bold] "evmsdcloneset_stop_0" -> "evmsdcloneset_stopped_0" [ style = bold] "evmsdcloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] "evmsdcloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] "imagestoreclone:0_post_notify_stop_0 node2" -> "imagestorecloneset_confirmed-post_notify_stopped_0" [ style = bold] "imagestoreclone:0_post_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:0_pre_notify_stop_0 node2" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "imagestoreclone:0_pre_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:1_pre_notify_stop_0 node1" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "imagestoreclone:1_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "imagestoreclone:1_stop_0 node1" -> "all_stopped" [ style = bold] "imagestoreclone:1_stop_0 node1" -> "do_shutdown node1" [ style = bold] "imagestoreclone:1_stop_0 node1" -> "imagestorecloneset_stopped_0" [ style = bold] "imagestoreclone:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "imagestorecloneset_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "imagestorecloneset_confirmed-post_notify_stopped_0" -> "evmscloneset_stop_0" [ style = bold] "imagestorecloneset_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_confirmed-pre_notify_stop_0" -> "imagestorecloneset_post_notify_stopped_0" [ style = bold] "imagestorecloneset_confirmed-pre_notify_stop_0" -> "imagestorecloneset_stop_0" [ style = bold] "imagestorecloneset_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_post_notify_stopped_0" -> "imagestoreclone:0_post_notify_stop_0 node2" [ style = bold] "imagestorecloneset_post_notify_stopped_0" -> "imagestorecloneset_confirmed-post_notify_stopped_0" [ style = bold] "imagestorecloneset_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_pre_notify_stop_0" -> "imagestoreclone:0_pre_notify_stop_0 node2" [ style = bold] "imagestorecloneset_pre_notify_stop_0" -> "imagestoreclone:1_pre_notify_stop_0 node1" [ style = bold] "imagestorecloneset_pre_notify_stop_0" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = bold] "imagestorecloneset_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_stop_0" -> "imagestoreclone:1_stop_0 node1" [ style = bold] "imagestorecloneset_stop_0" -> "imagestorecloneset_stopped_0" [ style = bold] "imagestorecloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] "imagestorecloneset_stopped_0" -> "evmscloneset_stop_0" [ style = bold] "imagestorecloneset_stopped_0" -> "imagestorecloneset_post_notify_stopped_0" [ style = bold] "imagestorecloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] "sles10_migrate_from_0 node2" -> "all_stopped" [ style = bold] "sles10_migrate_from_0 node2" -> "do_shutdown node1" [ style = bold] "sles10_migrate_from_0 node2" -> "sles10_monitor_10000 node2" [ style = bold] "sles10_migrate_from_0 node2" [ style=bold color="green" fontcolor="black" ] "sles10_migrate_to_0 node1" -> "all_stopped" [ style = bold] +"sles10_migrate_to_0 node1" -> "configstoreclone:1_stop_0 node1" [ style = bold] "sles10_migrate_to_0 node1" -> "configstorecloneset_stop_0" [ style = bold] "sles10_migrate_to_0 node1" -> "do_shutdown node1" [ style = bold] +"sles10_migrate_to_0 node1" -> "imagestoreclone:1_stop_0 node1" [ style = bold] "sles10_migrate_to_0 node1" -> "imagestorecloneset_stop_0" [ style = bold] "sles10_migrate_to_0 node1" -> "sles10_migrate_from_0 node2" [ style = bold] "sles10_migrate_to_0 node1" [ style=bold color="green" fontcolor="black" ] "sles10_monitor_10000 node2" [ style=bold color="green" fontcolor="black" ] "stonithclone:1_stop_0 node1" -> "do_shutdown node1" [ style = bold] "stonithclone:1_stop_0 node1" -> "stonithcloneset_stopped_0" [ style = bold] "stonithclone:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "stonithcloneset_stop_0" -> "stonithclone:1_stop_0 node1" [ style = bold] "stonithcloneset_stop_0" -> "stonithcloneset_stopped_0" [ style = bold] "stonithcloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] "stonithcloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] } diff --git a/pengine/test10/novell-252693.exp b/pengine/test10/novell-252693.exp index 969ff2215c..4530899b63 100644 --- a/pengine/test10/novell-252693.exp +++ b/pengine/test10/novell-252693.exp @@ -1,609 +1,615 @@ + + + + + +