-
Notifications
You must be signed in to change notification settings - Fork 30
Description
Is your feature request related to a problem? Please describe.
Currently, a REFRESH CLUSTER REPOS(YES) request issued through MQSC or otherwise can cause potentially unexpected behaviour when channels are not all stopped, or if they take too long to stop.
MQ-Ansible automation could help with this.
Describe the solution you'd like
Similar to the "ALL_QMGRS" action in the queue_manager module, it would be helpful if we could provide a means to stop all relevant channels (Cluster Senders) on a queue manager, easing the process of a cluster refresh.
This could get complicated, though we could start with:
- Enabling a means to stop all channels beginning with a particular name prefix (which might be being used to identify the cluster) - STOP CHANNEL (CLUSA.*).
Describe alternatives you've considered
N/A
Additional context
A good implementation would involve the use of template MQSC files, like those used in blueprints/sender-config.mqsc, where <RCVR.QMGR.IP> is used to indicate a variable IP address for the receiver QMGR.
We can start by using a similar variable for the "Cluster Identifier", and stop all channels beginning with that name. Create a blueprint yaml file similar to sdr-rcvr.yml:
- Use ansible.builtin.setup and ansible.builtin.set_fact to set a variable for the "Cluster Identifier"
- Get the template MQSC with ansible.builtin.import_role.
- Use ansible.builtin.replace to update the MQSC with the Cluster Identifier.
- Run the MQSC against a particular QMGR using our ibm_messaging.ibmmq.queue_manager module.