Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:Update
salt.22691
enable-passing-a-unix_socket-for-mysql-returner...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File enable-passing-a-unix_socket-for-mysql-returners-bsc.patch of Package salt.22691
From fec7f65b4debede8cf0eef335182fce2206e200d Mon Sep 17 00:00:00 2001 From: Maximilian Meister <mmeister@suse.de> Date: Thu, 3 May 2018 15:52:23 +0200 Subject: [PATCH] enable passing a unix_socket for mysql returners (bsc#1091371) quick fix for: https://bugzilla.suse.com/show_bug.cgi?id=1091371 the upstream patch will go through some bigger refactoring of the mysql drivers to be cleaner this patch should only be temporary and can be dropped again once the refactor is done upstream Signed-off-by: Maximilian Meister <mmeister@suse.de> --- salt/returners/mysql.py | 63 ++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/salt/returners/mysql.py b/salt/returners/mysql.py index b7bb05164f..4aa8aeddfa 100644 --- a/salt/returners/mysql.py +++ b/salt/returners/mysql.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- """ Return data to a mysql server @@ -18,6 +17,7 @@ config. These are the defaults: mysql.pass: 'salt' mysql.db: 'salt' mysql.port: 3306 + mysql.unix_socket: '/tmp/mysql.sock' SSL is optional. The defaults are set to None. If you do not want to use SSL, either exclude these options or set them to None. @@ -43,6 +43,7 @@ optional. The following ssl options are simply for illustration purposes: alternative.mysql.ssl_ca: '/etc/pki/mysql/certs/localhost.pem' alternative.mysql.ssl_cert: '/etc/pki/mysql/certs/localhost.crt' alternative.mysql.ssl_key: '/etc/pki/mysql/certs/localhost.key' + alternative.mysql.unix_socket: '/tmp/mysql.sock' Should you wish the returner data to be cleaned out every so often, set `keep_jobs` to the number of hours for the jobs to live in the tables. @@ -138,22 +139,15 @@ To override individual configuration items, append --return_kwargs '{"key:": "va salt '*' test.ping --return mysql --return_kwargs '{"db": "another-salt"}' """ -from __future__ import absolute_import, print_function, unicode_literals import logging import sys - -# Import python libs from contextlib import contextmanager import salt.exceptions - -# Import salt libs import salt.returners import salt.utils.jid import salt.utils.json - -# Import 3rd-party libs from salt.ext import six # Let's not allow PyLint complain about string substitution @@ -205,6 +199,7 @@ def _get_options(ret=None): "ssl_ca": None, "ssl_cert": None, "ssl_key": None, + "unix_socket": "/tmp/mysql.sock", } attrs = { @@ -216,6 +211,7 @@ def _get_options(ret=None): "ssl_ca": "ssl_ca", "ssl_cert": "ssl_cert", "ssl_key": "ssl_key", + "unix_socket": "unix_socket", } _options = salt.returners.get_returner_options( @@ -227,8 +223,8 @@ def _get_options(ret=None): defaults=defaults, ) # post processing - for k, v in six.iteritems(_options): - if isinstance(v, six.string_types) and v.lower() == "none": + for k, v in _options.items(): + if isinstance(v, str) and v.lower() == "none": # Ensure 'None' is rendered as None _options[k] = None if k == "port": @@ -274,6 +270,7 @@ def _get_serv(ret=None, commit=False): db=_options.get("db"), port=_options.get("port"), ssl=ssl_options, + unix_socket=_options.get("unix_socket"), ) try: @@ -291,9 +288,9 @@ def _get_serv(ret=None, commit=False): yield cursor except MySQLdb.DatabaseError as err: error = err.args - sys.stderr.write(six.text_type(error)) + sys.stderr.write(str(error)) cursor.execute("ROLLBACK") - six.reraise(*sys.exc_info()) + raise else: if commit: cursor.execute("COMMIT") @@ -515,8 +512,8 @@ def _purge_jobs(timestamp): log.error( "mysql returner archiver was unable to delete contents of table 'jids'" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) try: sql = "delete from `salt_returns` where alter_time < %s" @@ -526,8 +523,8 @@ def _purge_jobs(timestamp): log.error( "mysql returner archiver was unable to delete contents of table 'salt_returns'" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) try: sql = "delete from `salt_events` where alter_time < %s" @@ -537,8 +534,8 @@ def _purge_jobs(timestamp): log.error( "mysql returner archiver was unable to delete contents of table 'salt_events'" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) return True @@ -556,7 +553,7 @@ def _archive_jobs(timestamp): for table_name in source_tables: try: tmp_table_name = table_name + "_archive" - sql = "create table if not exists {0} like {1}".format( + sql = "create table if not exists {} like {}".format( tmp_table_name, table_name ) cur.execute(sql) @@ -566,11 +563,11 @@ def _archive_jobs(timestamp): log.error( "mysql returner archiver was unable to create the archive tables." ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) try: - sql = "insert into `{0}` select * from `{1}` where jid in (select distinct jid from salt_returns where alter_time < %s)".format( + sql = "insert into `{}` select * from `{}` where jid in (select distinct jid from salt_returns where alter_time < %s)".format( target_tables["jids"], "jids" ) cur.execute(sql, (timestamp,)) @@ -579,14 +576,14 @@ def _archive_jobs(timestamp): log.error( "mysql returner archiver was unable to copy contents of table 'jids'" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) except Exception as e: # pylint: disable=broad-except log.error(e) raise try: - sql = "insert into `{0}` select * from `{1}` where alter_time < %s".format( + sql = "insert into `{}` select * from `{}` where alter_time < %s".format( target_tables["salt_returns"], "salt_returns" ) cur.execute(sql, (timestamp,)) @@ -595,11 +592,11 @@ def _archive_jobs(timestamp): log.error( "mysql returner archiver was unable to copy contents of table 'salt_returns'" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) try: - sql = "insert into `{0}` select * from `{1}` where alter_time < %s".format( + sql = "insert into `{}` select * from `{}` where alter_time < %s".format( target_tables["salt_events"], "salt_events" ) cur.execute(sql, (timestamp,)) @@ -608,8 +605,8 @@ def _archive_jobs(timestamp): log.error( "mysql returner archiver was unable to copy contents of table 'salt_events'" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) return _purge_jobs(timestamp) @@ -623,7 +620,7 @@ def clean_old_jobs(): if __opts__.get("keep_jobs", False) and int(__opts__.get("keep_jobs", 0)) > 0: try: with _get_serv() as cur: - sql = "select date_sub(now(), interval {0} hour) as stamp;".format( + sql = "select date_sub(now(), interval {} hour) as stamp;".format( __opts__["keep_jobs"] ) cur.execute(sql) @@ -638,5 +635,5 @@ def clean_old_jobs(): log.error( "Mysql returner was unable to get timestamp for purge/archive of jobs" ) - log.error(six.text_type(e)) - raise salt.exceptions.SaltRunnerError(six.text_type(e)) + log.error(str(e)) + raise salt.exceptions.SaltRunnerError(str(e)) -- 2.29.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor