[fix] Put mysql import in try,catch in case it hasn't been installed

This commit is contained in:
William Wernert
2020-11-10 10:00:21 -05:00
parent dba30fb0ed
commit 22b7de819c

View File

@@ -3,36 +3,41 @@
import logging import logging
def status(): def status():
return __salt__['cmd.run']('/usr/sbin/so-status') return __salt__['cmd.run']('/usr/sbin/so-status')
def mysql_conn(retry): def mysql_conn(retry):
from MySQLdb import _mysql log = logging.getLogger(__name__)
import time
log = logging.getLogger(__name__) try:
mainint = __salt__['pillar.get']('sensor:mainint', __salt__['pillar.get']('manager:mainint')) from MySQLdb import _mysql
mainip = __salt__['grains.get']('ip_interfaces').get(mainint)[0] except ImportError as e:
log.error(e)
return False
from time import sleep
mysql_up = False mainint = __salt__['pillar.get']('sensor:mainint', __salt__['pillar.get']('manager:mainint'))
for i in range(0, retry): mainip = __salt__['grains.get']('ip_interfaces').get(mainint)[0]
log.debug(f'Connection attempt {i+1}')
try:
_mysql.connect(
host=mainip,
user="root",
passwd=__salt__['pillar.get']('secrets:mysql')
)
mysql_up = True
break
except _mysql.OperationalError as e:
log.debug(e)
except Exception as e:
log.error(e)
break
time.sleep(1)
if not mysql_up: mysql_up = False
log.error(f'Could not connect to MySQL server on {mainip} after {retry} attempts.') for i in range(0, retry):
log.debug(f'Connection attempt {i+1}')
try:
_mysql.connect(
host=mainip,
user="root",
passwd=__salt__['pillar.get']('secrets:mysql')
)
mysql_up = True
break
except _mysql.OperationalError as e:
log.debug(e)
except Exception as e:
log.error(e)
break
sleep(1)
return mysql_up if not mysql_up:
log.error(f'Could not connect to MySQL server on {mainip} after {retry} attempts.')
return mysql_up