示例#1
0
def wait_for_async_task(task, delay=1):
    if not isinstance(task, AsyncTask):
        task = AsyncTask(task)

    while task.is_running():
        time.sleep(delay)
        task.update()
    return task.get_hashes()
示例#2
0
def wait_for_async_task(task, delay=1):
    if not isinstance(task, AsyncTask):
        task = AsyncTask(task)

    while task.is_running():
        time.sleep(delay)
        task.update()
    return task.get_hashes()
示例#3
0
def run_async_task_with_status(task, progress_bar, delay=1):
    if not isinstance(task, AsyncTask):
        task = AsyncTask(task)

    while task.is_running():
        time.sleep(delay)
        task.update()
        progress_bar.update_progress(task.get_progress())

    progress_bar.done()
    return task.get_hashes()
示例#4
0
def run_async_task_with_status(task, progress_bar, delay=1):
    if not isinstance(task, AsyncTask):
        task = AsyncTask(task)

    while task.is_running():
        time.sleep(delay)
        task.update()
        progress_bar.update_progress(task.get_progress())

    progress_bar.done()
    return task.get_hashes()
示例#5
0
    def run(self):
        orgName     = self.get_option('org')
        prodName    = self.get_option('name')
        prodLabel   = self.get_option('label')
        prodId      = self.get_option('id')

        prod = get_product(orgName, prodName, prodLabel, prodId)

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

        if task.failed():
            errors = [t["result"]['errors'][0] for t in task.get_hashes() if t['state'] == 'error' and
                                                                             isinstance(t["result"], dict) and
                                                                             "errors" in t["result"]]
            print _("Product [ %(prod_name)s ] failed to sync: %(errors)s" \
                % {'prod_name':prod["name"], 'errors':errors})
            return os.EX_DATAERR
        elif task.cancelled():
            print _("Product [ %s ] synchronization canceled" % prod["name"])
            return os.EX_DATAERR

        print _("Product [ %s ] synchronized" % prod["name"])
        return os.EX_OK