88
99from Archive import Archive
1010from Backup import Backup
11- from Common import DB , Lock , validate_hostname
11+ from Common import Config , DB , Lock , validate_hostname
1212from Notify import Notify
1313from Oplog import Tailer , Resolver
1414from Replication import Replset , ReplsetSharded
1717
1818
1919class MongodbConsistentBackup (object ):
20- def __init__ (self , config , prog_name = "mongodb-consistent-backup" ):
21- self .config = config
22- self .program_name = prog_name
23- self .backup = None
24- self .archive = None
25- self .sharding = None
26- self .replset = None
27- self .replset_sharded = None
28- self .notify = None
29- self .oplogtailer = None
30- self .oplog_resolver = None
31- self .upload = None
32- self .lock = None
33- self .start_time = time ()
34- self .end_time = None
35- self .backup_duration = None
36- self .backup_time = None
37- self .backup_root_directory = None
20+ def __init__ (self , prog_name = "mongodb-consistent-backup" ):
21+ self .program_name = prog_name
22+ self .backup = None
23+ self .archive = None
24+ self .sharding = None
25+ self .replset = None
26+ self .replset_sharded = None
27+ self .notify = None
28+ self .oplogtailer = None
29+ self .oplog_resolver = None
30+ self .upload = None
31+ self .lock = None
32+ self .start_time = time ()
33+ self .end_time = None
34+ self .backup_duration = None
35+ self .backup_time = None
36+ self .backup_root_directory = None
3837 self .backup_root_subdirectory = None
39- self .connection = None
40- self .db = None
41- self .is_sharded = False
42- self .secondaries = {}
43- self .oplog_summary = {}
44- self .backup_summary = {}
45- self .log_level = None
46-
38+ self .connection = None
39+ self .db = None
40+ self .is_sharded = False
41+ self .secondaries = {}
42+ self .oplog_summary = {}
43+ self .backup_summary = {}
44+ self .log_level = None
45+
46+ self .setup_config ()
4747 self .setup_signal_handlers ()
4848 self .setup_logger ()
4949 self .set_backup_dirs ()
5050 self .get_db_conn ()
5151
52+ def setup_config (self ):
53+ try :
54+ self .config = Config ()
55+ except Exception , e :
56+ print "Error setting up configuration: '%s'!" % e
57+ sys .exit (1 )
58+
5259 def setup_logger (self ):
5360 self .log_level = logging .INFO
5461 if self .config .verbose :
@@ -150,7 +157,7 @@ def run(self):
150157 try :
151158 self .notify = Notify (self .config )
152159 except Exception , e :
153- raise e
160+ self . exception ( "Problem starting notifier! Error: %s" % e )
154161
155162 # Setup the archiver
156163 try :
@@ -159,7 +166,17 @@ def run(self):
159166 self .backup_root_directory ,
160167 )
161168 except Exception , e :
162- raise e
169+ self .exception ("Problem starting archiver! Error: %s" % e )
170+
171+ # Setup the uploader
172+ try :
173+ self .upload = Upload (
174+ self .config ,
175+ self .backup_root_directory ,
176+ self .backup_root_subdirectory
177+ )
178+ except Exception , e :
179+ self .exception ("Problem starting uploader! Error: %s" % e )
163180
164181 if not self .is_sharded :
165182 logging .info ("Running backup of %s:%s in replset mode" % (self .config .host , self .config .port ))
@@ -286,11 +303,6 @@ def run(self):
286303
287304 # upload backup
288305 try :
289- self .upload = Upload (
290- self .config ,
291- self .backup_root_directory ,
292- self .backup_root_subdirectory
293- )
294306 self .upload .upload ()
295307 except Exception , e :
296308 self .exception ("Problem performing upload of backup! Error: %s" % e )
0 commit comments