Example #1
0
    def run(self):
        repo = self.get_repo()

        task = AsyncTask(self.api.last_sync_status(repo["id"]))

        if task.is_running():
            pkgsTotal = task.total_count()
            pkgsLeft = task.items_left()
            repo["progress"] = "%(task_progress)d%% done (%(pkgs_count)d of %(pkgs_total)d packages downloaded)" % {
                "task_progress": task.get_progress() * 100,
                "pkgs_count": pkgsTotal - pkgsLeft,
                "pkgs_total": pkgsTotal,
            }

        repo["last_errors"] = format_sync_errors(task)

        self.printer.add_column("package_count", _("Package Count"))
        self.printer.add_column("last_sync", _("Last Sync"), formatter=format_sync_time)
        self.printer.add_column("sync_state", _("Sync State"), formatter=format_sync_state)
        if "next_scheduled_sync" in repo:
            self.printer.add_column("next_scheduled_sync", _("Next Scheduled Sync"), formatter=format_sync_time)
        self.printer.add_column("progress", _("Progress"), show_with=printer.VerboseStrategy)
        self.printer.add_column("last_errors", _("Last Errors"), multiline=True, show_with=printer.VerboseStrategy)

        self.printer.set_header(_("Repository Status"))
        self.printer.print_item(repo)
        return os.EX_OK
Example #2
0
def evaluate_task_status(task, failed="", canceled="", ok=""):
    """
    Test task status and print the corresponding message

    :type task: AsyncTask
    :type failed: string
    :param failed: message that is printed when the task failed
    :type canceled: string
    :param canceled:  message that is printed when the task was cancelled
    :type ok: string
    :param ok:  message that is printed when the task went ok
    :return: EX_DATAERR on failure or cancel, otherwise EX_OK
    """

    if task.failed():
        print failed + ":" + format_sync_errors(task)
        return os.EX_DATAERR
    elif task.canceled():
        print canceled
        return os.EX_DATAERR
    else:
        if "status_messages" in dir(task):
            print ok + ":" + format_sync_status(task)
        else:
            print ok
        return os.EX_OK
Example #3
0
    def run(self):
        repo = self.get_repo()

        task = AsyncTask(self.api.sync(repo['id']))
        run_async_task_with_status(task, ProgressBar())

        if task.succeeded():
            print _("Repo [ %s ] synced" % repo['name'])
            return os.EX_OK
        elif task.cancelled():
            print _("Repo [ %s ] synchronization canceled" % repo['name'])
            return os.EX_OK
        else:
            print _("Repo [ %(repo_name)s ] failed to sync: %(sync_errors)s") \
                % {'repo_name':repo['name'], 'sync_errors':format_sync_errors(task)}
            return os.EX_DATAERR
Example #4
0
    def sync_provider(self, providerName, orgName):
        prov = get_provider(orgName, providerName)

        task = AsyncTask(self.api.sync(prov["id"]))
        run_async_task_with_status(task, ProgressBar())

        if task.failed():
            errors = format_sync_errors(task)
            print _(
                "Provider [ %(providerName)s ] failed to sync: %(errors)s"
                % {"providerName": providerName, "errors": errors}
            )
            return os.EX_DATAERR
        elif task.cancelled():
            print _("Provider [ %s ] synchronization canceled" % providerName)
            return os.EX_DATAERR

        print _("Provider [ %s ] synchronized" % providerName)
        return os.EX_OK
Example #5
0
    def run(self):
        repo = self.get_repo()

        task = AsyncTask(self.api.last_sync_status(repo['id']))

        if task.is_running():
            pkgsTotal = task.total_count()
            pkgsLeft = task.items_left()
            repo['progress'] = ("%(task_progress)d%% done (%(pkgs_count)d of %(pkgs_total)d packages downloaded)" %
                {'task_progress':task.get_progress()*100, 'pkgs_count':pkgsTotal-pkgsLeft, 'pkgs_total':pkgsTotal})

        repo['last_errors'] = format_sync_errors(task)

        self.printer.add_column('package_count', _("Package Count"))
        self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time)
        self.printer.add_column('sync_state', _("Sync State"), formatter=format_sync_state)
        if 'next_scheduled_sync' in repo:
            self.printer.add_column('next_scheduled_sync', _("Next Scheduled Sync"), formatter=format_sync_time)
        self.printer.add_column('progress', _("Progress"), show_with=printer.VerboseStrategy)
        self.printer.add_column('last_errors', _("Last Errors"), multiline=True, show_with=printer.VerboseStrategy)

        self.printer.set_header(_("Repository Status"))
        self.printer.print_item(repo)
        return os.EX_OK
Example #6
0
    def run(self):
        repo = self.get_repo()

        task = AsyncTask(self.api.last_sync_status(repo['id']))

        if task.is_running():
            pkgsTotal = task.total_count()
            pkgsLeft = task.items_left()
            repo['progress'] = ("%(task_progress)d%% done (%(pkgs_count)d of %(pkgs_total)d packages downloaded)" %
                {'task_progress':task.get_progress()*100, 'pkgs_count':pkgsTotal-pkgsLeft, 'pkgs_total':pkgsTotal})

        repo['last_errors'] = format_sync_errors(task)

        self.printer.add_column('package_count', _("Package Count"))
        self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time)
        self.printer.add_column('sync_state', _("Sync State"), formatter=format_sync_state)
        if 'next_scheduled_sync' in repo:
            self.printer.add_column('next_scheduled_sync', _("Next Scheduled Sync"), formatter=format_sync_time)
        self.printer.add_column('progress', _("Progress"), show_with=printer.VerboseStrategy)
        self.printer.add_column('last_errors', _("Last Errors"), multiline=True, show_with=printer.VerboseStrategy)

        self.printer.set_header(_("Repository Status"))
        self.printer.print_item(repo)
        return os.EX_OK