Bug 2058251

Summary: [RFE] Provide method to export commands to create all resources
Product: Red Hat Enterprise Linux 9 Reporter: Tomas Jelinek <tojeline>
Component: pcsAssignee: Ondrej Mular <omular>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: high Docs Contact: Steven J. Levine <slevine>
Priority: high    
Version: 9.0CC: cluster-maint, cluster-qe, idevat, kwalker, lmiksik, mlisik, mmazoure, mpospisi, nwahl, omular, sbradley, slevine, tojeline
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: 9.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.11.2-1.el9 Doc Type: Enhancement
Doc Text:
.New `pcs resource config` command option to display the `pcs` commands that re-create configured resources The `pcs resource config` command now accepts the `--output-format=cmd` option. Specifying this option displays the `pcs` commands you can use to re-create configured resources on a different system.
Story Points: ---
Clone Of: 1874624 Environment:
Last Closed: 2022-11-15 09:49:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tomas Jelinek 2022-02-24 15:17:48 UTC
+++ This bug was initially created as a clone of Bug #1874624 +++

This is a preliminary proposal to create a pcs command to export all resources as from a pcs command.  (and eventually expanding to include other commands).

For example:

With a cluster with 2 dummy resources (D1 & D2)

# pcs resource export
pcs resource create D1 ocf:heartbeat:Dummy
pcs resource create D2 ocf:heartbeat:Dummy

Comment 2 Ondrej Mular 2022-04-06 06:13:04 UTC
Upstream patch: https://github.com/ClusterLabs/pcs/commit/50b5eeff40c7a31fdec011295da5e196bdc77e48

Test:
[root@rhel91 pcs]# pcs resource create dummy1 ocf:pacemaker:Dummy
[root@rhel91 pcs]# pcs resource config dummy1 --output-format=cmd
pcs resource create --no-default-ops --force -- dummy1 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=0s id=dummy1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=dummy1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=dummy1-monitor-interval-10s timeout=20s \
    reload interval=0s id=dummy1-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=dummy1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=dummy1-start-interval-0s timeout=20s \
    stop interval=0s id=dummy1-stop-interval-0s timeout=20s

Comment 3 Miroslav Lisik 2022-05-19 17:32:49 UTC
DevTestResults:

[root@r91-1 ~]# rpm -q pcs
pcs-0.11.2-1.el9.x86_64

[root@r91-1 ~]# pcs resource create dummy1 ocf:pacemaker:Dummy
[root@r91-1 ~]# pcs resource config dummy1 --output-format=cmd
pcs resource create --no-default-ops --force -- dummy1 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=0s id=dummy1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=dummy1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=dummy1-monitor-interval-10s timeout=20s \
    reload interval=0s id=dummy1-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=dummy1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=dummy1-start-interval-0s timeout=20s \
    stop interval=0s id=dummy1-stop-interval-0s timeout=20s

Comment 8 Michal Mazourek 2022-06-30 12:30:37 UTC
AFTER:
======

[root@virt-272 ~]# rpm -q pcs
pcs-0.11.2-1.el9.x86_64


### Automated test case
- create all ocf resources via 'pcs resource create'
- save the current configuration via 'pcs resource config'
- export all resources as pcs commands
- delete the current resources
- create the resources again using the exported config
- compare the current and previous configurations

------------------------------------------------------------------------------
{...}
2022-06-29 11:39:11 INFO:	CHECK_CLUSTER_HEALTH
2022-06-29 11:39:11 INFO:	SETUP_PCSD_PORTS
2022-06-29 11:39:11 INFO:	CLEAR_DAEMON_CONFIGS
2022-06-29 11:39:11 INFO:	RESTART_DAEMON
2022-06-29 11:39:15 INFO:	RANDOMIZE_PCSD_PORTS
2022-06-29 11:39:15 INFO:	Randomized ports NOT activated yet.
2022-06-29 11:39:15 INFO:	SET_PASSWORD
2022-06-29 11:39:15 INFO:	SETUP_PCSD_PORTS
2022-06-29 11:39:15 INFO:	RESTART_DAEMON
2022-06-29 11:39:16 INFO:	SETUP_PCSD_PORTS
2022-06-29 11:39:16 INFO:	RESTART_DAEMON
2022-06-29 11:39:18 INFO:	RESTART_DAEMON
2022-06-29 11:39:20 INFO:	ENABLE_DAEMON
2022-06-29 11:39:20 INFO:	PCS_HOST_AUTH
2022-06-29 11:39:20 INFO:	running auth from virt-272
2022-06-29 11:39:22 INFO:	PCS_STATUS_AUTH
2022-06-29 11:39:23 INFO:	PCS_CLUSTER_SETUP
2022-06-29 11:39:23 INFO:	running: pcs cluster setup STSRHTS7581 virt-272 virt-273 
2022-06-29 11:39:29 INFO:	cluster created
2022-06-29 11:39:29 INFO:	SLEEP
2022-06-29 11:39:39 INFO:	PCS_CLUSTER_START
2022-06-29 11:39:39 INFO:	starting cluster from virt-272 with --all
2022-06-29 11:40:07 INFO:	cluster started
2022-06-29 11:40:07 INFO:	CHECK_CLUSTER_HEALTH
2022-06-29 11:40:07 INFO:	cluster looks healthy on virt-272 virt-273
2022-06-29 11:40:07 INFO:	SETUP_DEFAULT_STONITH
2022-06-29 11:40:07 INFO:	PCS_STONITH_CREATE
2022-06-29 11:40:07 INFO:	running: pcs stonith create fence-virt-272 fence_xvm pcmk_host_check="static-list" pcmk_host_list="virt-272" pcmk_host_map="virt-272:virt-272.cluster-qe.lab.eng.brq.redhat.com" --wait
2022-06-29 11:40:10 INFO:	Stonith device fence-virt-272 created.
2022-06-29 11:40:10 INFO:	PCS_STONITH_CREATE
2022-06-29 11:40:10 INFO:	running: pcs stonith create fence-virt-273 fence_xvm pcmk_host_check="static-list" pcmk_host_list="virt-273" pcmk_host_map="virt-273:virt-273.cluster-qe.lab.eng.brq.redhat.com" --wait
2022-06-29 11:40:13 INFO:	Stonith device fence-virt-273 created.
2022-06-29 11:40:13 INFO:	
2022-06-29 11:40:13 INFO:	== SUBTEST: ExportAllResources ==
2022-06-29 11:40:14 INFO:	PCS_NODE_MAINTENANCE
2022-06-29 11:40:14 INFO:	running: pcs node maintenance --all --wait
2022-06-29 11:40:19 INFO:	Creating following resources:
2022-06-29 11:40:19 INFO:	['ocf:heartbeat:CTDB', 'ocf:heartbeat:Delay', 'ocf:heartbeat:Dummy', 'ocf:heartbeat:Filesystem', 'ocf:heartbeat:IPaddr2', 'ocf:heartbeat:IPsrcaddr', 'ocf:heartbeat:LVM-activate', 'ocf:heartbeat:MailTo', 'ocf:heartbeat:NodeUtilization', 'ocf:heartbeat:Route', 'ocf:heartbeat:SendArp', 'ocf:heartbeat:Squid', 'ocf:heartbeat:VirtualDomain', 'ocf:heartbeat:Xinetd', 'ocf:heartbeat:apache', 'ocf:heartbeat:conntrackd', 'ocf:heartbeat:corosync-qnetd', 'ocf:heartbeat:crypt', 'ocf:heartbeat:db2', 'ocf:heartbeat:dhcpd', 'ocf:heartbeat:ethmonitor', 'ocf:heartbeat:exportfs', 'ocf:heartbeat:galera', 'ocf:heartbeat:garbd', 'ocf:heartbeat:iSCSILogicalUnit', 'ocf:heartbeat:iSCSITarget', 'ocf:heartbeat:iface-vlan', 'ocf:heartbeat:lvmlockd', 'ocf:heartbeat:mysql', 'ocf:heartbeat:nagios', 'ocf:heartbeat:named', 'ocf:heartbeat:nfsnotify', 'ocf:heartbeat:nfsserver', 'ocf:heartbeat:nginx', 'ocf:heartbeat:openstack-cinder-volume', 'ocf:heartbeat:openstack-floating-ip', 'ocf:heartbeat:openstack-info', 'ocf:heartbeat:openstack-virtual-ip', 'ocf:heartbeat:oraasm', 'ocf:heartbeat:oracle', 'ocf:heartbeat:oralsnr', 'ocf:heartbeat:pgsql', 'ocf:heartbeat:podman', 'ocf:heartbeat:portblock', 'ocf:heartbeat:postfix', 'ocf:heartbeat:rabbitmq-cluster', 'ocf:heartbeat:redis', 'ocf:heartbeat:rsyncd', 'ocf:heartbeat:slapd', 'ocf:heartbeat:storage-mon', 'ocf:heartbeat:sybaseASE', 'ocf:heartbeat:symlink', 'ocf:heartbeat:tomcat', 'ocf:heartbeat:vdo-vol', 'ocf:openstack:NovaEvacuate', 'ocf:openstack:nova-compute-wait', 'ocf:pacemaker:ClusterMon', 'ocf:pacemaker:Dummy', 'ocf:pacemaker:HealthCPU', 'ocf:pacemaker:HealthIOWait', 'ocf:pacemaker:HealthSMART', 'ocf:pacemaker:Stateful', 'ocf:pacemaker:SysInfo', 'ocf:pacemaker:SystemHealth', 'ocf:pacemaker:attribute', 'ocf:pacemaker:controld', 'ocf:pacemaker:ifspeed', 'ocf:pacemaker:ping', 'ocf:pacemaker:remote']
2022-06-29 11:41:20 INFO:	Getting current resources config
2022-06-29 11:41:20 INFO:	PCS_RESOURCE_CONFIG
2022-06-29 11:41:21 INFO:	Exporting resources as commands
2022-06-29 11:41:21 INFO:	PCS_RESOURCE_CONFIG
2022-06-29 11:41:22 INFO:	Deleting the resources
2022-06-29 11:42:45 INFO:	--Creating resources from exported config output--
2022-06-29 11:42:45 INFO:	pcs resource create --no-default-ops --force -- r0 ocf:heartbeat:CTDB \
 op \
 monitor interval=10s id=r0-monitor-interval-10s timeout=20s \
 start interval=0s id=r0-start-interval-0s timeout=90s \
 stop interval=0s id=r0-stop-interval-0s timeout=100s;
pcs resource create --no-default-ops --force -- r1 ocf:heartbeat:Delay \
 op \
 monitor interval=10s id=r1-monitor-interval-10s timeout=30s \
 start interval=0s id=r1-start-interval-0s timeout=30s \
 stop interval=0s id=r1-stop-interval-0s timeout=30s;
pcs resource create --no-default-ops --force -- r2 ocf:heartbeat:Dummy \
 op \
 migrate_from interval=0s id=r2-migrate_from-interval-0s timeout=20s \
 migrate_to interval=0s id=r2-migrate_to-interval-0s timeout=20s \
 monitor interval=10s id=r2-monitor-interval-10s timeout=20s \
 reload interval=0s id=r2-reload-interval-0s timeout=20s \
 start interval=0s id=r2-start-interval-0s timeout=20s \
 stop interval=0s id=r2-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r3 ocf:heartbeat:Filesystem \
 op \
 monitor interval=20s id=r3-monitor-interval-20s timeout=40s \
 start interval=0s id=r3-start-interval-0s timeout=60s \
 stop interval=0s id=r3-stop-interval-0s timeout=60s;
pcs resource create --no-default-ops --force -- r4 ocf:heartbeat:IPaddr2 \
 op \
 monitor interval=10s id=r4-monitor-interval-10s timeout=20s \
 start interval=0s id=r4-start-interval-0s timeout=20s \
 stop interval=0s id=r4-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r5 ocf:heartbeat:IPsrcaddr \
 op \
 monitor interval=10s id=r5-monitor-interval-10s timeout=20s \
 start interval=0s id=r5-start-interval-0s timeout=20s \
 stop interval=0s id=r5-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r6 ocf:heartbeat:LVM-activate \
 op \
 monitor interval=30s id=r6-monitor-interval-30s timeout=90s \
 start interval=0s id=r6-start-interval-0s timeout=90s \
 stop interval=0s id=r6-stop-interval-0s timeout=90s;
pcs resource create --no-default-ops --force -- r7 ocf:heartbeat:MailTo \
 op \
 monitor interval=10s id=r7-monitor-interval-10s timeout=10s \
 start interval=0s id=r7-start-interval-0s timeout=10s \
 stop interval=0s id=r7-stop-interval-0s timeout=10s;
pcs resource create --no-default-ops --force -- r8 ocf:heartbeat:NodeUtilization \
 op \
 monitor interval=60s id=r8-monitor-interval-60s timeout=20s \
 start interval=0s id=r8-start-interval-0s timeout=90s \
 stop interval=0s id=r8-stop-interval-0s timeout=100s;
