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
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
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
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
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
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