def uninstall(self, incomplete_install=False): logger.debug("Uninstalling files for resource %s" % self.id) if incomplete_install: files = self._get_backup_files_actually_present() else: files = self._get_backup_file_list() if len(files) == 0: raise UserError(errors[ERR_BACKUP_FILE_LIST_EMPTY], msg_args={"id": self.id}) for filename in files: if backup.check_if_save_requires_superuser([filename]): procutils.sudo_rm(filename, self._get_sudo_password(), logger) else: if os.path.isdir(filename): shutil.rmtree(filename) else: os.remove(filename)
def backup(self, backup_to_directory, compress=True): backup_location = self._get_backup_location(backup_to_directory, self.id, compress) logger.debug("Saving resource %s files to %s" % (self.id, backup_location)) files = self._get_backup_file_list() if len(files) == 0: raise UserError(errors[ERR_BACKUP_FILE_LIST_EMPTY], msg_args={"id": self.id}) try: if os.geteuid() != 0 and backup.check_if_save_requires_superuser(files): logger.info("Running backup via sudo for resource %s" % self.id) backup.save_as_sudo_subprocess(files, backup_location, self._get_sudo_password(), move=False) else: backup.save(files, backup_location, move=False) except: exc_info = (exc_tp, exc_v, ecx_tb) = sys.exc_info() raise convert_exc_to_user_error( exc_info, errors[EXC_IN_BACKUP_CALL], msg_args={"id": self.id, "file": backup_location, "exc_typ": exc_tp.__name__, "exc_val": exc_v}, )