From: <di...@us...> - 2007-01-30 19:31:45
|
Revision: 340 http://safekeep.svn.sourceforge.net/safekeep/?rev=340&view=rev Author: dimi Date: 2007-01-30 11:31:43 -0800 (Tue, 30 Jan 2007) Log Message: ----------- Use the regular logging functions to complain about ignored files Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-30 19:21:11 UTC (rev 339) +++ safekeep/trunk/safekeep 2007-01-30 19:31:43 UTC (rev 340) @@ -227,7 +227,7 @@ if os.path.isdir(cfg): for ent in os.listdir(cfg): if not ent.endswith(config_ext): - print >> sys.stderr, 'Ignoring file %s not ending in %s' % (os.path.join(cfg, ent), config_ext) + warn('Ignoring file %s not ending in %s' % (os.path.join(cfg, ent), config_ext)) continue filepath = os.path.join(cfg, ent) if not os.path.isfile(filepath): @@ -236,7 +236,7 @@ elif os.path.isfile(cfg): cfgfiles.append(cfg) else: - print >> sys.stderr, 'Inaccessible configuration, ignoring:', cfg + warn('Inaccessible configuration, ignoring: %s' % cfg) cfgs = {} for filepath in cfgfiles: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-02-02 00:39:28
|
Revision: 357 http://safekeep.svn.sourceforge.net/safekeep/?rev=357&view=rev Author: dimi Date: 2007-02-01 16:39:25 -0800 (Thu, 01 Feb 2007) Log Message: ----------- Bump version to 0.9.0 Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-02-02 00:36:52 UTC (rev 356) +++ safekeep/trunk/safekeep 2007-02-02 00:39:25 UTC (rev 357) @@ -12,7 +12,7 @@ verbosity_level = 1 PROTOCOL = "1.0" -VERSION = "0.2.0" +VERSION = "0.9.0" VEBOSITY_BY_CLASS = {'DBG': 3, 'INFO': 2, 'WARN': 1, 'ERR': 0} ###################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-02-05 22:15:54
|
Revision: 396 http://safekeep.svn.sourceforge.net/safekeep/?rev=396&view=rev Author: dimi Date: 2007-02-05 14:15:51 -0800 (Mon, 05 Feb 2007) Log Message: ----------- Try to automatically create the data store dir if it doesn't exist. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-02-05 21:01:00 UTC (rev 395) +++ safekeep/trunk/safekeep 2007-02-05 22:15:51 UTC (rev 396) @@ -537,7 +537,15 @@ warn('Client %(id)s missing data key %(id)s, skipping' % cfg) continue - rdiff_logdir = os.path.join(cfg['dir'], 'rdiff-backup-data') + datadir = os.path.join(os.getcwd(), cfg['dir']) + if not os.path.isdir(datadir): + try: + os.makedirs(datadir) + except EnvironmentError, ex: + error('Can not create data store dir: %s' % datadir) + return + + rdiff_logdir = os.path.join(datadir, 'rdiff-backup-data') if cfg['retention'] and os.path.isdir(rdiff_logdir): do_server_data_cleanup(cfg) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-02-05 22:35:08
|
Revision: 395 http://safekeep.svn.sourceforge.net/safekeep/?rev=395&view=rev Author: dimi Date: 2007-02-05 13:01:00 -0800 (Mon, 05 Feb 2007) Log Message: ----------- When adding lines to authorized_keys, always end the last line with a NL Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-02-05 18:28:58 UTC (rev 394) +++ safekeep/trunk/safekeep 2007-02-05 21:01:00 UTC (rev 395) @@ -670,7 +670,7 @@ cmd = 'ssh %s@%s "umask 077; test -d .ssh || mkdir .ssh; cat >> .ssh/authorized_keys"' % (cfg['user'], cfg['host']) debug(cmd) pipe = os.popen(cmd, 'w') - pipe.write('\n'.join([key[4] for key in new_keys])) + pipe.write('%s\n' % '\n'.join([key[4] for key in new_keys])) if pipe.close(): error('Failed to deliver the keys to the client') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-02-12 05:28:19
|
Revision: 419 http://safekeep.svn.sourceforge.net/safekeep/?rev=419&view=rev Author: dimi Date: 2007-02-11 21:28:18 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Up the version to 0.9.1 Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-02-12 05:27:30 UTC (rev 418) +++ safekeep/trunk/safekeep 2007-02-12 05:28:18 UTC (rev 419) @@ -12,7 +12,7 @@ verbosity_level = 1 PROTOCOL = "1.0" -VERSION = "0.9.0" +VERSION = "0.9.1" VEBOSITY_BY_CLASS = {'DBG': 3, 'INFO': 2, 'WARN': 1, 'ERR': 0} ###################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-02-23 22:23:16
|
Revision: 425 http://safekeep.svn.sourceforge.net/safekeep/?rev=425&view=rev Author: stelian Date: 2007-02-23 14:23:12 -0800 (Fri, 23 Feb 2007) Log Message: ----------- Do not stop if a single client fails. Separate the client outputs to ease log reading. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-02-12 06:29:20 UTC (rev 424) +++ safekeep/trunk/safekeep 2007-02-23 22:23:12 UTC (rev 425) @@ -527,80 +527,84 @@ for cfg in cfgs.itervalues(): id = cfg['id'] if ids and id not in ids: continue + info('------------------------------------------------------------------') info('Server backup starting for client: %s' % id) - if cfg['host']: - if not os.path.isfile(cfg['key_ctrl']): - warn('Client %(id)s missing ctrl key %(key_ctrl)s, skipping' % cfg) - continue - if not os.path.isfile(cfg['key_data']): - warn('Client %(id)s missing data key %(id)s, skipping' % cfg) - continue + try: + if cfg['host']: + if not os.path.isfile(cfg['key_ctrl']): + raise Exception('Client %(id)s missing ctrl key %(key_ctrl)s' % cfg) + if not os.path.isfile(cfg['key_data']): + raise Exception('Client %(id)s missing data key %(id)s' % cfg) - datadir = os.path.join(os.getcwd(), cfg['dir']) - if not os.path.isdir(datadir): - try: - os.makedirs(datadir) - except EnvironmentError, ex: - error('Can not create data store dir: %s' % datadir) - return + datadir = os.path.join(os.getcwd(), cfg['dir']) + if not os.path.isdir(datadir): + try: + os.makedirs(datadir) + except EnvironmentError, ex: + raise Exception('Can not create data store dir: %s' % datadir) - rdiff_logdir = os.path.join(datadir, 'rdiff-backup-data') - if cfg['retention'] and os.path.isdir(rdiff_logdir): - do_server_data_cleanup(cfg) + rdiff_logdir = os.path.join(datadir, 'rdiff-backup-data') + if cfg['retention'] and os.path.isdir(rdiff_logdir): + do_server_data_cleanup(cfg) - if cfg['host']: - cmd = 'ssh -T -i %(key_ctrl)s -l %(user)s %(host)s safekeep --client' % cfg - else: - cmd = 'safekeep --client' - debug('Run [' + cmd + ']') - (cin, cout) = os.popen4(cmd) + if cfg['host']: + cmd = 'ssh -T -i %(key_ctrl)s -l %(user)s %(host)s safekeep --client' % cfg + else: + cmd = 'safekeep --client' + debug('Run [' + cmd + ']') + (cin, cout) = os.popen4(cmd) - cin.write('ALOHA: %s, %s\n' % (PROTOCOL, VERSION)) - cin.flush() - client_versions = do_server_getanswer(cout) - do_server_compat(client_versions) + cin.write('ALOHA: %s, %s\n' % (PROTOCOL, VERSION)) + cin.flush() + client_versions = do_server_getanswer(cout) + do_server_compat(client_versions) - cin.write('CONFIG: %d: %s\n' % (len(cfg['text'].splitlines()), id)) - cin.write(cfg['text'] + '\n') - cin.flush() - do_server_getanswer(cout) + cin.write('CONFIG: %d: %s\n' % (len(cfg['text'].splitlines()), id)) + cin.write(cfg['text'] + '\n') + cin.flush() + do_server_getanswer(cout) - cin.write('SETUP\n') - cin.flush() - bdir = do_server_getanswer(cout) + cin.write('SETUP\n') + cin.flush() + bdir = do_server_getanswer(cout) - if os.path.isdir(rdiff_logdir): - rdiff_logpre = os.listdir(rdiff_logdir) - else: - rdiff_logpre = [] + if os.path.isdir(rdiff_logdir): + rdiff_logpre = os.listdir(rdiff_logdir) + else: + rdiff_logpre = [] - backup_log = os.path.join(rdiff_logdir, 'backup.log') - if os.path.isfile(backup_log): - backup_marker = '=== Backup session on %s ===' % time.asctime() - fbm = open(backup_log, 'a') - fbm.write(backup_marker + '\n') - fbm.close() - else: - backup_marker = None + backup_log = os.path.join(rdiff_logdir, 'backup.log') + if os.path.isfile(backup_log): + backup_marker = '=== Backup session on %s ===' % time.asctime() + fbm = open(backup_log, 'a') + fbm.write(backup_marker + '\n') + fbm.close() + else: + backup_marker = None - do_server_rdiff(cfg, bdir) + do_server_rdiff(cfg, bdir) - if os.path.isdir(rdiff_logdir): - info_file(backup_log, backup_marker) - rdiff_logpost = os.listdir(rdiff_logdir) - for lfn in rdiff_logpost: - if lfn.startswith('session_statistics.') and lfn.endswith('.data') and lfn not in rdiff_logpre: - info_file(os.path.join(rdiff_logdir, lfn)) - else: - warn('Log dir does not exist.') + if os.path.isdir(rdiff_logdir): + info_file(backup_log, backup_marker) + rdiff_logpost = os.listdir(rdiff_logdir) + for lfn in rdiff_logpost: + if lfn.startswith('session_statistics.') and lfn.endswith('.data') and lfn not in rdiff_logpre: + info_file(os.path.join(rdiff_logdir, lfn)) + else: + warn('Log dir does not exist.') - cin.write('CLEANUP %s\n' % bdir) - cin.flush() - do_server_getanswer(cout) + cin.write('CLEANUP %s\n' % bdir) + cin.flush() + do_server_getanswer(cout) - debug('Server backup done for client: %s' % id) + debug('Server backup done for client: %s' % id) + except Exception, e: + error(e) + error('Skipping backup for client: %s' % id) + + info('------------------------------------------------------------------') debug('Server backup done') def do_keys(cfgs, ids, status, dump, deploy): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-06 04:11:29
|
Revision: 430 http://safekeep.svn.sourceforge.net/safekeep/?rev=430&view=rev Author: dimi Date: 2007-03-05 20:11:28 -0800 (Mon, 05 Mar 2007) Log Message: ----------- Add (partial) support for a global configuration file: /etc/safekeep/safekeep.conf Allow the -c/--conf switch to take both global conf file and client conf files as parameters. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-04 20:15:32 UTC (rev 429) +++ safekeep/trunk/safekeep 2007-03-06 04:11:28 UTC (rev 430) @@ -5,7 +5,7 @@ import xml.dom.minidom import socket, smtplib -config_dir = '/etc/safekeep/clients.d' +config_dir = '/etc/safekeep' config_ext = '.backup' logbuf = [] is_client = False @@ -784,6 +784,7 @@ mode = None email = [] smtp = '' + cfgfile = None cfglocs = [] verbosity = 0 clientid = None @@ -792,7 +793,13 @@ keys_deploy = None for o, a in opts: if o in ('-c', '--conf'): - cfglocs.append(a) + if os.path.isdir(a) or a.endswith(config_ext): + cfglocs.append(a) + elif cfgfile is None: + cfgfile = a + else: + error('A main configuration file can be specified only once!') + sys.exit(2) elif o in ('-e', '--email'): email.append(a) elif o in ('-h', '--help'): @@ -834,9 +841,14 @@ if mode is 'client' and cfglocs: usage(2) - if mode is not 'client' and len(cfglocs) == 0: - cfglocs.append(config_dir) - cfgs = parse_locs(cfglocs) + if mode is not 'client': + if cfgfile is None: + cfgfile = os.path.join(config_dir, 'safekeep.conf') + # FIXME: parse config file + if len(cfglocs) == 0: + locs = os.path.join(config_dir, 'clients.d') + cfglocs.append(locs) + cfgs = parse_locs(cfglocs) if mode is 'client': if len(args) > 0: usage(2) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-06 04:52:19
|
Revision: 431 http://safekeep.svn.sourceforge.net/safekeep/?rev=431&view=rev Author: dimi Date: 2007-03-05 20:52:16 -0800 (Mon, 05 Mar 2007) Log Message: ----------- Add simple Java-like properties parser Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-06 04:11:28 UTC (rev 430) +++ safekeep/trunk/safekeep 2007-03-06 04:52:16 UTC (rev 431) @@ -108,6 +108,21 @@ if path.startswith('/'): return root + path return os.path.join(root, path) +def parse_prop_file(file): + props = {} + fin = open(file) + lines = fin.readlines() + fin.close() + for line in lines: + line = line.strip() + if len(line) is 0 or line[0] is '#': continue + if '=' in line: + key, value = line.split('=', 1) + props[key.strip()] = value.strip() + else: + props[line] = None + return props + ###################################################################### # Configuration file parser ###################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-06 21:07:26
|
Revision: 432 http://safekeep.svn.sourceforge.net/safekeep/?rev=432&view=rev Author: dimi Date: 2007-03-06 13:07:23 -0800 (Tue, 06 Mar 2007) Log Message: ----------- Read the email properties from the global config file Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-06 04:52:16 UTC (rev 431) +++ safekeep/trunk/safekeep 2007-03-06 21:07:23 UTC (rev 432) @@ -798,7 +798,7 @@ mode = None email = [] - smtp = '' + smtp = None cfgfile = None cfglocs = [] verbosity = 0 @@ -859,7 +859,11 @@ if mode is not 'client': if cfgfile is None: cfgfile = os.path.join(config_dir, 'safekeep.conf') - # FIXME: parse config file + props = parse_prop_file(cfgfile) + if 'email.smtp.server' in props: + smtp = props['email.smtp.server'] + if 'email.to' in props: + email = props['email.to'].split(',') if len(cfglocs) == 0: locs = os.path.join(config_dir, 'clients.d') cfglocs.append(locs) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-07 19:07:41
|
Revision: 438 http://safekeep.svn.sourceforge.net/safekeep/?rev=438&view=rev Author: dimi Date: 2007-03-07 11:07:40 -0800 (Wed, 07 Mar 2007) Log Message: ----------- Look at the default configuration files only if they exist Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-07 16:54:47 UTC (rev 437) +++ safekeep/trunk/safekeep 2007-03-07 19:07:40 UTC (rev 438) @@ -858,15 +858,17 @@ if mode is not 'client': if cfgfile is None: - cfgfile = os.path.join(config_dir, 'safekeep.conf') - props = parse_prop_file(cfgfile) + propfile = os.path.join(config_dir, 'safekeep.conf') + if os.path.isfile(propfile): cfgfile = propfile + if cfgfile: + props = parse_prop_file(cfgfile) if 'email.smtp.server' in props: smtp = props['email.smtp.server'] if 'email.to' in props: email = props['email.to'].split(',') if len(cfglocs) == 0: locs = os.path.join(config_dir, 'clients.d') - cfglocs.append(locs) + if os.path.isdir(locs): cfglocs.append(locs) cfgs = parse_locs(cfglocs) if mode is 'client': This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-07 19:13:28
|
Revision: 439 http://safekeep.svn.sourceforge.net/safekeep/?rev=439&view=rev Author: dimi Date: 2007-03-07 11:13:27 -0800 (Wed, 07 Mar 2007) Log Message: ----------- We always need a props dict Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-07 19:07:40 UTC (rev 438) +++ safekeep/trunk/safekeep 2007-03-07 19:13:27 UTC (rev 439) @@ -862,6 +862,8 @@ if os.path.isfile(propfile): cfgfile = propfile if cfgfile: props = parse_prop_file(cfgfile) + else: + props = {} if 'email.smtp.server' in props: smtp = props['email.smtp.server'] if 'email.to' in props: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-08 20:53:36
|
Revision: 446 http://safekeep.svn.sourceforge.net/safekeep/?rev=446&view=rev Author: dimi Date: 2007-03-08 12:53:35 -0800 (Thu, 08 Mar 2007) Log Message: ----------- Look for the client .backup files in the clients.d directory that is present in the same directory as the safekeep.conf file. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-08 20:35:44 UTC (rev 445) +++ safekeep/trunk/safekeep 2007-03-08 20:53:35 UTC (rev 446) @@ -5,7 +5,7 @@ import getpass, pwd, xml.dom.minidom import socket, smtplib -config_dir = '/etc/safekeep' +config_file = '/etc/safekeep/safekeep.conf' config_ext = '.backup' logbuf = [] is_client = False @@ -872,12 +872,15 @@ usage(2) if mode is not 'client': - if cfgfile is None: - propfile = os.path.join(config_dir, 'safekeep.conf') - if os.path.isfile(propfile): cfgfile = propfile - if cfgfile: + if cfgfile is None and os.path.isfile(config_file): + cfgfile = config_file + if cfgfile and os.path.isfile(cfgfile): props = parse_prop_file(cfgfile) else: + if cfgfile: + warn('Configuration file does not exist, skipping: %s' % cfgfile) + else: + cfgfile = config_file props = {} if 'backup.user' in props: backup_user = props['backup.user'] @@ -888,7 +891,7 @@ if 'email.to' in props: email = props['email.to'].split(',') if len(cfglocs) == 0: - locs = os.path.join(config_dir, 'clients.d') + locs = os.path.join(os.path.dirname(cfgfile), 'clients.d') if os.path.isdir(locs): cfglocs.append(locs) if backup_user and backup_user != work_user: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-09 01:04:12
|
Revision: 453 http://safekeep.svn.sourceforge.net/safekeep/?rev=453&view=rev Author: dimi Date: 2007-03-08 17:04:10 -0800 (Thu, 08 Mar 2007) Log Message: ----------- Fix typo Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-09 01:03:28 UTC (rev 452) +++ safekeep/trunk/safekeep 2007-03-09 01:04:10 UTC (rev 453) @@ -899,7 +899,7 @@ if mode is not 'keys': os.setregid(gid, gid) os.setreuid(uid, uid) - os.env['HOME'] = home_dir + os.environ['HOME'] = home_dir else: backup_user = work_user home_dir = os.getenv('HOME', '/') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-09 02:35:11
|
Revision: 455 http://safekeep.svn.sourceforge.net/safekeep/?rev=455&view=rev Author: dimi Date: 2007-03-08 18:35:07 -0800 (Thu, 08 Mar 2007) Log Message: ----------- More tracing Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-09 02:21:36 UTC (rev 454) +++ safekeep/trunk/safekeep 2007-03-09 02:35:07 UTC (rev 455) @@ -84,6 +84,7 @@ cout.close() def send_notification(email, smtp): + info('Sending email to %s via %s' % (','.join(email), smtp) global logbuf hostname = socket.gethostname() msg = 'From: SafeKeep@' + hostname + \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-13 05:20:36
|
Revision: 460 http://safekeep.svn.sourceforge.net/safekeep/?rev=460&view=rev Author: dimi Date: 2007-03-12 22:20:24 -0700 (Mon, 12 Mar 2007) Log Message: ----------- Fix typo Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-09 17:48:55 UTC (rev 459) +++ safekeep/trunk/safekeep 2007-03-13 05:20:24 UTC (rev 460) @@ -84,7 +84,7 @@ cout.close() def send_notification(email, smtp): - info('Sending email to %s via %s' % (','.join(email), smtp) + info('Sending email to %s via %s' % (','.join(email), smtp)) global logbuf hostname = socket.gethostname() msg = 'From: SafeKeep@' + hostname + \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-13 05:25:30
|
Revision: 462 http://safekeep.svn.sourceforge.net/safekeep/?rev=462&view=rev Author: dimi Date: 2007-03-12 22:25:19 -0700 (Mon, 12 Mar 2007) Log Message: ----------- Bind / in /mnt/ instead of /tmp/ to avoid unpleasant situations with cleanup scripts. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-13 05:22:34 UTC (rev 461) +++ safekeep/trunk/safekeep 2007-03-13 05:25:19 UTC (rev 462) @@ -417,7 +417,7 @@ do_client_dbdump(cfg) if len(cfg['snaps']) > 0: - bdir = tempfile.mkdtemp("-rbind", "safekeep-") + bdir = tempfile.mkdtemp("-rbind", "safekeep-", "/mnt") ret = spawn(['mount', '--rbind', '/', bdir]) if ret: warn('mount --rbind failed with %d, snapshotting will be disabled' % ret) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-13 05:52:50
|
Revision: 463 http://safekeep.svn.sourceforge.net/safekeep/?rev=463&view=rev Author: dimi Date: 2007-03-12 22:52:48 -0700 (Mon, 12 Mar 2007) Log Message: ----------- Make sure the paths to the SSH keys are absolute Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-13 05:25:19 UTC (rev 462) +++ safekeep/trunk/safekeep 2007-03-13 05:52:48 UTC (rev 463) @@ -192,9 +192,13 @@ if host and not user: user = 'root' if host and not key_ctrl: - key_ctrl = os.path.join(home_dir, '.ssh', 'safekeep-server-ctrl-key') + key_ctrl = os.path.join('.ssh', 'safekeep-server-ctrl-key') if host and not key_data: - key_data = os.path.join(home_dir, '.ssh', 'safekeep-server-data-key') + key_data = os.path.join('.ssh', 'safekeep-server-data-key') + if not os.path.isabs(key_ctrl): + key_ctrl = os.path.join(home_dir, key_ctrl) + if not os.path.isabs(key_data): + key_data = os.path.join(home_dir, key_data) repo_el = backup_el.getElementsByTagName('repo') dir = None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-13 18:42:05
|
Revision: 467 http://safekeep.svn.sourceforge.net/safekeep/?rev=467&view=rev Author: dimi Date: 2007-03-13 11:41:56 -0700 (Tue, 13 Mar 2007) Log Message: ----------- Make paths absolute only if they exist Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-13 18:36:41 UTC (rev 466) +++ safekeep/trunk/safekeep 2007-03-13 18:41:56 UTC (rev 467) @@ -195,9 +195,9 @@ key_ctrl = os.path.join('.ssh', 'safekeep-server-ctrl-key') if host and not key_data: key_data = os.path.join('.ssh', 'safekeep-server-data-key') - if not os.path.isabs(key_ctrl): + if key_ctrl and not os.path.isabs(key_ctrl): key_ctrl = os.path.join(home_dir, key_ctrl) - if not os.path.isabs(key_data): + if key_data and not os.path.isabs(key_data): key_data = os.path.join(home_dir, key_data) repo_el = backup_el.getElementsByTagName('repo') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-13 18:51:36
|
Revision: 468 http://safekeep.svn.sourceforge.net/safekeep/?rev=468&view=rev Author: dimi Date: 2007-03-13 11:51:21 -0700 (Tue, 13 Mar 2007) Log Message: ----------- Bump the version to 0.9.2 Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-13 18:41:56 UTC (rev 467) +++ safekeep/trunk/safekeep 2007-03-13 18:51:21 UTC (rev 468) @@ -16,7 +16,7 @@ base_dir = None PROTOCOL = "1.0" -VERSION = "0.9.1" +VERSION = "0.9.2" VEBOSITY_BY_CLASS = {'DBG': 3, 'INFO': 2, 'WARN': 1, 'ERR': 0} ###################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-03-20 21:39:23
|
Revision: 479 http://safekeep.svn.sourceforge.net/safekeep/?rev=479&view=rev Author: dimi Date: 2007-03-20 13:40:48 -0700 (Tue, 20 Mar 2007) Log Message: ----------- Force data cleanup in case there have been multiple backups since the last invocation Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-03-16 11:55:31 UTC (rev 478) +++ safekeep/trunk/safekeep 2007-03-20 20:40:48 UTC (rev 479) @@ -534,7 +534,7 @@ raise Exception('rdiff-backup returned %d' % ret) def do_server_data_cleanup(cfg): - args = ['rdiff-backup', '--remove-older-than', cfg['retention'], cfg['dir']] + args = ['rdiff-backup', '--force', '--remove-older-than', cfg['retention'], cfg['dir']] ret = spawn(args) if ret: warn('Failed to cleanup old data, please fix the problem manually') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-04-23 21:01:39
|
Revision: 482 http://safekeep.svn.sourceforge.net/safekeep/?rev=482&view=rev Author: stelian Date: 2007-04-23 14:01:38 -0700 (Mon, 23 Apr 2007) Log Message: ----------- Fix the 'one letter per line' email problem. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-04-21 15:19:50 UTC (rev 481) +++ safekeep/trunk/safekeep 2007-04-23 21:01:38 UTC (rev 482) @@ -43,7 +43,7 @@ cutoff = VEBOSITY_BY_CLASS.get(cls.upper()) if cutoff is None: cutoff = 3 if is_client or verbosity_level >= cutoff: - logbuf += msg + logbuf.append(msg) if is_client: print msg sys.stdout.flush() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-04-25 07:51:18
|
Revision: 484 http://safekeep.svn.sourceforge.net/safekeep/?rev=484&view=rev Author: stelian Date: 2007-04-25 00:51:16 -0700 (Wed, 25 Apr 2007) Log Message: ----------- F i x d e b u g p r i n t o u t l i k e t h i s . Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-04-24 13:27:45 UTC (rev 483) +++ safekeep/trunk/safekeep 2007-04-25 07:51:16 UTC (rev 484) @@ -76,7 +76,10 @@ log(msg, 'ERR') def spawn(args): - debug('Run [' + ' '.join(args) + ']') + if isinstance(args, str) or isinstance(args, unicode): + debug('Run [' + args + ']') + else: + debug('Run [' + ' '.join(args) + ']') (cout, cin) = popen2.popen4(args) cin.close() for line in cout: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-04-27 05:05:06
|
Revision: 489 http://safekeep.svn.sourceforge.net/safekeep/?rev=489&view=rev Author: dimi Date: 2007-04-26 22:05:05 -0700 (Thu, 26 Apr 2007) Log Message: ----------- Release 0.9.3 is almost ready... Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-04-27 05:04:03 UTC (rev 488) +++ safekeep/trunk/safekeep 2007-04-27 05:05:05 UTC (rev 489) @@ -16,7 +16,7 @@ base_dir = None PROTOCOL = "1.0" -VERSION = "0.9.2" +VERSION = "0.9.3" VEBOSITY_BY_CLASS = {'DBG': 3, 'INFO': 2, 'WARN': 1, 'ERR': 0} ###################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-05-16 14:09:02
|
Revision: 498 http://safekeep.svn.sourceforge.net/safekeep/?rev=498&view=rev Author: dimi Date: 2007-05-16 07:09:01 -0700 (Wed, 16 May 2007) Log Message: ----------- Now we're 1.0 Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-05-16 14:07:52 UTC (rev 497) +++ safekeep/trunk/safekeep 2007-05-16 14:09:01 UTC (rev 498) @@ -16,7 +16,7 @@ base_dir = None PROTOCOL = "1.0" -VERSION = "0.9.3" +VERSION = "1.0.0" VEBOSITY_BY_CLASS = {'DBG': 3, 'INFO': 2, 'WARN': 1, 'ERR': 0} ###################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-05-28 15:40:03
|
Revision: 512 http://safekeep.svn.sourceforge.net/safekeep/?rev=512&view=rev Author: dimi Date: 2007-05-28 08:39:57 -0700 (Mon, 28 May 2007) Log Message: ----------- Explicitely specify the shell to be used for running the command, in case the default shell is not usable. Suggested by Jeff Spaleta in order to avoid having a valid shell for the safekeep account. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-05-27 14:53:12 UTC (rev 511) +++ safekeep/trunk/safekeep 2007-05-28 15:39:57 UTC (rev 512) @@ -662,7 +662,7 @@ info('%s: Key do not exist, generating it now: %s' % (id, privatekeyfile)) gencmd = 'ssh-keygen -q -b 1024 -t dsa -N "" -C "SafeKeep auto generated key at %s@%s" -f %s' % (backup_user, os.uname()[1], privatekeyfile) if backup_user is not work_user: - gencmd = 'su -c %s - %s' % (commands.mkarg(gencmd), backup_user) + gencmd = 'su -s /bin/sh -c %s - %s' % (commands.mkarg(gencmd), backup_user) debug(gencmd) if os.system(gencmd): error('%s: Failed to generate key %s. Skipping client.' % (id, privatekeyfile)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |