From 52e41e4b1c469bc164d137f8a131d137b5dcce50 Mon Sep 17 00:00:00 2001 From: yomguy Date: Fri, 23 Nov 2007 11:13:05 +0000 Subject: [PATCH] Use ZopeInstall to give paths git-svn-id: http://svn.parisson.org/svn/tools/trunk@19 457c0346-1240-4656-8a5a-9edca8063506 --- zope_backup_all.py | 15 ++++++--------- zope_instance.py | 24 ++++++++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/zope_backup_all.py b/zope_backup_all.py index b580eaf..5e23e6c 100755 --- a/zope_backup_all.py +++ b/zope_backup_all.py @@ -11,18 +11,15 @@ from zope_instance import * backup_dir = '/home/momo/backups/zope/' z = ZopeInstall() -versions = z.versions +instances = z.get_instances() instance_main_dir = z.instance_main_dir def backup_all(): - for version in versions: - dir = instance_main_dir + os.sep + 'zope' + version + os.sep + 'instance' - if os.path.exists(dir): - instances = os.listdir(dir) - for instance in instances: - z = ZopeInstance(version, instance) - z.backup(backup_dir) - #print instance + for version in instances: + for instance in instances[version]: + z = ZopeInstance(version, instance) + #z.backup(backup_dir) + print version + ': ' + instance + ' backuped !' if __name__ == '__main__': backup_all() diff --git a/zope_instance.py b/zope_instance.py index 4b31622..684d09f 100644 --- a/zope_instance.py +++ b/zope_instance.py @@ -38,6 +38,18 @@ class ZopeInstall: self.zope_main_dir = '/usr/lib' + def get_instances(self): + """Return all instances in all zope versions installed""" + dict = {} + for version in self.versions: + #print version + path = self.instance_main_dir + os.sep + 'zope' + version + os.sep + 'instance' + if os.path.exists(path): + dict[version] = os.listdir(path) + #print dict + return dict + + class ZopeInstance(ZopeInstall): """Expose Zope instances to several python methods that simplifies admins' life (backup, recover, import, etc...)""" @@ -53,17 +65,8 @@ class ZopeInstance(ZopeInstall): self.instance_var =self.instance_dir + os.sep + 'var' + os.sep self.repozo = self.zope_main_dir + os.sep + 'zope' + self.version + os.sep + 'bin' + os.sep + 'repozo.py' - def get_instances(self): - dict = {} - for version in self.versions: - #print version - path = self.instance_main_dir + os.sep + 'zope' + version + os.sep + 'instance' - if os.path.exists(path): - dict[version] = os.listdir(path) - #print dict - return dict - def backup(self, backup_dir): + """Backup the instance""" self.backup_dir = backup_dir self.instance_backup_dir = self.backup_dir + os.sep + self.version + os.sep + self.instance @@ -90,6 +93,7 @@ class ZopeInstance(ZopeInstall): print self.instance + ' backuped !' def recover(self): + """Recover the instance from a backup""" os.chdir(self.instance_backup_dir) command = 'tar xzf '+self.instance_backup_dir+os.sep+'Products.tar.gz && ' + \ 'rsync -a --delete ' + self.instance_backup_dir+os.sep+self.instance_products + \ -- 2.39.5