def backup(args): basedir = (action_get("basedir")).lower() compress = action_get("compress") incremental = action_get("incremental") sstpw = _get_password("sst-password") optionlist = [] # innobackupex will not create recursive dirs that do not already exist, # so help it along if not os.path.exists(basedir): os.makedirs(basedir) # Build a list of options to pass to innobackupex if compress: optionlist.append("--compress") if incremental: optionlist.append("--incremental") # xtrabackup 2.4 (introduced in Bionic) doesn't support compact backups if CompareHostReleases(lsb_release()['DISTRIB_CODENAME']) < 'bionic': optionlist.append("--compact") try: subprocess.check_call([ 'innobackupex', '--galera-info', '--rsync', basedir, '--user=sstuser', '--password={}'.format(sstpw) ] + optionlist) action_set({ 'time-completed': (strftime("%Y-%m-%d %H:%M:%S", gmtime())), 'outcome': 'Success' }) except subprocess.CalledProcessError as e: action_set({ 'time-completed': (strftime("%Y-%m-%d %H:%M:%S", gmtime())), 'output': e.output, 'return-code': e.returncode, 'traceback': traceback.format_exc() }) action_fail("innobackupex failed, you should log on to the unit" "and check the status of the database")
def backup(args): basedir = (action_get("basedir")).lower() compress = action_get("compress") incremental = action_get("incremental") sstpw = _get_password("sst-password") optionlist = [] # innobackupex will not create recursive dirs that do not already exist, # so help it along if not os.path.exists(basedir): os.makedirs(basedir) # Build a list of options to pass to innobackupex if compress: optionlist.append("--compress") if incremental: optionlist.append("--incremental") # xtrabackup 2.4 (introduced in Bionic) doesn't support compact backups if CompareHostReleases(lsb_release()['DISTRIB_CODENAME']) < 'bionic': optionlist.append("--compact") try: subprocess.check_call( ['innobackupex', '--galera-info', '--rsync', basedir, '--user=sstuser', '--password={}'.format(sstpw)] + optionlist) action_set({ 'time-completed': (strftime("%Y-%m-%d %H:%M:%S", gmtime())), 'outcome': 'Success'} ) except subprocess.CalledProcessError as e: action_set({ 'time-completed': (strftime("%Y-%m-%d %H:%M:%S", gmtime())), 'output': e.output, 'return-code': e.returncode, 'traceback': traceback.format_exc()}) action_fail("innobackupex failed, you should log on to the unit" "and check the status of the database")