Fixed bug launchpad #1382809 to manage token expired
Currenntly Freezer handle token refresh when uploading data segments, but there's a bug in the file backup.py in the lines ~130 and ~178. The client object called to upload the tar meta data and the swift manifest, can be expired as it is initialized before the segments upload process. launchpad: https://bugs.launchpad.net/freezer/+bug/1382809 Change-Id: I88c9d922c51a43c1722268d4dbed77e594e089aa
This commit is contained in:
parent
e46660a040
commit
425dc3506b
|
@ -23,7 +23,7 @@ Freezer Backup modes related functions
|
||||||
|
|
||||||
from freezer.lvm import lvm_snap, lvm_snap_remove, get_lvm_info
|
from freezer.lvm import lvm_snap, lvm_snap_remove, get_lvm_info
|
||||||
from freezer.tar import tar_backup, gen_tar_command
|
from freezer.tar import tar_backup, gen_tar_command
|
||||||
from freezer.swift import add_object, manifest_upload
|
from freezer.swift import add_object, manifest_upload, get_client
|
||||||
from freezer.utils import gen_manifest_meta, add_host_name_ts_level
|
from freezer.utils import gen_manifest_meta, add_host_name_ts_level
|
||||||
|
|
||||||
from multiprocessing import Process, Queue
|
from multiprocessing import Process, Queue
|
||||||
|
@ -124,11 +124,6 @@ def backup_mode_fs(backup_opt_dict, time_stamp, manifest_meta_dict):
|
||||||
# Generate the lvm_snap if lvm arguments are available
|
# Generate the lvm_snap if lvm arguments are available
|
||||||
lvm_snap(backup_opt_dict)
|
lvm_snap(backup_opt_dict)
|
||||||
|
|
||||||
# Extract some values from arguments that will be used later on
|
|
||||||
# Initialize swift client object, generate container segments name
|
|
||||||
# and extract backup name
|
|
||||||
sw_connector = backup_opt_dict.sw_connector
|
|
||||||
|
|
||||||
# Generate a string hostname, backup name, timestamp and backup level
|
# Generate a string hostname, backup name, timestamp and backup level
|
||||||
file_name = add_host_name_ts_level(backup_opt_dict, time_stamp)
|
file_name = add_host_name_ts_level(backup_opt_dict, time_stamp)
|
||||||
meta_data_backup_file = u'tar_metadata_{0}'.format(file_name)
|
meta_data_backup_file = u'tar_metadata_{0}'.format(file_name)
|
||||||
|
@ -165,14 +160,19 @@ def backup_mode_fs(backup_opt_dict, time_stamp, manifest_meta_dict):
|
||||||
manifest_file = u''
|
manifest_file = u''
|
||||||
meta_data_abs_path = '{0}/{1}'.format(
|
meta_data_abs_path = '{0}/{1}'.format(
|
||||||
backup_opt_dict.workdir, tar_meta_prev)
|
backup_opt_dict.workdir, tar_meta_prev)
|
||||||
|
|
||||||
# Upload swift manifest for segments
|
# Upload swift manifest for segments
|
||||||
if backup_opt_dict.upload:
|
if backup_opt_dict.upload:
|
||||||
|
# Request a new auth client in case the current token
|
||||||
|
# is expired before uploading tar meta data or the swift manifest
|
||||||
|
backup_opt_dict = get_client(backup_opt_dict)
|
||||||
|
|
||||||
if not backup_opt_dict.no_incremental:
|
if not backup_opt_dict.no_incremental:
|
||||||
# Upload tar incremental meta data file and remove it
|
# Upload tar incremental meta data file and remove it
|
||||||
logging.info('[*] Uploading tar meta data file: {0}'.format(
|
logging.info('[*] Uploading tar meta data file: {0}'.format(
|
||||||
tar_meta_to_upload))
|
tar_meta_to_upload))
|
||||||
with open(meta_data_abs_path, 'r') as meta_fd:
|
with open(meta_data_abs_path, 'r') as meta_fd:
|
||||||
sw_connector.put_object(
|
backup_opt_dict.sw_connector.put_object(
|
||||||
backup_opt_dict.container, tar_meta_to_upload, meta_fd)
|
backup_opt_dict.container, tar_meta_to_upload, meta_fd)
|
||||||
# Removing tar meta data file, so we have only one authoritative
|
# Removing tar meta data file, so we have only one authoritative
|
||||||
# version on swift
|
# version on swift
|
||||||
|
|
Loading…
Reference in New Issue