pcs resource create --no-default-ops --force -- r9 ocf:heartbeat:Route \
 op \
 monitor interval=10s id=r9-monitor-interval-10s timeout=20s \
 reload interval=0s id=r9-reload-interval-0s timeout=20s \
 start interval=0s id=r9-start-interval-0s timeout=20s \
 stop interval=0s id=r9-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r10 ocf:heartbeat:SendArp \
 op \
 monitor interval=10s id=r10-monitor-interval-10s timeout=20s \
 start interval=0s id=r10-start-interval-0s timeout=20s \
 stop interval=0s id=r10-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r11 ocf:heartbeat:Squid \
 op \
 monitor interval=10s id=r11-monitor-interval-10s timeout=30s \
 start interval=0s id=r11-start-interval-0s timeout=60s \
 stop interval=0s id=r11-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r12 ocf:heartbeat:VirtualDomain \
 op \
 migrate_from interval=0s id=r12-migrate_from-interval-0s timeout=60s \
 migrate_to interval=0s id=r12-migrate_to-interval-0s timeout=120s \
 monitor interval=10s id=r12-monitor-interval-10s timeout=30s \
 start interval=0s id=r12-start-interval-0s timeout=90s \
 stop interval=0s id=r12-stop-interval-0s timeout=90s;
pcs resource create --no-default-ops --force -- r13 ocf:heartbeat:Xinetd \
 op \
 monitor interval=10s id=r13-monitor-interval-10s timeout=10s \
 restart interval=0s id=r13-restart-interval-0s timeout=20s \
 start interval=0s id=r13-start-interval-0s timeout=20s \
 stop interval=0s id=r13-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r14 ocf:heartbeat:apache \
 op \
 monitor interval=10s id=r14-monitor-interval-10s timeout=20s \
 start interval=0s id=r14-start-interval-0s timeout=40s \
 stop interval=0s id=r14-stop-interval-0s timeout=60s;
pcs resource create --no-default-ops --force -- r15 ocf:heartbeat:conntrackd \
 op \
 demote interval=0s id=r15-demote-interval-0s timeout=30s \
 monitor interval=20s id=r15-monitor-interval-20s timeout=20s role=Unpromoted \
 monitor interval=10s id=r15-monitor-interval-10s timeout=20s role=Promoted \
 notify interval=0s id=r15-notify-interval-0s timeout=30s \
 promote interval=0s id=r15-promote-interval-0s timeout=30s \
 start interval=0s id=r15-start-interval-0s timeout=30s \
 stop interval=0s id=r15-stop-interval-0s timeout=30s;
pcs resource create --no-default-ops --force -- r16 ocf:heartbeat:corosync-qnetd \
 op \
 monitor interval=10s id=r16-monitor-interval-10s start-delay=10s timeout=20s \
 start interval=0s id=r16-start-interval-0s timeout=20s \
 stop interval=0s id=r16-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r17 ocf:heartbeat:crypt \
 op \
 monitor interval=10s id=r17-monitor-interval-10s timeout=20s \
 start interval=0s id=r17-start-interval-0s timeout=20s \
 stop interval=0s id=r17-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r18 ocf:heartbeat:db2 \
 op \
 demote interval=0s id=r18-demote-interval-0s timeout=120s \
 monitor interval=20s id=r18-monitor-interval-20s timeout=60s \
 monitor interval=22s id=r18-monitor-interval-22s timeout=60s role=Promoted \
 notify interval=0s id=r18-notify-interval-0s timeout=10s \
 promote interval=0s id=r18-promote-interval-0s timeout=120s \
 start interval=0s id=r18-start-interval-0s timeout=120s \
 stop interval=0s id=r18-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r19 ocf:heartbeat:dhcpd \
 op \
 monitor interval=10s id=r19-monitor-interval-10s timeout=20s \
 restart interval=0s id=r19-restart-interval-0s timeout=20s \
 start interval=0s id=r19-start-interval-0s timeout=20s \
 stop interval=0s id=r19-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r20 ocf:heartbeat:ethmonitor \
 op \
 monitor interval=10s id=r20-monitor-interval-10s timeout=60s \
 start interval=0s id=r20-start-interval-0s timeout=60s \
 stop interval=0s id=r20-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r21 ocf:heartbeat:exportfs \
 op \
 monitor interval=10s id=r21-monitor-interval-10s timeout=20s \
 start interval=0s id=r21-start-interval-0s timeout=40s \
 stop interval=0s id=r21-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r22 ocf:heartbeat:galera \
 op \
 demote interval=0s id=r22-demote-interval-0s timeout=120s \
 monitor interval=20s id=r22-monitor-interval-20s timeout=30s \
 monitor interval=10s id=r22-monitor-interval-10s timeout=30s role=Promoted \
 monitor interval=30s id=r22-monitor-interval-30s timeout=30s role=Unpromoted \
 promote interval=0s id=r22-promote-interval-0s timeout=300s \
 start interval=0s id=r22-start-interval-0s timeout=120s \
 stop interval=0s id=r22-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r23 ocf:heartbeat:garbd \
 op \
 monitor interval=20s id=r23-monitor-interval-20s timeout=20s \
 start interval=0s id=r23-start-interval-0s timeout=20s \
 stop interval=0s id=r23-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r24 ocf:heartbeat:iSCSILogicalUnit \
 op \
 monitor interval=10s id=r24-monitor-interval-10s timeout=10s \
 start interval=0s id=r24-start-interval-0s timeout=10s \
 stop interval=0s id=r24-stop-interval-0s timeout=10s;
pcs resource create --no-default-ops --force -- r25 ocf:heartbeat:iSCSITarget \
 op \
 monitor interval=10s id=r25-monitor-interval-10s timeout=10s \
 start interval=0s id=r25-start-interval-0s timeout=10s \
 stop interval=0s id=r25-stop-interval-0s timeout=10s;
pcs resource create --no-default-ops --force -- r26 ocf:heartbeat:iface-vlan \
 op \
 monitor interval=10s id=r26-monitor-interval-10s timeout=20s \
 start interval=0s id=r26-start-interval-0s timeout=30s \
 stop interval=0s id=r26-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r27 ocf:heartbeat:lvmlockd \
 op \
 monitor interval=30s id=r27-monitor-interval-30s timeout=90s \
 start interval=0s id=r27-start-interval-0s timeout=90s \
 stop interval=0s id=r27-stop-interval-0s timeout=90s;
pcs resource create --no-default-ops --force -- r28 ocf:heartbeat:mysql \
 op \
 demote interval=0s id=r28-demote-interval-0s timeout=120s \
 monitor interval=20s id=r28-monitor-interval-20s timeout=30s \
 monitor interval=10s id=r28-monitor-interval-10s timeout=30s role=Promoted \
 monitor interval=30s id=r28-monitor-interval-30s timeout=30s role=Unpromoted \
 notify interval=0s id=r28-notify-interval-0s timeout=90s \
 promote interval=0s id=r28-promote-interval-0s timeout=120s \
 start interval=0s id=r28-start-interval-0s timeout=120s \
 stop interval=0s id=r28-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r29 ocf:heartbeat:nagios \
 op \
 monitor interval=10s id=r29-monitor-interval-10s start-delay=10s timeout=20s \
 start interval=0s id=r29-start-interval-0s timeout=20s \
 stop interval=0s id=r29-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r30 ocf:heartbeat:named \
 op \
 methods interval=0s id=r30-methods-interval-0s timeout=5s \
 monitor interval=30s id=r30-monitor-interval-30s timeout=30s \
 reload interval=0s id=r30-reload-interval-0s timeout=60s \
 start interval=0s id=r30-start-interval-0s timeout=60s \
 stop interval=0s id=r30-stop-interval-0s timeout=60s;
pcs resource create --no-default-ops --force -- r31 ocf:heartbeat:nfsnotify \
 op \
 monitor interval=30s id=r31-monitor-interval-30s timeout=90s \
 reload interval=0s id=r31-reload-interval-0s timeout=90s \
 start interval=0s id=r31-start-interval-0s timeout=90s \
 stop interval=0s id=r31-stop-interval-0s timeout=90s;
pcs resource create --no-default-ops --force -- r32 ocf:heartbeat:nfsserver \
 op \
 monitor interval=10s id=r32-monitor-interval-10s timeout=20s \
 start interval=0s id=r32-start-interval-0s timeout=40s \
 stop interval=0s id=r32-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r33 ocf:heartbeat:nginx \
 op \
 monitor interval=10s id=r33-monitor-interval-10s timeout=30s \
 monitor interval=30s id=r33-monitor-interval-30s timeout=30s OCF_CHECK_LEVEL=10 \
 monitor interval=60s id=r33-monitor-interval-60s timeout=45s OCF_CHECK_LEVEL=20 \
 monitor interval=61 id=r33-monitor-interval-61 timeout=60s OCF_CHECK_LEVEL=30 \
 reload interval=0s id=r33-reload-interval-0s timeout=40s \
 start interval=0s id=r33-start-interval-0s timeout=40s \
 stop interval=0s id=r33-stop-interval-0s timeout=60s;
pcs resource create --no-default-ops --force -- r34 ocf:heartbeat:openstack-cinder-volume \
 op \
 monitor interval=60s id=r34-monitor-interval-60s timeout=180s \
 start interval=0s id=r34-start-interval-0s timeout=180s \
 stop interval=0s id=r34-stop-interval-0s timeout=180s;
pcs resource create --no-default-ops --force -- r35 ocf:heartbeat:openstack-floating-ip \
 op \
 monitor interval=60s id=r35-monitor-interval-60s timeout=180s \
 start interval=0s id=r35-start-interval-0s timeout=180s \
 stop interval=0s id=r35-stop-interval-0s timeout=180s;
pcs resource create --no-default-ops --force -- r36 ocf:heartbeat:openstack-info \
 op \
 monitor interval=60s id=r36-monitor-interval-60s timeout=180s \
 start interval=0s id=r36-start-interval-0s timeout=180s \
 stop interval=0s id=r36-stop-interval-0s timeout=180s;
pcs resource create --no-default-ops --force -- r37 ocf:heartbeat:openstack-virtual-ip \
 op \
 monitor interval=60s id=r37-monitor-interval-60s timeout=180s \
 start interval=0s id=r37-start-interval-0s timeout=180s \
 stop interval=0s id=r37-stop-interval-0s timeout=180s;
pcs resource create --no-default-ops --force -- r38 ocf:heartbeat:oraasm \
 op \
 monitor interval=10s id=r38-monitor-interval-10s timeout=30s \
 start interval=0s id=r38-start-interval-0s timeout=60s \
 stop interval=0s id=r38-stop-interval-0s timeout=60s;
pcs resource create --no-default-ops --force -- r39 ocf:heartbeat:oracle \
 op \
 methods interval=0s id=r39-methods-interval-0s timeout=5s \
 monitor interval=120s id=r39-monitor-interval-120s timeout=30s \
 start interval=0s id=r39-start-interval-0s timeout=120s \
 stop interval=0s id=r39-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r40 ocf:heartbeat:oralsnr \
 op \
 methods interval=0s id=r40-methods-interval-0s timeout=5s \
 monitor interval=10s id=r40-monitor-interval-10s timeout=30s \
 start interval=0s id=r40-start-interval-0s timeout=120s \
 stop interval=0s id=r40-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r41 ocf:heartbeat:pgsql \
 op \
 demote interval=0s id=r41-demote-interval-0s timeout=120s \
 methods interval=0s id=r41-methods-interval-0s timeout=5s \
 monitor interval=30s id=r41-monitor-interval-30s timeout=30s \
 monitor interval=29s id=r41-monitor-interval-29s timeout=30s role=Promoted \
 notify interval=0s id=r41-notify-interval-0s timeout=90s \
 promote interval=0s id=r41-promote-interval-0s timeout=120s \
 start interval=0s id=r41-start-interval-0s timeout=120s \
 stop interval=0s id=r41-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r42 ocf:heartbeat:podman \
 op \
 monitor interval=30s id=r42-monitor-interval-30s timeout=30s \
 start interval=0s id=r42-start-interval-0s timeout=90s \
 stop interval=0s id=r42-stop-interval-0s timeout=90s;
pcs resource create --no-default-ops --force -- r43 ocf:heartbeat:portblock \
 op \
 monitor interval=10s id=r43-monitor-interval-10s timeout=10s \
 start interval=0s id=r43-start-interval-0s timeout=20s \
 stop interval=0s id=r43-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r44 ocf:heartbeat:postfix \
 op \
 monitor interval=60s id=r44-monitor-interval-60s timeout=20s \
 reload interval=0s id=r44-reload-interval-0s timeout=20s \
 start interval=0s id=r44-start-interval-0s timeout=20s \
 stop interval=0s id=r44-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r45 ocf:heartbeat:rabbitmq-cluster \
 op \
 monitor interval=10s id=r45-monitor-interval-10s timeout=40s \
 start interval=0s id=r45-start-interval-0s timeout=100s \
 stop interval=0s id=r45-stop-interval-0s timeout=90s;
pcs resource create --no-default-ops --force -- r46 ocf:heartbeat:redis \
 op \
 demote interval=0s id=r46-demote-interval-0s timeout=120s \
 monitor interval=45s id=r46-monitor-interval-45s timeout=60s \
 monitor interval=20s id=r46-monitor-interval-20s timeout=60s role=Promoted \
 monitor interval=60s id=r46-monitor-interval-60s timeout=60s role=Unpromoted \
 notify interval=0s id=r46-notify-interval-0s timeout=90s \
 promote interval=0s id=r46-promote-interval-0s timeout=120s \
 start interval=0s id=r46-start-interval-0s timeout=120s \
 stop interval=0s id=r46-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r47 ocf:heartbeat:rsyncd \
 op \
 monitor interval=60s id=r47-monitor-interval-60s timeout=20s \
 start interval=0s id=r47-start-interval-0s timeout=20s \
 stop interval=0s id=r47-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r48 ocf:heartbeat:slapd \
 op \
 monitor interval=60s id=r48-monitor-interval-60s timeout=20s \
 start interval=0s id=r48-start-interval-0s timeout=20s \
 stop interval=0s id=r48-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r49 ocf:heartbeat:storage-mon \
 op \
 monitor interval=30s id=r49-monitor-interval-30s start-delay=0s timeout=120s \
 start interval=0s id=r49-start-interval-0s timeout=10s \
 stop interval=0s id=r49-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r50 ocf:heartbeat:sybaseASE \
 op \
 monitor interval=30s id=r50-monitor-interval-30s timeout=100s \
 monitor interval=120s id=r50-monitor-interval-120s timeout=100s OCF_CHECK_LEVEL=10 \
 start interval=0s id=r50-start-interval-0s timeout=300s \
 stop interval=0s id=r50-stop-interval-0s timeout=300s;
pcs resource create --no-default-ops --force -- r51 ocf:heartbeat:symlink \
 op \
 monitor interval=60s id=r51-monitor-interval-60s timeout=15s \
 start interval=0s id=r51-start-interval-0s timeout=15s \
 stop interval=0s id=r51-stop-interval-0s timeout=15s;
pcs resource create --no-default-ops --force -- r52 ocf:heartbeat:tomcat \
 op \
 monitor interval=10s id=r52-monitor-interval-10s timeout=30s \
 start interval=0s id=r52-start-interval-0s timeout=60s \
 stop interval=0s id=r52-stop-interval-0s timeout=120s;
pcs resource create --no-default-ops --force -- r53 ocf:heartbeat:vdo-vol \
 op \
 monitor interval=10s id=r53-monitor-interval-10s start-delay=10s timeout=20s \
 start interval=0s id=r53-start-interval-0s timeout=60s \
 stop interval=0s id=r53-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r54 ocf:openstack:NovaEvacuate \
 op \
 monitor interval=10 id=r54-monitor-interval-10 timeout=600 \
 start interval=0s id=r54-start-interval-0s timeout=20 \
 stop interval=0s id=r54-stop-interval-0s timeout=20;
pcs resource create --no-default-ops --force -- r55 ocf:openstack:nova-compute-wait \
 op \
 monitor interval=10 id=r55-monitor-interval-10 timeout=20 \
 start interval=0s id=r55-start-interval-0s timeout=600 \
 stop interval=0s id=r55-stop-interval-0s timeout=300;
pcs resource create --no-default-ops --force -- r56 ocf:pacemaker:ClusterMon \
 op \
 monitor interval=10s id=r56-monitor-interval-10s timeout=20s \
 start interval=0s id=r56-start-interval-0s timeout=20s \
 stop interval=0s id=r56-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r57 ocf:pacemaker:Dummy \
 op \
 migrate_from interval=0s id=r57-migrate_from-interval-0s timeout=20s \
 migrate_to interval=0s id=r57-migrate_to-interval-0s timeout=20s \
 monitor interval=10s id=r57-monitor-interval-10s timeout=20s \
 reload interval=0s id=r57-reload-interval-0s timeout=20s \
 reload-agent interval=0s id=r57-reload-agent-interval-0s timeout=20s \
 start interval=0s id=r57-start-interval-0s timeout=20s \
 stop interval=0s id=r57-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r58 ocf:pacemaker:HealthCPU \
 op \
 monitor interval=10s id=r58-monitor-interval-10s start-delay=0s timeout=10s \
 start interval=0s id=r58-start-interval-0s timeout=10s \
 stop interval=0s id=r58-stop-interval-0s timeout=10s;
pcs resource create --no-default-ops --force -- r59 ocf:pacemaker:HealthIOWait \
 op \
 monitor interval=10s id=r59-monitor-interval-10s start-delay=0s timeout=10s \
 start interval=0s id=r59-start-interval-0s timeout=10s \
 stop interval=0s id=r59-stop-interval-0s timeout=10s;
pcs resource create --no-default-ops --force -- r60 ocf:pacemaker:HealthSMART \
 op \
 monitor interval=10s id=r60-monitor-interval-10s start-delay=0s timeout=10s \
 reload-agent interval=0s id=r60-reload-agent-interval-0s timeout=20s \
 start interval=0s id=r60-start-interval-0s timeout=10s \
 stop interval=0s id=r60-stop-interval-0s timeout=10s;
pcs resource create --no-default-ops --force -- r61 ocf:pacemaker:Stateful \
 op \
 demote interval=0s id=r61-demote-interval-0s timeout=10s \
 monitor interval=10s id=r61-monitor-interval-10s timeout=20s role=Promoted \
 monitor interval=11s id=r61-monitor-interval-11s timeout=20s role=Unpromoted \
 notify interval=0s id=r61-notify-interval-0s timeout=5s \
 promote interval=0s id=r61-promote-interval-0s timeout=10s \
 reload-agent interval=0s id=r61-reload-agent-interval-0s timeout=10s \
 start interval=0s id=r61-start-interval-0s timeout=20s \
 stop interval=0s id=r61-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r62 ocf:pacemaker:SysInfo \
 op \
 monitor interval=60s id=r62-monitor-interval-60s timeout=20s \
 start interval=0s id=r62-start-interval-0s timeout=20s \
 stop interval=0s id=r62-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r63 ocf:pacemaker:SystemHealth \
 op \
 monitor interval=60s id=r63-monitor-interval-60s timeout=20s \
 reload interval=0s id=r63-reload-interval-0s timeout=20s \
 start interval=0s id=r63-start-interval-0s timeout=20s \
 stop interval=0s id=r63-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r64 ocf:pacemaker:attribute \
 op \
 migrate_from interval=0s id=r64-migrate_from-interval-0s timeout=20s \
 migrate_to interval=0s id=r64-migrate_to-interval-0s timeout=20s \
 monitor interval=10s id=r64-monitor-interval-10s timeout=20s \
 reload interval=0s id=r64-reload-interval-0s timeout=20s \
 start interval=0s id=r64-start-interval-0s timeout=20s \
 stop interval=0s id=r64-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r65 ocf:pacemaker:controld \
 op \
 monitor interval=10s id=r65-monitor-interval-10s start-delay=0s timeout=20s \
 start interval=0s id=r65-start-interval-0s timeout=90s \
 stop interval=0s id=r65-stop-interval-0s timeout=100s;
pcs resource create --no-default-ops --force -- r66 ocf:pacemaker:ifspeed \
 op \
 monitor interval=10s id=r66-monitor-interval-10s timeout=30s \
 start interval=0s id=r66-start-interval-0s timeout=30s \
 stop interval=0s id=r66-stop-interval-0s timeout=30s;
pcs resource create --no-default-ops --force -- r67 ocf:pacemaker:ping \
 op \
 monitor interval=10s id=r67-monitor-interval-10s timeout=60s \
 reload-agent interval=0s id=r67-reload-agent-interval-0s timeout=20s \
 start interval=0s id=r67-start-interval-0s timeout=60s \
 stop interval=0s id=r67-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r68 ocf:pacemaker:remote \
 op \
 migrate_from interval=0s id=r68-migrate_from-interval-0s timeout=60s \
 migrate_to interval=0s id=r68-migrate_to-interval-0s timeout=60s \
 monitor interval=60s id=r68-monitor-interval-60s timeout=30s \
 reload interval=0s id=r68-reload-interval-0s timeout=60s \
 reload-agent interval=0s id=r68-reload-agent-interval-0s timeout=60s \
 start interval=0s id=r68-start-interval-0s timeout=60s \
 stop interval=0s id=r68-stop-interval-0s timeout=60s

2022-06-29 11:43:46 INFO:	--Resources created successfully--
2022-06-29 11:43:46 INFO:	Getting current resources config
2022-06-29 11:43:46 INFO:	PCS_RESOURCE_CONFIG
2022-06-29 11:43:47 INFO:	Comparing config outputs
2022-06-29 11:43:47 INFO:	OK: Resources created from the exported config are the same as normally created resources
2022-06-29 11:43:47 INFO:	Deleting the resources
{...}
-------------------------------------------------------------------------------



### Manual test cases
## exporting a resource with various attributes
[root@virt-272 ~]# pcs resource create d1 ocf:pacemaker:Dummy passwd=123
[root@virt-272 ~]# pcs resource config d1
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Attributes: d1-instance_attributes
    passwd=123
  Operations:
    migrate_from: d1-migrate_from-interval-0s
      interval=0s
      timeout=20s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-0s
      interval=0s
      timeout=20s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

[root@virt-272 ~]# pcs resource config d1 --output-format cmd
pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  passwd=123 \
  op \
    migrate_from interval=0s id=d1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=0s id=d1-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped
[root@virt-272 ~]# pcs resource config d1
Warning: Unable to find resource 'd1'
Error: No resource found

[root@virt-272 ~]# pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  passwd=123 \
  op \
    migrate_from interval=0s id=d1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=0s id=d1-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource config d1
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Attributes: d1-instance_attributes
    passwd=123
  Operations:
    migrate_from: d1-migrate_from-interval-0s
      interval=0s
      timeout=20s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-0s
      interval=0s
      timeout=20s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

> OK

[root@virt-272 ~]# pcs resource update d1 state=/tmp/d1state fake=1 op_sleep=1 fail_start_on=migrate_from envfile=/tmp/d1env
[root@virt-272 ~]# pcs resource config d1 | grep Attributes -A 6
  Attributes: d1-instance_attributes
    envfile=/tmp/d1env
    fail_start_on=migrate_from
    fake=1
    op_sleep=1
    passwd=123
    state=/tmp/d1state

[root@virt-272 ~]# pcs resource config d1 --output-format cmd
pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  envfile=/tmp/d1env fail_start_on=migrate_from fake=1 op_sleep=1 passwd=123 state=/tmp/d1state \
  op \
    migrate_from interval=0s id=d1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=0s id=d1-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped
[root@virt-272 ~]# pcs resource config d1
Warning: Unable to find resource 'd1'
Error: No resource found
[root@virt-272 ~]# pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  envfile=/tmp/d1env fail_start_on=migrate_from fake=1 op_sleep=1 passwd=123 state=/tmp/d1state \
  op \
    migrate_from interval=0s id=d1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=0s id=d1-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource config d1 | grep Attributes -A 6
  Attributes: d1-instance_attributes
    envfile=/tmp/d1env
    fail_start_on=migrate_from
    fake=1
    op_sleep=1
    passwd=123
    state=/tmp/d1state

> OK

