def run(self): orgName = self.get_option('org') prodName = self.get_option('name') envName = self.get_option('env') env = get_environment(orgName, envName) prod = get_product(orgName, prodName) returnCode = os.EX_OK cset = self.csapi.create(orgName, env["id"], self.create_cs_name()) try: self.csapi.add_content(cset["id"], "products", {'product_id': prod['id']}) task = self.csapi.promote(cset["id"]) task = AsyncTask(task) run_spinner_in_bg(wait_for_async_task, [task], message=_("Promoting the product, please wait... ")) if task.succeeded(): print _("Product [ %s ] promoted to environment [ %s ] " % (prodName, envName)) returnCode = os.EX_OK else: print _("Product [ %s ] promotion failed: %s" % (prodName, format_task_errors(task.errors())) ) returnCode = os.EX_DATAERR except Exception as e: #exception message is printed from action's main method raise e return returnCode
def run(self): repo = self.get_repo() task = AsyncTask(self.api.last_sync_status(repo['id'])) repo['last_sync'] = format_sync_time(repo['last_sync']) repo['sync_state'] = format_sync_state(repo['sync_state']) if 'next_scheduled_sync' in repo: repo['next_scheduled_sync'] = format_sync_time(repo['next_scheduled_sync']) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() repo['progress'] = ("%d%% done (%d of %d packages downloaded)" % (task.get_progress()*100, pkgsTotal-pkgsLeft, pkgsTotal)) repo['last_errors'] = format_sync_errors(task) self.printer.addColumn('package_count') self.printer.addColumn('last_sync') self.printer.addColumn('sync_state') if 'next_scheduled_sync' in repo: self.printer.addColumn('next_scheduled_sync') self.printer.addColumn('progress', show_in_grep=False) self.printer.addColumn('last_errors', multiline=True, show_in_grep=False) self.printer.setHeader(_("Repository Status")) self.printer.printItem(repo) return os.EX_OK
def run(self): provName = self.get_option("name") orgName = self.get_option("org") prov = get_provider(orgName, provName) task = AsyncTask(self.api.last_sync_status(prov["id"])) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prov["progress"] = _("%d%% done (%d of %d packages downloaded)") % ( task.get_progress() * 100, pkgsTotal - pkgsLeft, pkgsTotal, ) # TODO: last errors? self.printer.add_column("id") self.printer.add_column("name") self.printer.add_column("last_sync", formatter=format_sync_time) self.printer.add_column("sync_state", formatter=format_sync_state) self.printer.add_column("progress", show_with=printer.VerboseStrategy) self.printer.set_header(_("Provider Status")) self.printer.print_item(prov) return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) if prov == None: return os.EX_DATAERR task = AsyncTask(self.api.last_sync_status(prov['id'])) prov['last_sync'] = format_sync_time(prov['last_sync']) prov['sync_state'] = format_sync_state(prov['sync_state']) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prov['progress'] = ("%d%% done (%d of %d packages downloaded)" % (task.get_progress()*100, pkgsTotal-pkgsLeft, pkgsTotal)) #TODO: last errors? self.printer.addColumn('id') self.printer.addColumn('name') self.printer.addColumn('last_sync') self.printer.addColumn('sync_state') self.printer.addColumn('progress', show_in_grep=False) self.printer.setHeader(_("Provider Status")) self.printer.printItem(prov) return os.EX_OK
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') prod = get_product(orgName, prodName) if (prod == None): return os.EX_DATAERR task = AsyncTask(self.api.last_sync_status(orgName, prod['id'])) prod['last_sync'] = format_sync_time(prod['last_sync']) prod['sync_state'] = format_sync_state(prod['sync_state']) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prod['progress'] = ("%d%% done (%d of %d packages downloaded)" % (task.get_progress()*100, pkgsTotal-pkgsLeft, pkgsTotal)) #TODO: last errors? self.printer.add_column('id') self.printer.add_column('name') self.printer.add_column('provider_id') self.printer.add_column('provider_name') self.printer.add_column('last_sync') self.printer.add_column('sync_state') self.printer.add_column('progress', show_with=printer.VerboseStrategy) self.printer.set_header(_("Product Status")) self.printer.print_item(prod) return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) task = AsyncTask(self.api.last_sync_status(prov['id'])) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prov['progress'] = (_("%d%% done (%d of %d packages downloaded)") % \ (task.get_progress()*100, pkgsTotal-pkgsLeft, pkgsTotal)) #TODO: last errors? self.printer.add_column('id') self.printer.add_column('name') self.printer.add_column('last_sync', formatter=format_sync_time) self.printer.add_column('sync_state', formatter=format_sync_state) self.printer.add_column('progress', show_with=printer.VerboseStrategy) self.printer.set_header(_("Provider Status")) self.printer.print_item(prov) return os.EX_OK
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') prodLabel = self.get_option('label') prodId = self.get_option('id') envName = self.get_option('environment') env = get_environment(orgName, envName) prod = get_product(orgName, prodName, prodLabel, prodId) returnCode = os.EX_OK cset = self.csapi.create(orgName, env["id"], self.create_cs_name(), constants.PROMOTION) try: self.csapi.add_content(cset["id"], "products", {'product_id': prod['id']}) task = self.csapi.apply(cset["id"]) task = AsyncTask(task) run_spinner_in_bg(wait_for_async_task, [task], message=_("Promoting the product, please wait... ")) if task.succeeded(): print _("Product [ %(prod_name)s ] promoted to environment [ %(envName)s ] " \ % {'prod_name':prod["name"], 'envName':envName}) returnCode = os.EX_OK else: print _("Product [ %(prod_name)s ] promotion failed: %(task_errors)s" \ % {'prod_name':prod["name"], 'task_errors':format_task_errors(task.errors())} ) returnCode = os.EX_DATAERR except Exception: #exception message is printed from action's main method raise return returnCode
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.last_sync_status(orgName, prod['id'])) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prod['progress'] = ("%d%% done (%d of %d packages downloaded)" % (task.get_progress()*100, pkgsTotal-pkgsLeft, pkgsTotal)) #TODO: last errors? batch_add_columns(self.printer, {'id': _("ID")}, {'name': _("Name")}, \ {'provider_id': _("Provider ID")}, {'provider_name': _("Provider Name")}) self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time) self.printer.add_column('sync_state', _("Sync State"), formatter=format_sync_state) self.printer.add_column('progress', _("Progress"), show_with=printer.VerboseStrategy) self.printer.set_header(_("Product Status")) self.printer.print_item(prod) return os.EX_OK
def run(self): name = self.get_option('name') task = self.api.delete(name) task = AsyncTask(task) run_spinner_in_bg(wait_for_async_task, [task], message=_("Deleting the organization, please wait... ")) if task.succeeded(): print _("Successfully deleted org [ %s ]") % name return os.EX_OK else: print _("Organization [ %s ] deletion failed: %s" % (name, format_task_errors(task.errors())) ) return os.EX_DATAERR
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 cancelled" % repo['name']) return os.EX_OK else: print _("Repo [ %s ] failed to sync: %s" % (repo['name'], 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 [ %s ] failed to sync: %s" % (providerName, 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 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 [ %s ] failed to sync: %s" % (providerName, errors)) return os.EX_DATAERR elif task.cancelled(): print _("Provider [ %s ] synchronization cancelled" % providerName) return os.EX_DATAERR print _("Provider [ %s ] synchronized" % providerName) return os.EX_OK
def run(self): name = self.get_option('name') task = self.api.delete(name) task = AsyncTask(task) run_spinner_in_bg( wait_for_async_task, [task], message=_("Deleting the organization, please wait... ")) if task.succeeded(): print _("Successfully deleted org [ %s ]") % name return os.EX_OK else: print _("Organization [ %s ] deletion failed: %s" % (name, format_task_errors(task.errors()))) return os.EX_DATAERR
def run(self): csName = self.get_option('name') orgName = self.get_option('org') envName = self.get_option('env') cset = get_changeset(orgName, envName, csName) task = self.api.promote(cset["id"]) task = AsyncTask(task) run_spinner_in_bg(wait_for_async_task, [task], message=_("Promoting the changeset, please wait... ")) if task.succeeded(): print _("Changeset [ %s ] promoted" % csName) return os.EX_OK else: print _("Changeset [ %s ] promotion failed: %s" % (csName, format_task_errors(task.errors()))) return os.EX_DATAERR
def run(self): csName = self.get_option('name') orgName = self.get_option('org') envName = self.get_option('environment') cset = get_changeset(orgName, envName, csName) task = self.api.apply(cset["id"]) task = AsyncTask(task) run_spinner_in_bg(wait_for_async_task, [task], message=_("Applying the changeset, please wait... ")) if task.succeeded(): print _("Changeset [ %s ] applied" % csName) return os.EX_OK else: print _("Changeset [ %(csName)s ] promotion failed: %(task_errors)s" \ % {'csName':csName, 'task_errors':format_task_errors(task.errors())}) return os.EX_DATAERR
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') prod = get_product(orgName, prodName) 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 [ %s ] failed to sync: %s" % (prodName, errors)) return os.EX_DATAERR elif task.cancelled(): print _("Product [ %s ] synchronization cancelled" % prodName) return os.EX_DATAERR print _("Product [ %s ] synchronized" % prodName) return os.EX_OK
def run(self): csName = self.get_option('name') orgName = self.get_option('org') envName = self.get_option('env') cset = get_changeset(orgName, envName, csName) task = self.api.promote(cset["id"]) task = AsyncTask(task) run_spinner_in_bg( wait_for_async_task, [task], message=_("Promoting the changeset, please wait... ")) if task.succeeded(): print _("Changeset [ %s ] promoted" % csName) return os.EX_OK else: print _("Changeset [ %s ] promotion failed: %s" % (csName, format_task_errors(task.errors()))) return os.EX_DATAERR
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) task = AsyncTask(self.api.last_sync_status(prov['id'])) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prov['progress'] = ( _("%d%% done (%d of %d packages downloaded)") % (task.get_progress() * 100, pkgsTotal - pkgsLeft, pkgsTotal)) #TODO: last errors? self.printer.add_column('id') self.printer.add_column('name') self.printer.add_column('last_sync', formatter=format_sync_time) self.printer.add_column('sync_state', formatter=format_sync_state) self.printer.add_column('progress', show_with=printer.VerboseStrategy) self.printer.set_header(_("Provider Status")) self.printer.print_item(prov) 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'] = ("%d%% done (%d of %d packages downloaded)" % (task.get_progress()*100, pkgsTotal-pkgsLeft, pkgsTotal)) repo['last_errors'] = format_sync_errors(task) self.printer.add_column('package_count') self.printer.add_column('last_sync', formatter=format_sync_time) self.printer.add_column('sync_state', formatter=format_sync_state) if 'next_scheduled_sync' in repo: self.printer.add_column('next_scheduled_sync', formatter=format_sync_time) self.printer.add_column('progress', show_with=printer.VerboseStrategy) self.printer.add_column('last_errors', multiline=True, show_with=printer.VerboseStrategy) self.printer.set_header(_("Repository Status")) self.printer.print_item(repo) return os.EX_OK