コード例 #1
0
 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)
コード例 #2
0
 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},
         )