def run(self): org_name = self.get_option('org') env_name = self.get_option('environment') prov_name = self.get_option('prov') all_opt = self.get_option('all') self.printer.add_column('id') self.printer.add_column('name') self.printer.add_column('label') self.printer.add_column('provider_id') self.printer.add_column('provider_name') self.printer.add_column('sync_plan_name') self.printer.add_column('last_sync', formatter=format_sync_time) self.printer.add_column('gpg_key_name', name=_("GPG key")) if prov_name: prov = get_provider(org_name, prov_name) self.printer.set_header(_("Product List For Provider %s") % (prov_name)) prods = self.api.products_by_provider(prov["id"]) else: env = get_environment(org_name, env_name) self.printer.set_header(_("Product List For Organization %s, Environment '%s'") % (org_name, env["name"])) prods = self.api.products_by_env(env['id']) # hide marketing products by default if not all_opt: def isNotMarketingProduct(p): return not (("marketing_product" in p) and (p["marketing_product"])) prods = filter(isNotMarketingProduct, prods) self.printer.print_items(prods) 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): org_name = self.get_option('org') env_name = self.get_option('environment') prov_name = self.get_option('prov') all_opt = self.get_option('all') batch_add_columns(self.printer, {'id': _("ID")}, {'name': _("Name")}, \ {'label': _("Label")}, {'provider_id': _("Provider ID")}, \ {'provider_name': _("Provider Name")}, {'sync_plan_name': _("Sync Plan Name")}) self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time) self.printer.add_column('gpg_key_name', _("GPG key")) if prov_name: prov = get_provider(org_name, prov_name) self.printer.set_header(_("Product List For Provider [ %s ]") % (prov_name)) prods = self.api.products_by_provider(prov["id"]) else: env = get_environment(org_name, env_name) self.printer.set_header(_("Product List For Organization %(org_name)s, Environment '%(env_name)s'") \ % {'org_name':org_name, 'env_name':env["name"]}) prods = self.api.products_by_env(env['id']) # hide marketing products by default if not all_opt: def isNotMarketingProduct(p): return not (("marketing_product" in p) and (p["marketing_product"])) prods = filter(isNotMarketingProduct, prods) self.printer.print_items(prods) 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'] = (_("%(task_progress)d%% done (%(pkgsCount)d of %(pkgsTotal)d packages downloaded)") % \ {'task_progress':task.get_progress()*100, 'pkgsCount':pkgsTotal-pkgsLeft, 'pkgsTotal':pkgsTotal}) #TODO: last errors? self.printer.add_column('id', _("ID")) self.printer.add_column('name', _("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(_("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) task = AsyncTask(self.api.last_sync_status(prov["id"])) if task.is_running(): pkgsTotal = task.total_count() pkgsLeft = task.items_left() prov["progress"] = _("%(task_progress)d%% done (%(pkgsCount)d of %(pkgsTotal)d packages downloaded)") % { "task_progress": task.get_progress() * 100, "pkgsCount": pkgsTotal - pkgsLeft, "pkgsTotal": pkgsTotal, } # TODO: last errors? self.printer.add_column("id", _("ID")) self.printer.add_column("name", _("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(_("Provider Status")) self.printer.print_item(prov) return os.EX_OK
def run(self): provName = self.get_option("name") orgName = self.get_option("org") manifestPath = self.get_option("file") force = self.get_option("force") try: f = open(get_abs_path(manifestPath)) except IOError: system_exit(os.EX_IOERR, _("File %s does not exist") % manifestPath) prov = get_provider(orgName, provName) try: response = run_spinner_in_bg( self.api.import_manifest, (prov["id"], f, force), message=_("Importing manifest, please wait... ") ) except ServerRequestError, re: if ( re.args[0] == 400 and "displayMessage" in re.args[1] and re.args[1]["displayMessage"] == "Import is older than existing data" ): re.args[1]["displayMessage"] = ( "Import is older than existing data," + " please try with --force option to import manifest." ) raise re, None, sys.exc_info()[2]
def run(self): org_name = self.get_option('org') env_name = self.get_option('env') prov_name = self.get_option('prov') 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('sync_plan_name') self.printer.add_column('last_sync', formatter=format_date) self.printer.add_column('gpg_key_name', name=_("GPG key")) if prov_name: prov = get_provider(org_name, prov_name) if prov == None: return os.EX_DATAERR self.printer.set_header(_("Product List For Provider %s") % (prov_name)) prods = self.api.products_by_provider(prov["id"]) else: env = get_environment(org_name, env_name) if env == None: return os.EX_DATAERR self.printer.set_header(_("Product List For Organization %s, Environment '%s'") % (org_name, env["name"])) prods = self.api.products_by_env(env['id']) self.printer.print_items(prods) return os.EX_OK
def run(self): org_name = self.get_option('org') prov_name = self.get_option('prov') all_opt = self.get_option('all') batch_add_columns(self.printer, {'id': _("ID")}, {'name': _("Name")}, \ {'label': _("Label")}, {'provider_id': _("Provider ID")}, \ {'provider_name': _("Provider Name")}, {'sync_plan_name': _("Sync Plan Name")}) self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time) self.printer.add_column('gpg_key_name', _("GPG key")) if prov_name: prov = get_provider(org_name, prov_name) self.printer.set_header(_("Product List For Provider [ %s ]") % (prov_name)) prods = self.api.products_by_provider(prov["id"], marketing=all_opt) else: self.printer.set_header(_("Product List For Organization %(org_name)s") \ % {'org_name':org_name}) prods = self.api.products_by_org(org_name, None, all_opt) self.printer.print_items(prods) 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): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) self.api.refresh_products(prov["id"]) print _("Provider successfully refreshed [ %s ]") % prov['name'] return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) msg = self.api.delete(prov["id"]) print msg return os.EX_OK
def update(self, name, orgName, newName, description, url): prov = get_provider(orgName, name) if prov != None: prov = self.api.update(prov["id"], newName, description, url) print _("Successfully updated provider [ %s ]") % prov['name'] return True else: return False
def run(self): provName = self.get_option("name") orgName = self.get_option("org") prov = get_provider(orgName, provName) msg = self.api.cancel_sync(prov["id"]) print msg 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: msg = self.api.delete(prov["id"]) print msg return os.EX_OK else: return os.EX_DATAERR
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) try: response = run_spinner_in_bg(self.api.delete_manifest, [prov["id"]], message=_("Deleting manifest, please wait... ")) except ServerRequestError, re: raise re, None, sys.exc_info()[2]
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()) return evaluate_task_status(task, failed = _("Provider [ %s ] failed to sync") % providerName, canceled = _("Provider [ %s ] synchronization canceled") % providerName, ok = _("Provider [ %s ] synchronized") % providerName )
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 msg = self.api.cancel_sync(prov["id"]) print msg return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) try: response = run_spinner_in_bg( self.api.delete_manifest, [prov["id"]], message=_("Deleting manifest, please wait... ")) except ServerRequestError, re: raise re, None, sys.exc_info()[2]
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()) return evaluate_task_status( task, failed=_("Provider [ %s ] failed to sync") % providerName, canceled=_("Provider [ %s ] synchronization canceled") % providerName, ok=_("Provider [ %s ] synchronized") % providerName)
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) task = ManifestAsyncTask(self.api.refresh_manifest(prov["id"])) run_spinner_in_bg(wait_for_async_task, [task], message=_("Refreshing manifest, please wait... ")) return ManifestAsyncTask.evaluate_task_status(task, failed = _("Provider [ %s ] failed to refresh manifest") % provName, canceled = _("Provider [ %s ] canceled manifest refresh") % provName, ok = _("Provider [ %s ] manifest refresh complete") % provName )
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) task = ManifestAsyncTask(self.api.refresh_manifest(prov["id"])) run_spinner_in_bg(wait_for_async_task, [task], message=_("Refreshing manifest, please wait... ")) return ManifestAsyncTask.evaluate_task_status( task, failed=_("Provider [ %s ] failed to refresh manifest") % provName, canceled=_("Provider [ %s ] canceled manifest refresh") % provName, ok=_("Provider [ %s ] manifest refresh complete") % provName)
def run(self): provName = self.get_option("name") orgName = self.get_option("org") prov = get_provider(orgName, provName) self.printer.add_column("id", _("ID")) self.printer.add_column("name", _("Name")) self.printer.add_column("provider_type", _("Type")) self.printer.add_column("repository_url", _("URL")) self.printer.add_column("organization_id", _("Org ID")) self.printer.add_column("description", _("Description"), multiline=True) self.printer.set_header(_("Provider Information")) self.printer.print_item(prov) 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 canceled" % providerName) return os.EX_DATAERR print _("Provider [ %s ] synchronized" % providerName) return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) self.printer.add_column('id') self.printer.add_column('name') self.printer.add_column('provider_type', 'Type') self.printer.add_column('repository_url', 'Url') self.printer.add_column('organization_id', 'Org Id') self.printer.add_column('description', multiline=True) self.printer.set_header(_("Provider Information")) 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) self.printer.add_column('id', _("ID")) self.printer.add_column('name', _("Name")) self.printer.add_column('provider_type', _("Type")) self.printer.add_column('repository_url', _("URL")) self.printer.add_column('organization_id', _("Org ID")) self.printer.add_column('description', _("Description"), multiline=True) self.printer.set_header(_("Provider Information")) self.printer.print_item(prov) return os.EX_OK
def create_product_with_repos(self, provName, orgName, name, description, url, assumeyes, nodiscovery, gpgkey): prov = get_provider(orgName, provName) prod = self.api.create(prov["id"], name, description, gpgkey) print _("Successfully created product [ %s ]") % name if url == None: return os.EX_OK if not nodiscovery: repourls = self.discoverRepos.discover_repositories(orgName, url) self.printer.set_header(_("Repository Urls discovered @ [%s]" % url)) selectedurls = self.discoverRepos.select_repositories(repourls, assumeyes) self.discoverRepos.create_repositories(orgName, prod["id"], prod["name"], selectedurls) 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): provName = self.get_option('name') orgName = self.get_option('org') prov = get_provider(orgName, provName) if prov != None: self.printer.addColumn('id') self.printer.addColumn('name') self.printer.addColumn('provider_type', 'Type') self.printer.addColumn('repository_url', 'Url') self.printer.addColumn('organization_id', 'Org Id') self.printer.addColumn('description', multiline=True) self.printer.setHeader(_("Provider Information")) self.printer.printItem(prov) return os.EX_OK else: return os.EX_DATAERR
def run(self): provName = self.get_option('name') orgName = self.get_option('org') manifestPath = self.get_option('file') force = self.get_option('force') try: f = open(get_abs_path(manifestPath)) except: system_exit(os.EX_IOERR, _("File %s does not exist" % manifestPath)) prov = get_provider(orgName, provName) try: response = run_spinner_in_bg(self.api.import_manifest, (prov["id"], f, force), message=_("Importing manifest, please wait... ")) except ServerRequestError, re: if re.args[0] == 400 and "displayMessage" in re.args[1] and re.args[1]["displayMessage"] == "Import is older than existing data": re.args[1]["displayMessage"] = "Import is older then existing data, please try with --force option to import manifest." raise re
def run(self): name = self.get_option('name') label = self.get_option('label') url = self.get_option('url') assumeyes = self.get_option('assumeyes') providerName = self.get_option('provider') prodName = self.get_option('product') prodLabel = self.get_option('product_label') prodId = self.get_option('product_id') orgName = self.get_option('org') prov_id = get_provider(orgName, providerName)['id'] repourls = self.discover_repositories(prov_id, url) self.printer.set_header(_("Repository Urls discovered @ [%s]" % url)) selectedurls = self.select_repositories(repourls, assumeyes) product = get_product(orgName, prodName, prodLabel, prodId) self.create_repositories(orgName, product["id"], name, label, selectedurls) return os.EX_OK
def run(self): name = self.get_option('name') label = self.get_option('label') url = self.get_option('url') assumeyes = self.get_option('assumeyes') providerName = self.get_option('provider') prodName = self.get_option('product') prodLabel = self.get_option('product_label') prodId = self.get_option('product_id') orgName = self.get_option('org') unprotected = self.get_option('unprotected') prov_id = get_provider(orgName, providerName)['id'] repourls = self.discover_repositories(prov_id, url) self.printer.set_header(_("Repository Urls discovered @ [%s]" % url)) selectedurls = self.select_repositories(repourls, assumeyes) product = get_product(orgName, prodName, prodLabel, prodId) self.create_repositories(orgName, product["id"], name, label, selectedurls, unprotected) return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') manifestPath = self.get_option('file') force = self.get_option('force') try: f = open(get_abs_path(manifestPath)) except IOError: system_exit(os.EX_IOERR, _("File %s does not exist") % manifestPath) prov = get_provider(orgName, provName) task = ManifestAsyncTask(self.api.import_manifest(prov["id"], f, force)) run_spinner_in_bg(wait_for_async_task, [task], message=_("Importing manifest, please wait... ")) return ManifestAsyncTask.evaluate_task_status(task, failed = _("Provider [ %s ] failed to import manifest") % provName, canceled = _("Provider [ %s ] canceled manifest import") % provName, ok = _("Provider [ %s ] manifest import complete") % provName )
def run(self): name = self.get_option("name") label = self.get_option("label") url = self.get_option("url") assumeyes = self.get_option("assumeyes") providerName = self.get_option("provider") prodName = self.get_option("product") prodLabel = self.get_option("product_label") prodId = self.get_option("product_id") orgName = self.get_option("org") unprotected = self.get_option("unprotected") prov_id = get_provider(orgName, providerName)["id"] repourls = self.discover_repositories(prov_id, url) self.printer.set_header(_("Repository Urls discovered @ [%s]" % url)) selectedurls = self.select_repositories(repourls, assumeyes) product = get_product(orgName, prodName, prodLabel, prodId) self.create_repositories(orgName, product["id"], name, label, selectedurls, unprotected) return os.EX_OK
def run(self): org_name = self.get_option('org') env_name = self.get_option('env') prov_name = self.get_option('prov') all = self.get_option('all') 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('sync_plan_name') self.printer.add_column('last_sync', formatter=format_sync_time) self.printer.add_column('gpg_key_name', name=_("GPG key")) if prov_name: prov = get_provider(org_name, prov_name) self.printer.set_header(_("Product List For Provider %s") % (prov_name)) prods = self.api.products_by_provider(prov["id"]) else: env = get_environment(org_name, env_name) self.printer.set_header(_("Product List For Organization %s, Environment '%s'") % (org_name, env["name"])) prods = self.api.products_by_env(env['id']) # hide marketing products by default if not all: def isMarketingProduct(p): try: return not p["marketing_product"] except: return True prods = filter(isMarketingProduct, prods) self.printer.print_items(prods) return os.EX_OK
def run(self): provName = self.get_option('name') orgName = self.get_option('org') manifestPath = self.get_option('file') force = self.get_option('force') try: f = open(get_abs_path(manifestPath)) except IOError: system_exit(os.EX_IOERR, _("File %s does not exist") % manifestPath) prov = get_provider(orgName, provName) task = ManifestAsyncTask(self.api.import_manifest( prov["id"], f, force)) run_spinner_in_bg(wait_for_async_task, [task], message=_("Importing manifest, please wait... ")) return ManifestAsyncTask.evaluate_task_status( task, failed=_("Provider [ %s ] failed to import manifest") % provName, canceled=_("Provider [ %s ] canceled manifest import") % provName, ok=_("Provider [ %s ] manifest import complete") % provName)
def run(self): provName = self.get_option('name') orgName = self.get_option('org') manifestPath = self.get_option('file') force = self.get_option('force') try: f = open(get_abs_path(manifestPath)) except: system_exit(os.EX_IOERR, _("File %s does not exist" % manifestPath)) prov = get_provider(orgName, provName) try: response = run_spinner_in_bg( self.api.import_manifest, (prov["id"], f, force), message=_("Importing manifest, please wait... ")) except ServerRequestError, re: if re.args[0] == 400 and "displayMessage" in re.args[1] and re.args[ 1]["displayMessage"] == "Import is older than existing data": re.args[1][ "displayMessage"] = "Import is older then existing data, please try with --force option to import manifest." raise re
def update(self, name, orgName, newName, description, url): prov = get_provider(orgName, name) prov = self.api.update(prov["id"], newName, description, url) system_exit(os.EX_OK, _("Successfully updated provider [ %s ]") % prov['name'])