blob: 130b2b66fe014ee752e0ca0717fe6437db6f946e [file] [log] [blame]
Dennis Dmitriev6f59add2016-10-18 13:45:27 +03001# Copyright 2016 Mirantis, Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14import copy
Dennis Dmitrieva982b2d2016-10-21 16:52:50 +030015import time
Dennis Dmitriev6f59add2016-10-18 13:45:27 +030016
17import pytest
18
Dennis Dmitriev6f59add2016-10-18 13:45:27 +030019from tcp_tests import settings
20from tcp_tests.helpers import ext
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030021from tcp_tests import logger
22
23LOG = logger.logger
Dennis Dmitriev6f59add2016-10-18 13:45:27 +030024
25
26@pytest.mark.deploy
27class TestTCPInstaller(object):
28 """Test class for testing TCP deployment"""
29
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030030 salt_cmd = 'salt -l debug ' # For debug output
31 salt_call_cmd = 'salt-call -l debug ' # For debug output
32 #salt_cmd = 'salt --state-verbose=False ' # For reduced output
33 #salt_call_cmd = 'salt-call --state-verbose=False ' # For reduced output
34
35
36 @pytest.mark.steps({
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030037 1: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030038 'cmd': salt_cmd + "'cfg01*' state.sls linux",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030039 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030040 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030041 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030042 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030043 2: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030044 'cmd': (salt_cmd + "'cfg01*' state.sls openssh;"
45 "sed -i 's/PasswordAuthentication no/"
46 "PasswordAuthentication yes/' "
47 "/etc/ssh/sshd_config && service ssh restart"),
48 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030049 'retry': {'count': 3, 'delay': 5},
50 'skip_fail': False,
51 },
52 3: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030053 'cmd': "echo ' StrictHostKeyChecking no' >> /root/.ssh/config",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030054 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030055 'retry': {'count': 1, 'delay': 1},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030056 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030057 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030058 4: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030059 'cmd': salt_cmd + "'cfg01*' state.sls salt",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030060 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030061 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030062 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030063 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030064 5: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030065 'cmd': salt_cmd + "'cfg01*' state.sls reclass.storage",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030066 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030067 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030068 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030069 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030070 6: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030071 'cmd': salt_cmd + "'*' saltutil.refresh_pillar",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030072 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030073 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030074 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030075 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030076 7: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030077 'cmd': salt_cmd + "'ctl*' state.sls ntp",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030078 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030079 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030080 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030081 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030082 8: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030083 'cmd': (salt_cmd + "'ctl*' state.sls linux,salt.minion,openssh;"
84 + salt_cmd + "'ctl*' cmd.run "
85 "\"sed -i 's/PasswordAuthentication no/"
86 "PasswordAuthentication yes/' /etc/ssh/sshd_config && "
87 "service ssh restart\""),
88 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030089 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030090 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030091 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030092 9: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030093 'cmd': salt_cmd + "'ctl01*' state.sls keepalived",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +030094 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030095 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030096 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030097 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +030098 10: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +030099 'cmd': salt_cmd + "'ctl01*' cmd.run 'ip a'",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300100 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300101 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300102 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300103 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300104 11: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300105 'cmd': salt_cmd + "'ctl0[23].*' state.sls keepalived",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300106 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300107 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300108 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300109 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300110 12: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300111 'cmd': salt_cmd + "'ctl*' state.sls glusterfs.server.service",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300112 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300113 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300114 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300115 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300116 13: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300117 'cmd': salt_call_cmd + "state.sls glusterfs.server.setup",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300118 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300119 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300120 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300121 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300122 14: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300123 'cmd': "gluster peer status",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300124 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300125 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300126 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300127 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300128 15: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300129 'cmd': "gluster volume status",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300130 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300131 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300132 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300133 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300134 16: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300135 'cmd': salt_cmd + "'ctl*' state.sls rabbitmq",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300136 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300137 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300138 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300139 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300140 17: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300141 'cmd': "apt-get -y --force-yes install salt-formula-galera",
142 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300143 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300144 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300145 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300146 18: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300147 'cmd': salt_call_cmd + "state.sls galera",
148 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300149 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300150 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300151 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300152 19: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300153 'cmd': salt_cmd + "'ctl0[23]*' state.sls galera",
154 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300155 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300156 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300157 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300158 20: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300159 'cmd': salt_cmd + "'ctl01*' mysql.status | grep -A1 'wsrep_incoming_addresses:'",
160 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300161 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300162 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300163 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300164 21: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300165 'cmd': salt_cmd + "'ctl*' state.sls haproxy",
166 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300167 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300168 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300169 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300170 22: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300171 'cmd': salt_cmd + "'ctl*' cmd.run 'netstat -tulnp | grep 3306'",
172 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300173 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300174 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300175 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300176 23: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300177 'cmd': salt_call_cmd + "state.sls memcached,keystone",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300178 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300179 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300180 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300181 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300182 24: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300183 'cmd': salt_call_cmd + "state.sls memcached,keystone",
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300184 'node_name': 'ctl02.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300185 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300186 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300187 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300188 25: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300189 'cmd': salt_call_cmd + "state.sls memcached,keystone",
190 'node_name': 'ctl03.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300191 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300192 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300193 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300194 26: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300195 'cmd': "source ~/keystonerc; keystone user-list",
196 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300197 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300198 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300199 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300200 27: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300201 'cmd': "source ~/keystonerc; keystone tenant-list",
202 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300203 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300204 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300205 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300206 28: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300207 'cmd': "source ~/keystonerc; keystone endpoint-list",
208 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300209 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300210 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300211 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300212 29: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300213 'cmd': salt_cmd + "'ctl*' state.sls glance",
214 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300215 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300216 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300217 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300218 30: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300219 'cmd': salt_cmd + "'ctl*' state.sls glusterfs.client",
220 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300221 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300222 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300223 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300224 31: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300225 'cmd': salt_cmd + "'ctl*' cmd.run 'df -h'",
226 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300227 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300228 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300229 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300230 32: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300231 'cmd': salt_call_cmd + "state.sls keystone",
232 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
233 'retry': {'count': 3, 'delay': 5},
234 'skip_fail': False,
235 },
236 33: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300237 'cmd': ("source ~/keystonerc;"
238 "wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img;"
239 "glance image-create --name 'cirros-0.3.4'"
240 " --disk-format qcow2 --container-format bare"
241 " --progress --file /root/cirros-0.3.4-i386-disk.img;"
242 "glance image-list;"),
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300243 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300244 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300245 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300246 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300247 34: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300248 'cmd': salt_cmd + "'ctl*' cmd.run 'ls -al /var/lib/keystone/fernet-keys' ",
249 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300250 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300251 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300252 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300253 35: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300254 'cmd': salt_cmd + "'ctl*' cinder",
255 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300256 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300257 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300258 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300259 36: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300260 'cmd': salt_cmd + "'ctl*' nova",
261 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300262 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300263 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300264 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300265 37: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300266 'cmd': "source ~/keystonerc; cinder list",
267 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300268 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300269 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300270 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300271 38: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300272 'cmd': "source ~/keystonerc; nova-manage service list",
273 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300274 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300275 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300276 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300277 39: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300278 'cmd': "source ~/keystonerc; nova list",
279 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300280 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300281 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300282 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300283 40: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300284 'cmd': salt_cmd + "'ctl*' state.sls neutron",
285 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300286 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300287 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300288 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300289 41: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300290 'cmd': ("source ~/keystonerc;"
291 "neutron net-create --router:external=true --shared external;"
292 "neutron subnet-create external 10.177.0.0/24;"
293 "neutron floatingip-create;"),
294 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300295 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300296 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300297 },
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300298 42: {
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300299 'cmd': salt_cmd + "'ctl*' state.sls opencontrail.database",
300 'node_name': 'cfg01.mk22-lab-advanced.local', # hardcoded for now
301 'retry': {'count': 3, 'delay': 5},
302 'skip_fail': False,
303 },
304 43: {
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300305 'cmd': ("nodetool status;"
306 "nodetool compactionstats;"
307 "nodetool describecluster;"),
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300308 'node_name': 'ctl01.mk22-lab-advanced.local', # hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300309 'retry': {'count': 3, 'delay': 5},
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300310 'skip_fail': False,
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300311 },
312
313 })
Dennis Dmitriev6f59add2016-10-18 13:45:27 +0300314 @pytest.mark.revert_snapshot(ext.SNAPSHOT.underlay)
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300315 # @pytest.mark.snapshot_needed
316 # @pytest.mark.fail_snapshot
317 def test_tcp_install_default(self, underlay, tcp_actions, steps, show_step):
Dennis Dmitriev6f59add2016-10-18 13:45:27 +0300318 """Test for deploying an tcp environment and check it
319
Dennis Dmitriev6f59add2016-10-18 13:45:27 +0300320 Scenario:
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300321 1. Run 'linux' formula on cfg01
322 2. Run 'openssh' formula on cfg01
323 3. *Workaround* of the bug https://mirantis.jira.com/browse/PROD-7962
324 4. Run 'salt' formula on cfg01
325 5. Generate inventory for all the nodes to the /srv/salt/reclass/nodes/_generated
326 6. Refresh pillars on all minions
327 7. Configure ntp on controllers
328 8. Configure linux, openssh and salt.minion on controllers
329 9. Install keepalived on primary controller
330 10. Show VIP on primary controller
331 11. Install keepalived on other controllers
332 12. Install glusterfs on all controllers
333 13. Setup glusterfs on primary controller
334 14. Show glusterfs peer status
335 15. Show glusterfs volume status
336 16. Install RabbitMQ on all controllers
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300337 17. *Workaround* Update salt-formula-galera on config node to the latest version
338 18. Install Galera on primary controller
339 19. Install Galera on other controllers
340 20. Check Galera addresses
341 21. Install haproxy on all controllers
342 22. Check haproxy on all controllers with Galera port
343 23. Install memcached and keystone on ctl01
344 24. Install memcached and keystone on ctl02
345 25. Install memcached and keystone on ctl03
346 26. Check keystone user-list
347 27. Check keystone tenant-list
348 28. Check keystone endpoint-list
349 29. Install glance on controllers
350 30. Install glusterfs on controllers
351 31. Check that glusterfs was added on controllers
352 32. *Workaround* Re-run keystone formula on ctl01 to create fernet keys
353 33. Check glance on ctl01
354 34. Check keystone fernet keys on controllers
355 35. Install cinder on controllers
356 36. Install nova on controllers
357 37. Check cinder status
358 38. Check nova services status
359 39. Check nova status
360 40. Install neutron on controllers
361 41. Create a neutron subnet
362 42. Install contrail database on controllers
363 43. Check cassandra status on ctl01
Dennis Dmitriev6f59add2016-10-18 13:45:27 +0300364
Dennis Dmitriev75fce1b2016-10-18 15:04:28 +0300365 """
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300366 for step in sorted(steps):
367 LOG.info(" #######################################################################")
368 show_step(int(step))
369 with underlay.remote(node_name=steps[step]['node_name']) as remote:
370 for x in range(steps[step]['retry']['count']):
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300371
372 time.sleep(5)
373
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300374 result = remote.execute(steps[step]['cmd'], verbose=True)
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300375
376 # Workaround of exit code 0 from salt in case of failures
377 failed = 0
378 for s in result['stdout']:
379 if s.startswith("Failed:"):
380 failed += int(s.split("Failed:")[1])
381
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300382 if result.exit_code != 0:
Dennis Dmitrieva982b2d2016-10-21 16:52:50 +0300383 time.sleep(steps[step]['retry']['delay'])
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300384 LOG.info(" ========================= retry...")
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300385 elif failed != 0:
386 LOG.error(" ================= SALT returned exit code = 0 while there are failed modules!")
387 LOG.info(" ========================= retry...")
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300388 else:
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300389 # Workarounds for crashed services
Dennis Dmitriev0ebe9f32016-10-25 11:01:44 +0300390 tcp_actions.check_salt_service("salt-master", "cfg01.mk22-lab-advanced.local", "salt-call pillar.items") # Hardcoded for now
391 tcp_actions.check_salt_service("salt-minion", "cfg01.mk22-lab-advanced.local", "salt 'cfg01*' pillar.items") # Hardcoded for now
Dennis Dmitriev474e3f72016-10-21 16:46:09 +0300392 break
Dennis Dmitriev423a7ff2016-10-21 18:31:36 +0300393
394 if x == 1 and steps[step]['skip_fail'] == False:
395 # In the last retry iteration, raise an exception
396 raise Exception("Step {0} failed".format(step))