[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped


## exporting a resource with various options

[root@virt-272 ~]# pcs resource create d1 ocf:pacemaker:Dummy op migrate_from interval=1s timeout=21s op reload interval=2s timeout=22s
[root@virt-272 ~]# pcs resource config
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Operations:
    migrate_from: d1-migrate_from-interval-1s
      interval=1s
      timeout=21s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-2s
      interval=2s
      timeout=22s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

[root@virt-272 ~]# pcs resource config --output-format cmd
pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=1s id=d1-migrate_from-interval-1s timeout=21s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=2s id=d1-reload-interval-2s timeout=22s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped

[root@virt-272 ~]# pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=1s id=d1-migrate_from-interval-1s timeout=21s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=2s id=d1-reload-interval-2s timeout=22s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s
[root@virt-272 ~]# echo $?
0
[root@virt-272 ~]# pcs resource config
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Operations:
    migrate_from: d1-migrate_from-interval-1s
      interval=1s
      timeout=21s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-2s
      interval=2s
      timeout=22s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

> OK


## exporting a resource with various options and attributes at the same time

[root@virt-272 ~]# pcs resource update d1 ocf:pacemaker:Dummy passwd=1234 fail_start_on=migrate_from
[root@virt-272 ~]# pcs resource config
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Attributes: d1-instance_attributes
    fail_start_on=migrate_from
    passwd=1234
  Operations:
    migrate_from: d1-migrate_from-interval-1s
      interval=1s
      timeout=21s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-2s
      interval=2s
      timeout=22s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

[root@virt-272 ~]# pcs resource config d1 --output-format cmd
pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  fail_start_on=migrate_from passwd=1234 \
  op \
    migrate_from interval=1s id=d1-migrate_from-interval-1s timeout=21s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=2s id=d1-reload-interval-2s timeout=22s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped

[root@virt-272 ~]# pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  fail_start_on=migrate_from passwd=1234 \
  op \
    migrate_from interval=1s id=d1-migrate_from-interval-1s timeout=21s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=2s id=d1-reload-interval-2s timeout=22s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s

[root@virt-272 ~]# pcs resource config d1
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Attributes: d1-instance_attributes
    fail_start_on=migrate_from
    passwd=1234
  Operations:
    migrate_from: d1-migrate_from-interval-1s
      interval=1s
      timeout=21s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-2s
      interval=2s
      timeout=22s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

> OK


## exporting resource with attributes, options and meta attribute

[root@virt-272 ~]# pcs resource update d1 meta resource-stickiness=0
[root@virt-272 ~]# pcs resource config
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Attributes: d1-instance_attributes
    fail_start_on=migrate_from
    passwd=1234
  Meta Attributes: d1-meta_attributes
    resource-stickiness=0
  Operations:
    migrate_from: d1-migrate_from-interval-1s
      interval=1s
      timeout=21s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-2s
      interval=2s
      timeout=22s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

[root@virt-272 ~]# pcs resource config --output-format cmd
pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  fail_start_on=migrate_from passwd=1234 \
  op \
    migrate_from interval=1s id=d1-migrate_from-interval-1s timeout=21s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=2s id=d1-reload-interval-2s timeout=22s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s \
  meta resource-stickiness=0

[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped
[root@virt-272 ~]# pcs resource config
[root@virt-272 ~]# echo $?
0

[root@virt-272 ~]# pcs resource create --no-default-ops --force -- d1 ocf:pacemaker:Dummy \
  fail_start_on=migrate_from passwd=1234 \
  op \
    migrate_from interval=1s id=d1-migrate_from-interval-1s timeout=21s \
    migrate_to interval=0s id=d1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=d1-monitor-interval-10s timeout=20s \
    reload interval=2s id=d1-reload-interval-2s timeout=22s \
    reload-agent interval=0s id=d1-reload-agent-interval-0s timeout=20s \
    start interval=0s id=d1-start-interval-0s timeout=20s \
    stop interval=0s id=d1-stop-interval-0s timeout=20s \
  meta resource-stickiness=0
[root@virt-272 ~]# echo $?
0

[root@virt-272 ~]# pcs resource config
Resource: d1 (class=ocf provider=pacemaker type=Dummy)
  Attributes: d1-instance_attributes
    fail_start_on=migrate_from
    passwd=1234
  Meta Attributes: d1-meta_attributes
    resource-stickiness=0
  Operations:
    migrate_from: d1-migrate_from-interval-1s
      interval=1s
      timeout=21s
    migrate_to: d1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: d1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: d1-reload-interval-2s
      interval=2s
      timeout=22s
    reload-agent: d1-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: d1-start-interval-0s
      interval=0s
      timeout=20s
    stop: d1-stop-interval-0s
      interval=0s
      timeout=20s

> OK


[root@virt-272 ~]# pcs resource delete d1
Attempting to stop: d1... Stopped


## exporting various types of resources

[root@virt-272 ~]# pcs resource create r1 ocf:heartbeat:Dummy
[root@virt-272 ~]# pcs resource create r2 ocf:pacemaker:Stateful promotable
[root@virt-272 ~]# pcs resource create r3 ocf:pacemaker:Dummy clone
[root@virt-272 ~]# pcs resource create r4 ocf:pacemaker:Dummy --group g1
[root@virt-272 ~]# pcs resource config
Resource: r1 (class=ocf provider=heartbeat type=Dummy)
  Operations:
    migrate_from: r1-migrate_from-interval-0s
      interval=0s
      timeout=20s
    migrate_to: r1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: r1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: r1-reload-interval-0s
      interval=0s
      timeout=20s
    start: r1-start-interval-0s
      interval=0s
      timeout=20s
    stop: r1-stop-interval-0s
      interval=0s
      timeout=20s
Group: g1
  Resource: r4 (class=ocf provider=pacemaker type=Dummy)
    Operations:
      migrate_from: r4-migrate_from-interval-0s
        interval=0s
        timeout=20s
      migrate_to: r4-migrate_to-interval-0s
        interval=0s
        timeout=20s
      monitor: r4-monitor-interval-10s
        interval=10s
        timeout=20s
      reload: r4-reload-interval-0s
        interval=0s
        timeout=20s
      reload-agent: r4-reload-agent-interval-0s
        interval=0s
        timeout=20s
      start: r4-start-interval-0s
        interval=0s
        timeout=20s
      stop: r4-stop-interval-0s
        interval=0s
        timeout=20s
Clone: r2-clone
  Meta Attributes: r2-clone-meta_attributes
    promotable=true
  Resource: r2 (class=ocf provider=pacemaker type=Stateful)
    Operations:
      demote: r2-demote-interval-0s
        interval=0s
        timeout=10s
      monitor: r2-monitor-interval-10s
        interval=10s
        timeout=20s
        role=Promoted
      monitor: r2-monitor-interval-11s
        interval=11s
        timeout=20s
        role=Unpromoted
      notify: r2-notify-interval-0s
        interval=0s
        timeout=5s
      promote: r2-promote-interval-0s
        interval=0s
        timeout=10s
      reload-agent: r2-reload-agent-interval-0s
        interval=0s
        timeout=10s
      start: r2-start-interval-0s
        interval=0s
        timeout=20s
      stop: r2-stop-interval-0s
        interval=0s
        timeout=20s
Clone: r3-clone
  Resource: r3 (class=ocf provider=pacemaker type=Dummy)
    Operations:
      migrate_from: r3-migrate_from-interval-0s
        interval=0s
        timeout=20s
      migrate_to: r3-migrate_to-interval-0s
        interval=0s
        timeout=20s
      monitor: r3-monitor-interval-10s
        interval=10s
        timeout=20s
      reload: r3-reload-interval-0s
        interval=0s
        timeout=20s
      reload-agent: r3-reload-agent-interval-0s
        interval=0s
        timeout=20s
      start: r3-start-interval-0s
        interval=0s
        timeout=20s
      stop: r3-stop-interval-0s
        interval=0s
        timeout=20s

[root@virt-272 ~]# pcs resource config --output-format cmd
pcs resource create --no-default-ops --force -- r1 ocf:heartbeat:Dummy \
  op \
    migrate_from interval=0s id=r1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=r1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=r1-monitor-interval-10s timeout=20s \
    reload interval=0s id=r1-reload-interval-0s timeout=20s \
    start interval=0s id=r1-start-interval-0s timeout=20s \
    stop interval=0s id=r1-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r2 ocf:pacemaker:Stateful \
  op \
    demote interval=0s id=r2-demote-interval-0s timeout=10s \
    monitor interval=10s id=r2-monitor-interval-10s timeout=20s role=Promoted \
    monitor interval=11s id=r2-monitor-interval-11s timeout=20s role=Unpromoted \
    notify interval=0s id=r2-notify-interval-0s timeout=5s \
    promote interval=0s id=r2-promote-interval-0s timeout=10s \
    reload-agent interval=0s id=r2-reload-agent-interval-0s timeout=10s \
    start interval=0s id=r2-start-interval-0s timeout=20s \
    stop interval=0s id=r2-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r3 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=0s id=r3-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=r3-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=r3-monitor-interval-10s timeout=20s \
    reload interval=0s id=r3-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=r3-reload-agent-interval-0s timeout=20s \
    start interval=0s id=r3-start-interval-0s timeout=20s \
    stop interval=0s id=r3-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r4 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=0s id=r4-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=r4-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=r4-monitor-interval-10s timeout=20s \
    reload interval=0s id=r4-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=r4-reload-agent-interval-0s timeout=20s \
    start interval=0s id=r4-start-interval-0s timeout=20s \
    stop interval=0s id=r4-stop-interval-0s timeout=20s;
pcs resource group add g1 \
  r4;
pcs resource clone r2 r2-clone \
  meta promotable=true;
pcs resource clone r3 r3-clone

[root@virt-272 ~]# pcs resource delete r1
Attempting to stop: r1... Stopped
[root@virt-272 ~]# pcs resource delete r2
Attempting to stop: r2... Stopped
[root@virt-272 ~]# pcs resource delete r3
Attempting to stop: r3... Stopped
[root@virt-272 ~]# pcs resource delete r4
Attempting to stop: r4... Stopped
[root@virt-272 ~]# pcs resource config
[root@virt-272 ~]# echo $?
0

[root@virt-272 ~]# pcs resource create --no-default-ops --force -- r1 ocf:heartbeat:Dummy \
  op \
    migrate_from interval=0s id=r1-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=r1-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=r1-monitor-interval-10s timeout=20s \
    reload interval=0s id=r1-reload-interval-0s timeout=20s \
    start interval=0s id=r1-start-interval-0s timeout=20s \
    stop interval=0s id=r1-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r2 ocf:pacemaker:Stateful \
  op \
    demote interval=0s id=r2-demote-interval-0s timeout=10s \
    monitor interval=10s id=r2-monitor-interval-10s timeout=20s role=Promoted \
    monitor interval=11s id=r2-monitor-interval-11s timeout=20s role=Unpromoted \
    notify interval=0s id=r2-notify-interval-0s timeout=5s \
    promote interval=0s id=r2-promote-interval-0s timeout=10s \
    reload-agent interval=0s id=r2-reload-agent-interval-0s timeout=10s \
    start interval=0s id=r2-start-interval-0s timeout=20s \
    stop interval=0s id=r2-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r3 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=0s id=r3-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=r3-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=r3-monitor-interval-10s timeout=20s \
    reload interval=0s id=r3-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=r3-reload-agent-interval-0s timeout=20s \
    start interval=0s id=r3-start-interval-0s timeout=20s \
    stop interval=0s id=r3-stop-interval-0s timeout=20s;
pcs resource create --no-default-ops --force -- r4 ocf:pacemaker:Dummy \
  op \
    migrate_from interval=0s id=r4-migrate_from-interval-0s timeout=20s \
    migrate_to interval=0s id=r4-migrate_to-interval-0s timeout=20s \
    monitor interval=10s id=r4-monitor-interval-10s timeout=20s \
    reload interval=0s id=r4-reload-interval-0s timeout=20s \
    reload-agent interval=0s id=r4-reload-agent-interval-0s timeout=20s \
    start interval=0s id=r4-start-interval-0s timeout=20s \
    stop interval=0s id=r4-stop-interval-0s timeout=20s;
pcs resource group add g1 \
  r4;
pcs resource clone r2 r2-clone \
  meta promotable=true;
pcs resource clone r3 r3-clone

[root@virt-272 ~]# pcs resource config
Resource: r1 (class=ocf provider=heartbeat type=Dummy)
  Operations:
    migrate_from: r1-migrate_from-interval-0s
      interval=0s
      timeout=20s
    migrate_to: r1-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: r1-monitor-interval-10s
      interval=10s
      timeout=20s
    reload: r1-reload-interval-0s
      interval=0s
      timeout=20s
    start: r1-start-interval-0s
      interval=0s
      timeout=20s
    stop: r1-stop-interval-0s
      interval=0s
      timeout=20s
Group: g1
  Resource: r4 (class=ocf provider=pacemaker type=Dummy)
    Operations:
      migrate_from: r4-migrate_from-interval-0s
        interval=0s
        timeout=20s
      migrate_to: r4-migrate_to-interval-0s
        interval=0s
        timeout=20s
      monitor: r4-monitor-interval-10s
        interval=10s
        timeout=20s
      reload: r4-reload-interval-0s
        interval=0s
        timeout=20s
      reload-agent: r4-reload-agent-interval-0s
        interval=0s
        timeout=20s
      start: r4-start-interval-0s
        interval=0s
        timeout=20s
      stop: r4-stop-interval-0s
        interval=0s
        timeout=20s
Clone: r2-clone
  Meta Attributes: r2-clone-meta_attributes
    promotable=true
  Resource: r2 (class=ocf provider=pacemaker type=Stateful)
    Operations:
      demote: r2-demote-interval-0s
        interval=0s
        timeout=10s
      monitor: r2-monitor-interval-10s
        interval=10s
        timeout=20s
        role=Promoted
      monitor: r2-monitor-interval-11s
        interval=11s
        timeout=20s
        role=Unpromoted
      notify: r2-notify-interval-0s
        interval=0s
        timeout=5s
      promote: r2-promote-interval-0s
        interval=0s
        timeout=10s
      reload-agent: r2-reload-agent-interval-0s
        interval=0s
        timeout=10s
      start: r2-start-interval-0s
        interval=0s
        timeout=20s
      stop: r2-stop-interval-0s
        interval=0s
        timeout=20s
Clone: r3-clone
  Resource: r3 (class=ocf provider=pacemaker type=Dummy)
    Operations:
      migrate_from: r3-migrate_from-interval-0s
        interval=0s
        timeout=20s
      migrate_to: r3-migrate_to-interval-0s
        interval=0s
        timeout=20s
      monitor: r3-monitor-interval-10s
        interval=10s
        timeout=20s
      reload: r3-reload-interval-0s
        interval=0s
        timeout=20s
      reload-agent: r3-reload-agent-interval-0s
        interval=0s
        timeout=20s
      start: r3-start-interval-0s
        interval=0s
        timeout=20s
      stop: r3-stop-interval-0s
        interval=0s
        timeout=20s

> OK



Marking as VERIFIED for pcs-0.11.2-1.el9

Comment 12 errata-xmlrpc 2022-11-15 09:49:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: pcs security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:7935