def clean_catch(self):
     path = self.get_catch_path()
     data_path = path + "cache.dat"
     print data_path
     try:
         db = SqliteHelper(data_path)
         db.execute("delete from files")
         db.close()
     except Exception as e:
         LogHelper.warn("WARN:Cache is Empty, ignoring")
         LogHelper.warn(e.message)
def step_impl(context):
    LinuxGUIClient.backupset_cmd.clear_backup_set()
    root_path = ConfigAdapter.get_testdata_path()
    for row in context.table:
        paths = []
        excludes = []
        filenames = []
        exclude_filenames = []
        filetypes = []
        exclude_filetypes = []

        backupset_name = row.get('name') or 'default_backupset'
        raw_paths = row.get('paths') or ''
        raw_excludes = row.get('excludes') or ''
        exclusionary = row.get('exclusionary') or 'False'

        raw_filenames = row.get('filenames')  # filenames rule
        raw_exclude_filenames = row.get('exclude_filenames')
        raw_filetypes = row.get('filetypes')
        raw_exclude_filetypes = row.get('exclude_filetypes')

        for relative_path in re.split(r",|;|:", raw_paths):
            paths.append(
                os.path.join(root_path,
                             relative_path.strip().lstrip()))

        if raw_excludes:
            for relative_path in re.split(r",|;|:", raw_excludes):
                excludes.append(
                    os.path.join(root_path,
                                 relative_path.strip().lstrip()))

        if raw_filenames:
            for each_filename in re.split(r",|;|:", raw_filenames):
                filenames.append(each_filename)

        if raw_exclude_filenames:
            for each_exclude_filename in re.split(r",|;|:",
                                                  raw_exclude_filenames):
                exclude_filenames.append(each_exclude_filename)

        if raw_filetypes:
            for each_filetype in re.split(r",|;|:", raw_filetypes):
                filetypes.append(each_filetype)

        if raw_exclude_filetypes:
            for each_exclude_filetype in re.split(r",|;|:",
                                                  raw_exclude_filetypes):
                exclude_filetypes.append(each_exclude_filetype)

        LogHelper.info("add backupset {name} {paths} {excludes}".format(
            name=backupset_name, paths=paths, excludes=excludes))

        bs = Backupset(name=backupset_name,
                       paths=paths,
                       excludes=excludes,
                       exclusionary=exclusionary,
                       filenames=filenames,
                       exclude_filenames=exclude_filenames,
                       filetypes=filetypes,
                       exclude_filetypes=exclude_filetypes)

        bs.generate_json_file(filename=backupset_name)

    if LinuxGUIClient.continuous_cmd.get_mode(
    ) == LinuxGUIClient.continuous_cmd.ON_DEMAND:
        LogHelper.info("refresh backupset for on-demand mode")
        re_try = 3
        while re_try > 0:
            output = LinuxGUIClient.backupset_cmd.refresh()
            LogHelper.info(output)
            if output.upper().find("SUCCEED") == -1:
                LogHelper.warn("Refresh looks failed")
                LogHelper.debug("re-try refresh after 5 seconds")
                time.sleep(5)
                re_try -= 1
            else:
                LogHelper.info("Refresh success")
                break