migrate to Python3 (from alejeune)

This commit is contained in:
htouvet
2022-04-25 10:02:43 +02:00
parent 1655977e64
commit bc4b9811ed
65 changed files with 574 additions and 3884 deletions
+26 -21
View File
@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------
# This file is part of TISBackup
@@ -17,14 +17,17 @@
# along with TISBackup. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------
import os
import datetime
import subprocess
from iniparse import ConfigParser
from optparse import OptionParser
import os,sys
from os.path import isfile, join
tisbackup_root_dir = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0,os.path.join(tisbackup_root_dir,'lib'))
from iniparse import ini,ConfigParser
from optparse import OptionParser
import re
import sys
import getopt
import os.path
import logging
@@ -33,20 +36,20 @@ from libtisbackup.common import *
from libtisbackup.backup_mysql import backup_mysql
from libtisbackup.backup_rsync import backup_rsync
from libtisbackup.backup_rsync import backup_rsync_ssh
from libtisbackup.backup_oracle import backup_oracle
#from libtisbackup.backup_oracle import backup_oracle
from libtisbackup.backup_rsync_btrfs import backup_rsync_btrfs
from libtisbackup.backup_rsync_btrfs import backup_rsync__btrfs_ssh
from libtisbackup.backup_pgsql import backup_pgsql
from libtisbackup.backup_xva import backup_xva
from libtisbackup.backup_vmdk import backup_vmdk
from libtisbackup.backup_switch import backup_switch
#from libtisbackup.backup_vmdk import backup_vmdk
#from libtisbackup.backup_switch import backup_switch
from libtisbackup.backup_null import backup_null
from libtisbackup.backup_xcp_metadata import backup_xcp_metadata
from libtisbackup.copy_vm_xcp import copy_vm_xcp
from libtisbackup.backup_sqlserver import backup_sqlserver
#from libtisbackup.backup_sqlserver import backup_sqlserver
from libtisbackup.backup_samba4 import backup_samba4
__version__="1.1"
__version__="2.0"
usage="""\
%prog -c configfile action
@@ -88,6 +91,7 @@ class tis_backup:
self.verbose=False
def read_ini_file(self,filename):
ini.change_comment_syntax()
cp = ConfigParser()
cp.read(filename)
@@ -179,15 +183,15 @@ class tis_backup:
nagiosoutput = 'ALL backups OK %s' % (','.join(sections))
except BaseException,e:
except BaseException as e:
worst_nagiosstatus = nagiosStateCritical
nagiosoutput = 'EXCEPTION',"Critical : %s" % str(e)
raise
finally:
self.logger.debug('worst nagios status :"%i"',worst_nagiosstatus)
print '%s (tisbackup V%s)' %(nagiosoutput,version)
print '\n'.join(["[%s]:%s" % (l[0],l[1]) for l in globallog])
print('%s (tisbackup V%s)' %(nagiosoutput,version))
print('\n'.join(["[%s]:%s" % (l[0],l[1]) for l in globallog]))
sys.exit(worst_nagiosstatus)
def process_backup(self,sections=[]):
@@ -204,7 +208,7 @@ class tis_backup:
self.logger.info('Processing [%s]',(backup_item.backup_name))
stats = backup_item.process_backup()
processed.append((backup_item.backup_name,stats))
except BaseException,e:
except BaseException as e:
self.logger.critical('Backup [%s] processed with error : %s',backup_item.backup_name,e)
errors.append((backup_item.backup_name,str(e)))
if not processed and not errors:
@@ -230,7 +234,7 @@ class tis_backup:
self.logger.info('Processing [%s]',(backup_item.backup_name))
stats = backup_item.export_latestbackup(destdir=exportdir)
processed.append((backup_item.backup_name,stats))
except BaseException,e:
except BaseException as e:
self.logger.critical('Export Backup [%s] processed with error : %s',backup_item.backup_name,e)
errors.append((backup_item.backup_name,str(e)))
if not processed and not errors:
@@ -252,7 +256,8 @@ class tis_backup:
from stats
where status="OK" and backup_start>=?""",(mindate,))
defined_backups = map(lambda f:f.backup_name, [ x for x in self.backup_list if not isinstance(x, backup_null) ])
defined_backups = list(map(lambda f:f.backup_name, [ x for x in self.backup_list if not isinstance(x, backup_null) ]))
failed_backups_names = set(defined_backups) - set([b['bname'] for b in failed_backups if b['bname'] in defined_backups])
@@ -265,7 +270,7 @@ class tis_backup:
self.logger.info('Processing [%s]',(backup_item.backup_name))
stats = backup_item.process_backup()
processed.append((backup_item.backup_name,stats))
except BaseException,e:
except BaseException as e:
self.logger.critical('Backup [%s] not processed, error : %s',backup_item.backup_name,e)
errors.append((backup_item.backup_name,str(e)))
if not processed and not errors:
@@ -293,7 +298,7 @@ class tis_backup:
self.logger.info('Processing cleanup of [%s]',(backup_item.backup_name))
backup_item.cleanup_backup()
processed = True
except BaseException,e:
except BaseException as e:
self.logger.critical('Cleanup of [%s] not processed, error : %s',backup_item.backup_name,e)
if not processed:
self.logger.critical('No cleanup properly finished or processed')
@@ -325,7 +330,7 @@ def main():
(options,args)=parser.parse_args()
if len(args) != 1:
print "ERROR : You must provide one action to perform"
print("ERROR : You must provide one action to perform")
parser.print_usage()
sys.exit(2)
@@ -335,7 +340,7 @@ def main():
action = args[0]
if action == "listdrivers":
for t in backup_drivers:
print backup_drivers[t].get_help()
print(backup_drivers[t].get_help())
sys.exit(0)
config_file =options.config
@@ -376,7 +381,7 @@ def main():
hdlr = logging.FileHandler(os.path.join(log_dir,'tisbackup_%s.log' % (backup_start_date)))
hdlr.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s'))
logger.addHandler(hdlr)
except IOError, e:
except IOError as e:
if action == 'cleanup' and e.errno == errno.ENOSPC:
logger.warning("No space left on device, disabling file logging.")
else: