def backup(self, basedir, include=[], exclude=[]): """backup the files modified outside the apt package system""" if snap.config.options.log_level_at_least('verbose'): snap.callback.snapcallback.message("Backing up files using apt backend"); if len(include) == 0: include = ['/'] for additional_exclude in ['/proc', '/sys', '/selinux']: if not additional_exclude in exclude: exclude.append(additional_exclude) # remove duplicates include = list(set(include)) exclude = list(set(exclude)) # determine which files have been modified since installation # and copy those to basedir sfiles = [] files = FileManager.get_all_files(include, exclude) for tfile in files: if self.__file_modified(tfile): if snap.config.options.log_level_at_least('verbose'): snap.callback.snapcallback.message("Backing up file " + tfile); sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) # write record file to basedir record = FilesRecordFile(basedir + "/files.xml") record.write(sfiles)
def backup(self, basedir): # backup the webroot, confd sfiles = [] files = snap.filemanager.FileManager.get_all_files(include=[Httpd.DOCUMENT_ROOT, Httpd.CONF_D]) for tfile in files: if os.access(tfile, os.R_OK): sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) # write record file to basedir record = FilesRecordFile(os.path.join(basedir, "service-http.xml")) record.write(sfiles)
def backup(self, basedir): # backup the configuration directory sfiles = [] files = snap.filemanager.FileManager.get_all_files(include=[Iis.CONFIG_ROOT]) for tfile in files: if os.access(tfile, os.R_OK): sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) # write record file to basedir record = FilesRecordFile(os.path.join(basedir, "service-iis.xml")) record.write(sfiles)
def backup(self, basedir): # backup the configuration directory sfiles = [] files = snap.filemanager.FileManager.get_all_files( include=[Iis.CONFIG_ROOT]) for tfile in files: if os.access(tfile, os.R_OK): sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) # write record file to basedir record = FilesRecordFile(os.path.join(basedir, "service-iis.xml")) record.write(sfiles)
def backup(self, basedir): # backup the webroot, confd sfiles = [] files = snap.filemanager.FileManager.get_all_files( include=[Httpd.DOCUMENT_ROOT, Httpd.CONF_D]) for tfile in files: if os.access(tfile, os.R_OK): sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) # write record file to basedir record = FilesRecordFile(os.path.join(basedir, "service-http.xml")) record.write(sfiles)
def testSFileCopyLinkTo(self): basedir = os.path.join(os.path.dirname(__file__), "data") self.source = os.path.join(basedir, "sourcelink") self.dest_dir = os.path.join(basedir, "destdir") os.makedirs(self.dest_dir) if os.path.islink(self.source): os.remove(self.source) os.symlink("/foobar", self.source) sfile = SFile(self.source) sfile.copy_to(self.dest_dir) self.assertTrue(os.path.islink(self.dest_dir + self.source)) self.assertEqual("/foobar", os.path.realpath(self.dest_dir + self.source))
def testSFileCopyToWithPrefix(self): basedir = os.path.join(os.path.dirname(__file__), "data") self.source_dir = os.path.join(basedir, "source", "subdir") self.dest_dir = os.path.join(basedir, "dest") os.makedirs(self.source_dir) f = open(os.path.join(self.source_dir, "foo"), 'w') f.write("foo") f.close() dest_file = os.path.join(self.dest_dir, "source", "subdir", "foo") sfile = SFile(path=os.path.join("source", "subdir", "foo")) sfile.copy_to(self.dest_dir, path_prefix=basedir) self.assertTrue(os.path.exists(dest_file)) shutil.rmtree(os.path.join(basedir, "source"))
def testSFileCopyTo(self): basedir = os.path.join(os.path.dirname(__file__), "data") self.source_dir = os.path.join(basedir, "source", "subdir") self.dest_dir = os.path.join(basedir, "dest") os.makedirs(self.source_dir) f = open(os.path.join(self.source_dir, "foo"), 'w') f.write("foo") f.close() dest_file = os.path.join(self.dest_dir, self.source_dir, "foo") sfile = SFile(path=os.path.join(self.source_dir, "foo")) sfile.copy_to(self.dest_dir) self.assertTrue(os.path.exists(dest_file)) contents = FileManager.read_file(dest_file) self.assertEqual("foo", contents) shutil.rmtree(os.path.join(basedir, "source"))
exclude.append(additional_exclude) # remove duplicates include = list(set(include)) exclude = list(set(exclude)) # determine which files have been modified since installation # and copy those to basedir sfiles = [] files = FileManager.get_all_files(include, exclude) for tfile in files: if snap.config.options.log_level_at_least('verbose'): snap.callback.snapcallback.message("Backing up file " + tfile); try: sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) except: pass # write record file to basedir record = FilesRecordFile(os.path.join(basedir, "files.xml")) record.write(sfiles) def restore(self, basedir): """restore the files in the snapfile""" # if files record file isn't found, simply return if not os.path.isfile(os.path.join(basedir, "files.xml")): return
exclude.append(additional_exclude) # remove duplicates include = list(set(include)) exclude = list(set(exclude)) # determine which files have been modified since installation # and copy those to basedir sfiles = [] files = FileManager.get_all_files(include, exclude) for tfile in files: if snap.config.options.log_level_at_least('verbose'): snap.callback.snapcallback.message("Backing up file " + tfile) try: sfile = SFile(tfile) sfile.copy_to(basedir) sfiles.append(sfile) except: pass # write record file to basedir record = FilesRecordFile(os.path.join(basedir, "files.xml")) record.write(sfiles) def restore(self, basedir): """restore the files in the snapfile""" # if files record file isn't found, simply return if not os.path.isfile(os.path.join(basedir, "files.xml")): return if snap.config.options.log_level_at_least('verbose'):