2 Documentation Test suite to verify packet flows between vm instances.
5 Library OperatingSystem
6 Library RequestsLibrary
7 Resource ../libraries/OpenStackInstallUtils.robot
8 Resource ../libraries/SystemUtils.robot
9 Resource ../libraries/Utils.robot
11 Suite Setup OpenStackInstallUtils.Get All Ssh Connections
12 Suite Teardown Close All Connections
17 IF 2 > ${NUM_CONTROL_NODES} Install RabbitMQ ${OS_CONTROL_1_IP}
18 IF 2 > ${NUM_CONTROL_NODES} Start RabbitMQ ${OS_CONTROL_1_IP}
19 IF 2 > ${NUM_CONTROL_NODES}
20 Add Openstack MQ ${OS_CONTROL_1_IP} openstack rabbit
22 IF 2 < ${NUM_CONTROL_NODES} Install RabbitMQ ${OS_CONTROL_1_IP}
23 IF 2 < ${NUM_CONTROL_NODES}
24 Start Stop And Copy Cookie File ${OS_CONTROL_1_IP} rabbit rabbit
26 IF 2 < ${NUM_CONTROL_NODES} Install RabbitMQ ${OS_CONTROL_2_IP}
27 IF 2 < ${NUM_CONTROL_NODES} Install RabbitMQ ${OS_CONTROL_3_IP}
28 IF 3 < ${NUM_CONTROL_NODES} Install RabbitMQ ${OS_CONTROL_4_IP}
29 IF 4 < ${NUM_CONTROL_NODES} Install RabbitMQ ${OS_CONTROL_5_IP}
30 IF 2 < ${NUM_CONTROL_NODES}
31 Setup RabbitMQ Cluster ${OS_CONTROL_2_IP} rabbit ${OS_CONTROL_1_HOSTNAME}
33 IF 2 < ${NUM_CONTROL_NODES}
34 Setup RabbitMQ Cluster ${OS_CONTROL_3_IP} rabbit ${OS_CONTROL_1_HOSTNAME}
36 IF 3 < ${NUM_CONTROL_NODES}
37 Setup RabbitMQ Cluster ${OS_CONTROL_4_IP} rabbit ${OS_CONTROL_1_HOSTNAME}
39 IF 4 < ${NUM_CONTROL_NODES}
40 Setup RabbitMQ Cluster ${OS_CONTROL_5_IP} rabbit ${OS_CONTROL_1_HOSTNAME}
42 IF 2 < ${NUM_CONTROL_NODES}
43 Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 5672 rabbitmq
49 [Arguments] ${os_node_cxn}
50 IF '${OS_APPS_PRE_INSTALLED}' == 'no'
51 Install Rpm Package ${os_node_cxn} rabbitmq-server
53 Enable Service ${os_node_cxn} rabbitmq-server
56 [Arguments] ${os_node_cxn}
57 Enable Service ${os_node_cxn} rabbitmq-server
58 Start Service ${os_node_cxn} rabbitmq-server
60 Start Stop And Copy Cookie File
61 [Arguments] ${os_node_cxn} ${rabbit_user} ${rabbit_pass}
62 Enable Service ${os_node_cxn} rabbitmq-server
63 Start Service ${os_node_cxn} rabbitmq-server
64 Add Openstack MQ ${os_node_cxn} openstack rabbit
65 Get RabbitMQ Cookie File ${os_node_cxn}
68 [Arguments] ${os_node_cxn} ${rabbit_user} ${rabbit_pass}
69 Add Rabbitmq User ${os_node_cxn} ${rabbit_user} ${rabbit_pass}
70 Enable Access to Rabbitmq vhost ${os_node_cxn} ${rabbit_user}
72 Setup RabbitMQ Cluster
73 [Arguments] ${os_node_cxn} ${rabbit_user} ${src_hostname}
74 Copy RabbitMQ Cookie File ${os_node_cxn} ${rabbit_user} ${src_hostname}
77 [Documentation] Add a user to Rabbit MQ
78 [Arguments] ${os_node_cxn} ${rabbit_user} ${rabbit_pass}
79 Switch Connection ${os_node_cxn}
80 ${output} ${rc}= Execute Command
81 ... sudo rabbitmqctl add_user ${rabbit_user} ${rabbit_pass}
83 ... return_stdout=True
87 #Should Not Be True ${rc}
89 Change Rabbitmq Password
90 [Documentation] Add a user to Rabbit MQ
91 [Arguments] ${os_node_cxn} ${rabbit_user} ${rabbit_pass}
92 Switch Connection ${os_node_cxn}
93 ${output} ${rc}= Execute Command
94 ... sudo rabbitmqctl change_password ${rabbit_user} ${rabbit_pass}
96 ... return_stdout=True
98 Should Not Be True ${rc}
101 Enable Access to Rabbitmq vhost
102 [Documentation] Add a user to Rabbit MQ
103 [Arguments] ${os_node_cxn} ${rabbit_user}
104 Switch Connection ${os_node_cxn}
105 ${output} ${rc}= Execute Command
106 ... rabbitmqctl set_permissions ${rabbit_user} ".*" ".*" ".*"
108 ... return_stdout=True
110 Should Not Be True ${rc}
114 [Documentation] Stop the RabbitMQ user
115 [Arguments] ${os_node_cxn}
116 Switch Connection ${os_node_cxn}
117 ${output} ${rc}= Execute Command rabbitmqctl stop_app return_rc=True return_stdout=True
119 Should Not Be True ${rc}
122 Get RabbitMQ Cookie File
123 [Documentation] Get the Cookie file from the primary node
124 [Arguments] ${os_node_cxn}
125 Switch Connection ${os_node_cxn}
126 ${output} ${rc}= Execute Command rabbitmqctl stop_app return_rc=True return_stdout=True
128 Should Not Be True ${rc}
129 SSHLibrary.Get File /var/lib/rabbitmq/.erlang.cookie /tmp/
130 ${output} ${rc}= Execute Command rabbitmqctl start_app return_rc=True return_stdout=True
132 Should Not Be True ${rc}
133 ${output} ${rc}= Execute Command rabbitmqctl cluster_status return_rc=True return_stdout=True
135 Should Not Be True ${rc}
137 Copy RabbitMQ Cookie File
138 [Documentation] Copy the rabbit cookie file to other servers to join the cluster
139 [Arguments] ${os_node_cxn} ${rabbit_user} ${src_hostname}
140 Switch Connection ${os_node_cxn}
141 SSHLibrary.Put File /tmp/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
142 ${output} ${rc}= Execute Command
143 ... chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
145 ... return_stdout=True
147 Should Not Be True ${rc}
148 ${output} ${rc}= Execute Command
149 ... chmod 400 /var/lib/rabbitmq/.erlang.cookie
151 ... return_stdout=True
153 Should Not Be True ${rc}
154 Enable Service ${os_node_cxn} rabbitmq-server
155 Start Service ${os_node_cxn} rabbitmq-server
156 ${output} ${rc}= Execute Command rabbitmqctl stop_app return_rc=True return_stdout=True
158 Should Not Be True ${rc}
159 ${output} ${rc}= Execute Command
160 ... rabbitmqctl join_cluster --ram ${rabbit_user}@${src_hostname}
162 ... return_stdout=True
164 Should Not Be True ${rc}
165 ${output} ${rc}= Execute Command rabbitmqctl start_app return_rc=True return_stdout=True
167 Should Not Be True ${rc}
168 ${output} ${rc}= Execute Command rabbitmqctl cluster_status return_rc=True return_stdout=True
170 Should Not Be True ${rc}
171 Run Command ${os_node_cxn} sudo rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'