The instantiaton of the component is performed with some new steps:
1. SU invoke Comp to instantiate
2. Comp multicast a new event
MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE
3. Comp receive the new event
MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE
4. If the Comp is within the SU hosted on the node. The
component invokes
the clc_cli instantiate script to start the component
and start a timer
to supervise the start and registration of the component.
5. If the instantiation time elapse before the component has
registered himself
Comp is sending a new multicasted event
MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE_TMO.
6. Comp receive
MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE_TMO event.
7. The Comp presence state is set to
SA_AMF_PRESENCE_INSTANTIATION_FAILED
8. When all Components are in presence state
SA_AMF_PRESENCE_INSTANTIATED or
SA_AMF_PRESENCE_INSTANTIATION_FAILED the start or restart will
continue with
the assignment of load.
This implemntation means that the complete instantiation procedure
never will be endlessly waiting for a register. The
instantiation will
either turn out in a component instantiation failure or a success.
Hardening of the cluster start use case:
1. A clearer separation of the responsibilities between
amf_cluster and
amf_application.
2. A clearer interface and separation between amf_main (amf.c) and
amf_cluster.
3. A clearer interface and separation between amf_cluster
and amf_node.
4. A clearer separation of the responsibilities between amf_node and
amf_application.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1251 fd59a12c-fef9-0310-b244-a6a79926bd2f