| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 1 | {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CFG01 with context %} | 
| abaraniuk | c4130bc | 2018-11-15 14:51:10 +0200 | [diff] [blame] | 2 | {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CTL01 with context %} | 
 | 3 | {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import DOMAIN_NAME with context %} | 
 | 4 | {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import LAB_CONFIG_NAME with context %} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 5 | {% from 'shared-salt.yaml' import IPV4_NET_EXTERNAL_PREFIX with context %} | 
 | 6 | {% from 'shared-salt.yaml' import IPV4_NET_TENANT_PREFIX with context %} | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 7 | {% set PATTERN = os_env('PATTERN', 'false') %} | 
 | 8 | {% set RUN_TEMPEST = os_env('RUN_TEMPEST', 'false') %} | 
| Dennis Dmitriev | 4034db0 | 2018-08-26 21:50:13 +0300 | [diff] [blame] | 9 |  | 
 | 10 | {% import 'shared-openstack.yaml' as SHARED_OPENSTACK with context %} | 
 | 11 |  | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 12 | # Install OpenStack control services | 
 | 13 |  | 
| abaraniuk | c4130bc | 2018-11-15 14:51:10 +0200 | [diff] [blame] | 14 | {{ SHARED_OPENSTACK.MACRO_INSTALL_KEYSTONE(USE_ORCHESTRATE=false) }} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 15 |  | 
| Dennis Dmitriev | 4034db0 | 2018-08-26 21:50:13 +0300 | [diff] [blame] | 16 | {{ SHARED_OPENSTACK.MACRO_INSTALL_GLANCE() }} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 17 |  | 
| Dennis Dmitriev | 4034db0 | 2018-08-26 21:50:13 +0300 | [diff] [blame] | 18 | {{ SHARED_OPENSTACK.MACRO_INSTALL_NOVA() }} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 19 |  | 
| sgudz | e12b509 | 2018-09-15 00:40:10 +0300 | [diff] [blame] | 20 | {{ SHARED_OPENSTACK.MACRO_INSTALL_CINDER(INSTALL_VOLUME=false) }} | 
 | 21 |  | 
 | 22 | - description: WR Install cinder volume | 
 | 23 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 24 |     -C 'I@cinder:volume' state.sls cinder | 
 | 25 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 26 |   retry: {count: 2, delay: 5} | 
 | 27 |   skip_fail: false | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 28 |  | 
| Dennis Dmitriev | 4034db0 | 2018-08-26 21:50:13 +0300 | [diff] [blame] | 29 | {{ SHARED_OPENSTACK.MACRO_INSTALL_NEUTRON(INSTALL_GATEWAY=false) }} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 30 |  | 
 | 31 | # install contrail | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 32 | - description: Install Opencontrail db on ctl01 | 
 | 33 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 34 |     -C 'I@opencontrail:database and *01*' state.sls opencontrail.database | 
 | 35 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 36 |   retry: {count: 2, delay: 20} | 
 | 37 |   skip_fail: false | 
 | 38 |  | 
 | 39 | - description: Install Opencontrail db on all nodes | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 40 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 41 |     -C 'I@opencontrail:database' state.sls opencontrail.database | 
 | 42 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 43 |   retry: {count: 2, delay: 20} | 
 | 44 |   skip_fail: false | 
 | 45 |  | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 46 | - description: Install Opencontrail control on ctl01 | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 47 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 48 |     -C 'I@opencontrail:control and *01*' state.sls opencontrail exclude=opencontrail.client | 
 | 49 |   node_name: {{ HOSTNAME_CFG01 }} | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 50 |   retry: {count: 1, delay: 5} | 
 | 51 |   skip_fail: false | 
 | 52 |  | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 53 | - description: Install Opencontrail control on all nodes | 
 | 54 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 55 |     -C 'I@opencontrail:control' state.sls opencontrail exclude=opencontrail.client | 
 | 56 |   node_name: {{ HOSTNAME_CFG01 }} | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 57 |   retry: {count: 1, delay: 5} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 58 |   skip_fail: false | 
 | 59 |  | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 60 | - description: Install Opencontrail on collector | 
 | 61 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 62 |     -C 'I@opencontrail:collector' state.sls opencontrail exclude=opencontrail.client | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 63 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 64 |   retry: {count: 1, delay: 5} | 
 | 65 |   skip_fail: false | 
 | 66 |  | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 67 | - description: Workaround for https://mirantis.jira.com/browse/PROD-12798 | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 68 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 69 |     -C 'I@opencontrail:control' service.restart 'keepalived' | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 70 |   node_name: {{ HOSTNAME_CFG01 }} | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 71 |   retry: {count: 1, delay: 5} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 72 |   skip_fail: false | 
 | 73 |  | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 74 | # OpenContrail vrouters | 
 | 75 | - description: Install Opencontrail client | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 76 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 77 |     -C 'I@opencontrail:database:id:1' state.sls 'opencontrail.client' | 
 | 78 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 79 |   retry: {count: 1, delay: 5} | 
 | 80 |   skip_fail: false | 
 | 81 |  | 
 | 82 | - description: Install Opencontrail client on computes | 
 | 83 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 84 |     -C 'I@opencontrail:compute' state.sls 'opencontrail.client' | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 85 |   node_name: {{ HOSTNAME_CFG01 }} | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 86 |   retry: {count: 2, delay: 5} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 87 |   skip_fail: false | 
 | 88 |  | 
| sgudz | 868f086 | 2018-03-16 21:47:18 +0200 | [diff] [blame] | 89 | - description: Install Opencontrail on computes | 
 | 90 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 91 |     -C 'I@opencontrail:compute' state.sls 'opencontrail' | 
 | 92 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 93 |   retry: {count: 2, delay: 5} | 
 | 94 |   skip_fail: false | 
 | 95 |  | 
 | 96 | - description: Test Opencontrail | 
 | 97 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False | 
 | 98 |     -C 'I@opencontrail:control' cmd.run 'contrail-status' | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 99 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 100 |   retry: {count: 1, delay: 5} | 
 | 101 |   skip_fail: false | 
 | 102 |  | 
| Dennis Dmitriev | 4034db0 | 2018-08-26 21:50:13 +0300 | [diff] [blame] | 103 | {{ SHARED_OPENSTACK.MACRO_INSTALL_HEAT() }} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 104 |  | 
| abaraniuk | c4130bc | 2018-11-15 14:51:10 +0200 | [diff] [blame] | 105 | {{ SHARED_OPENSTACK.MACRO_INSTALL_HORIZON() }} | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 106 |  | 
 | 107 | # Install compute node | 
 | 108 |  | 
 | 109 | - description: Apply formulas for compute node | 
 | 110 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' state.apply | 
 | 111 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 112 |   retry: {count: 1, delay: 5} | 
 | 113 |   skip_fail: true | 
 | 114 |  | 
 | 115 | - description: Re-apply(as in doc) formulas for compute node | 
 | 116 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' state.apply | 
 | 117 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 118 |   retry: {count: 1, delay: 5} | 
| Oleksii Butenko | 9f2601c | 2018-02-08 15:13:21 +0200 | [diff] [blame] | 119 |   skip_fail: false | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 120 |  | 
 | 121 | - description: Check IP on computes | 
 | 122 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' cmd.run | 
 | 123 |     'ip a' | 
 | 124 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 125 |   retry: {count: 10, delay: 30} | 
 | 126 |   skip_fail: false | 
 | 127 |  | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 128 | - description: Hack resolv.conf on VCP nodes for internal services access | 
 | 129 |   cmd: | | 
 | 130 |     salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "echo 'nameserver 172.18.208.44' > /etc/resolv.conf;" | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 131 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 132 |   retry: {count: 1, delay: 5} | 
 | 133 |   skip_fail: false | 
| sgudz | 8c888ec | 2017-10-02 15:29:23 +0300 | [diff] [blame] | 134 |  | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 135 | - description: Hack vrouter (Delete default moun point) | 
 | 136 |   cmd: salt "cmp*" cmd.run "sed -i 's/exit 0//g' /etc/rc.local; echo 'umount /dev/hugepages; service supervisor-vrouter restart' >> /etc/rc.local; echo 'exit 0' >> /etc/rc.local" | 
 | 137 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 138 |   retry: {count: 1, delay: 30} | 
 | 139 |   skip_fail: true | 
 | 140 |  | 
 | 141 | - description: Temporary WR for correct pci in vrouter.conf | 
 | 142 |   cmd: salt  "cmp*" cmd.run "sed -i 's/physical\_interface\_address\=.*/physical\_interface\_address=0000\:05\:00\.0/g' /etc/contrail/contrail-vrouter-agent.conf" | 
 | 143 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 144 |   retry: {count: 1, delay: 30} | 
 | 145 |   skip_fail: true | 
 | 146 |  | 
 | 147 | - description: Remove crashes files from /var/crashes/ while vrouter was crashed | 
 | 148 |   cmd: salt  "cmp*" cmd.run "rm -rf /var/crashes/*" | 
 | 149 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 150 |   retry: {count: 1, delay: 30} | 
 | 151 |   skip_fail: true | 
 | 152 |  | 
 | 153 | - description: Reboot computes | 
| sgudz | 2b3dcfa | 2018-07-18 21:51:38 +0300 | [diff] [blame] | 154 |   cmd: | | 
 | 155 |     salt "cmp*" system.reboot; | 
 | 156 |     sleep 600; | 
| sgudz | cced67d | 2017-10-11 15:56:09 +0300 | [diff] [blame] | 157 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 158 |   retry: {count: 1, delay: 30} | 
 | 159 |   skip_fail: true | 
| abaraniuk | c4130bc | 2018-11-15 14:51:10 +0200 | [diff] [blame] | 160 |  | 
 | 161 | - description: sync time | 
 | 162 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False '*' cmd.run | 
 | 163 |     'service ntp stop; ntpd -gq;  service ntp start' | 
 | 164 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 165 |   retry: {count: 1, delay: 30} | 
 | 166 |   skip_fail: false | 
 | 167 |  | 
 | 168 | - description: Hack resolv.conf on VCP nodes for internal services access | 
 | 169 |   cmd: | | 
 | 170 |     salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "echo 'nameserver 172.18.208.44' > /etc/resolv.conf;" | 
 | 171 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 172 |   retry: {count: 1, delay: 5} | 
 | 173 |   skip_fail: false | 
 | 174 |  | 
 | 175 | - description: Create heat-net before external net create | 
 | 176 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run | 
 | 177 |     '. /root/keystonercv3; neutron net-create heat-net' | 
 | 178 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 179 |   retry: {count: 1, delay: 30} | 
 | 180 |   skip_fail: false | 
 | 181 |  | 
 | 182 | - description: Create public network for contrail | 
 | 183 |   cmd: | | 
 | 184 |     salt 'ntw01*' contrail.virtual_network_create public '{"external":true,"ip_prefix":"192.168.200.0","ip_prefix_len":24,"asn":64512,"target":10000}' | 
 | 185 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 186 |   retry: {count: 1, delay: 5} | 
 | 187 |   skip_fail: true | 
 | 188 |  | 
 | 189 | - description: Steps from neutron client for contrail | 
 | 190 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run | 
 | 191 |     '. /root/keystonercv3; neutron subnet-create heat-net 10.20.30.0/24 --allocation-pool start=10.20.30.10,end=10.20.30.254 --gateway 10.20.30.1 --name heat-subnet' | 
 | 192 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 193 |   retry: {count: 1, delay: 30} | 
 | 194 |   skip_fail: false | 
 | 195 |  | 
 | 196 | - description: Steps from neutron client for contrail | 
 | 197 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run | 
 | 198 |     '. /root/keystonercv3; neutron router-create heat-router' | 
 | 199 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 200 |   retry: {count: 1, delay: 30} | 
 | 201 |   skip_fail: false | 
 | 202 |  | 
 | 203 | - description: Steps from neutron client for contrail | 
 | 204 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run | 
 | 205 |     '. /root/keystonercv3; neutron router-gateway-set heat-router public' | 
 | 206 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 207 |   retry: {count: 1, delay: 30} | 
 | 208 |   skip_fail: false | 
 | 209 |  | 
 | 210 | - description: Steps from neutron client for contrail | 
 | 211 |   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run | 
 | 212 |     '. /root/keystonercv3; neutron router-interface-add heat-router heat-subnet' | 
 | 213 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 214 |   retry: {count: 1, delay: 30} | 
 | 215 |   skip_fail: false | 
 | 216 |  | 
 | 217 | - description: Fix default security group for access to external net from outside | 
 | 218 |   cmd: | | 
 | 219 |     salt 'ctl01*' cmd.run '. /root/keystonercv3; openstack security group rule list --column ID -f value | xargs openstack security group rule delete'; | 
 | 220 |     salt 'ctl01*' cmd.run '. /root/keystonercv3; openstack security group rule create default --egress --protocol tcp'; | 
 | 221 |     salt 'ctl01*' cmd.run '. /root/keystonercv3; openstack security group rule create default --ingress --protocol tcp'; | 
 | 222 |     salt 'ctl01*' cmd.run '. /root/keystonercv3; openstack security group rule create default --egress --protocol icmp'; | 
 | 223 |     salt 'ctl01*' cmd.run '. /root/keystonercv3; openstack security group rule create default --ingress --protocol icmp'; | 
 | 224 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 225 |   retry: {count: 1, delay: 30} | 
 | 226 |   skip_fail: true | 
 | 227 |  | 
 | 228 | # Starting prepare runtest | 
 | 229 |  | 
 | 230 | - description: Upload tempest template | 
 | 231 |   upload: | 
 | 232 |     local_path: {{ config.salt_deploy.templates_dir }}{{ LAB_CONFIG_NAME }}/ | 
 | 233 |     local_filename: runtest.yml | 
 | 234 |     remote_path: /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/ | 
 | 235 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 236 |   skip_fail: False | 
 | 237 |  | 
 | 238 | - description: Include class with tempest template into cfg node | 
 | 239 |   cmd: | | 
 | 240 |     sed -i 's/classes\:/classes\:\n- cluster.{{ LAB_CONFIG_NAME }}.infra.runtest/g' /srv/salt/reclass/nodes/_generated/cfg01.{{ DOMAIN_NAME }}.yml; | 
 | 241 |     salt '*' saltutil.refresh_pillar; | 
 | 242 |     salt '*' saltutil.sync_all; | 
 | 243 |     salt 'ctl01*' pkg.install docker.io; | 
 | 244 |     salt 'ctl01*' cmd.run 'iptables --policy FORWARD ACCEPT'; | 
 | 245 |     salt 'cfg01*' state.sls salt.minion && sleep 20; | 
 | 246 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 247 |   retry: {count: 1, delay: 10} | 
 | 248 |   skip_fail: false | 
 | 249 |  | 
 | 250 | - description: Enforce keystone client | 
 | 251 |   cmd: | | 
 | 252 |     salt 'cfg01*' state.sls keystone.client; | 
 | 253 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 254 |   retry: {count: 1, delay: 5} | 
 | 255 |   skip_fail: false | 
 | 256 |  | 
 | 257 | - description: Create flavors for tests | 
 | 258 |   cmd: | | 
 | 259 |     salt 'cfg01*' state.sls nova.client; | 
 | 260 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 261 |   retry: {count: 1, delay: 5} | 
 | 262 |   skip_fail: false | 
 | 263 |  | 
 | 264 | - description: Upload cirros image | 
 | 265 |   cmd: | | 
 | 266 |     salt 'cfg01*' state.sls glance.client; | 
 | 267 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 268 |   retry: {count: 1, delay: 5} | 
 | 269 |   skip_fail: false | 
 | 270 |  | 
 | 271 | - description: Generate tempest config | 
 | 272 |   cmd: | | 
 | 273 |     salt 'cfg01*' state.sls runtest; | 
 | 274 |   node_name: {{ HOSTNAME_CFG01 }} | 
 | 275 |   retry: {count: 1, delay: 5} | 
 | 276 |   skip_fail: false | 
 | 277 |  | 
 | 278 | - description: Download cirros image for runtest | 
 | 279 |   cmd: | | 
 | 280 |     wget http://cz8133.bud.mirantis.net:8099/cirros-0.3.5-x86_64-disk.img -O /tmp/TestCirros-0.3.5.img | 
 | 281 |   node_name: {{ HOSTNAME_CTL01 }} | 
 | 282 |   retry: {count: 1, delay: 5} | 
 | 283 |   skip_fail: false | 
 | 284 |  | 
 | 285 | - description: Test future contrail manipulation | 
 | 286 |   cmd: | | 
 | 287 |     apt install crudini jq -y; | 
 | 288 |     crudini --set /tmp/test/tempest.conf auth tempest_roles admin; | 
 | 289 |     crudini --set /tmp/test/tempest.conf patrole custom_policy_files /etc/opencontrail/policy.json; | 
 | 290 |     crudini --set /tmp/test/tempest.conf sdn service_name opencontrail; | 
 | 291 |     cat /tmp/test/tempest.conf; | 
 | 292 |   node_name: {{ HOSTNAME_CTL01 }} | 
 | 293 |   retry: {count: 1, delay: 30} | 
 | 294 |   skip_fail: true | 
 | 295 |  | 
 | 296 | - description: Run tempest from new docker image | 
 | 297 |   cmd: | | 
 | 298 |     OPENSTACK_VERSION=`salt-call --out=newline_values_only pillar.get _param:openstack_version`; | 
 | 299 |     docker run --name "run-tempest-yml" -d -e ARGS="-r test -w 2" -v /tmp/test/tempest.conf:/etc/tempest/tempest.conf -v /tmp/:/tmp/ -v /tmp/test:/root/tempest -v /etc/ssl/certs/:/etc/ssl/certs/ docker-prod-virtual.docker.mirantis.net/mirantis/cicd/ci-tempest:$OPENSTACK_VERSION /bin/bash -c "run-tempest"; | 
 | 300 |   node_name: {{ HOSTNAME_CTL01 }} | 
 | 301 |   retry: {count: 1, delay: 30} | 
 | 302 |   skip_fail: false | 
 | 303 |  | 
 | 304 | - description: Test Wait container script | 
 | 305 |   cmd: | | 
 | 306 |     report_file=`find /tmp/test -maxdepth 1 -name 'report_*xml' -print -quit`; | 
 | 307 |     if [ `docker inspect run-tempest-yml | jq -M '.[]."State"."Status"' | tr -d '"'` == "exited" ] && [ -f "$report_file" ]; | 
 | 308 |     then echo "All done!"; docker logs run-tempest-yml; | 
 | 309 |     elif [ `docker inspect run-tempest-yml | jq -M '.[]."State"."Status"' | tr -d '"'` == "exited" ] && [ ! -f "$report_file" ]; | 
 | 310 |     then echo "Exit without report!"; docker logs run-tempest-yml; | 
 | 311 |     else echo "Tempest not finished... ";sleep 900; false; | 
 | 312 |     fi | 
 | 313 |   node_name: {{ HOSTNAME_CTL01 }} | 
 | 314 |   retry: {count: 25, delay: 30} | 
 | 315 |   skip_fail: false | 
 | 316 |  | 
 | 317 | - description: Download xml results | 
 | 318 |   download: | 
 | 319 |     remote_path: /tmp/test/ | 
 | 320 |     remote_filename: "report_*.xml" | 
 | 321 |     local_path: {{ os_env('PWD') }} | 
 | 322 |   node_name: {{ HOSTNAME_CTL01 }} | 
 | 323 |   skip_fail: true |