def run(self): orgName = self.get_option('org') envName = self.get_option('env') prodName = self.get_option('product') listDisabled = self.has_option('disabled') self.printer.add_column('id') self.printer.add_column('name') self.printer.add_column('package_count') self.printer.add_column('last_sync', formatter=format_sync_time) if prodName and envName: env = get_environment(orgName, envName) prod = get_product(orgName, prodName) self.printer.set_header(_("Repo List For Org %s Environment %s Product %s") % (orgName, env["name"], prodName)) repos = self.api.repos_by_env_product(env["id"], prod["id"], None, listDisabled) self.printer.print_items(repos) elif prodName: prod = get_product(orgName, prodName) self.printer.set_header(_("Repo List for Product %s in Org %s ") % (prodName, orgName)) repos = self.api.repos_by_product(orgName, prod["id"], listDisabled) self.printer.print_items(repos) else: env = get_environment(orgName, envName) self.printer.set_header(_("Repo List For Org %s Environment %s") % (orgName, env["name"])) repos = self.api.repos_by_org_env(orgName, env["id"], listDisabled) self.printer.print_items(repos) return os.EX_OK
def run(self): orgName = self.get_option("org") envName = self.get_option("environment") prodName = self.get_option("product") prodLabel = self.get_option("product_label") prodId = self.get_option("product_id") listDisabled = self.has_option("disabled") content_view_name = self.get_option("view_name") content_view_label = self.get_option("view_label") content_view_id = self.get_option("view_id") batch_add_columns( self.printer, {"id": _("ID")}, {"name": _("Name")}, {"label": _("Label")}, {"content_type": _("Type")}, {"package_count": _("Package Count")}, {"puppet_module_count": _("Puppet Module Count")}, ) self.printer.add_column("last_sync", _("Last Sync"), formatter=format_sync_time) if content_view_name or content_view_label or content_view_id: content_view = get_content_view(orgName, content_view_label, content_view_name, content_view_id) content_view_id = content_view["id"] prodIncluded = prodName or prodLabel or prodId if prodIncluded and envName: env = get_environment(orgName, envName) prod = get_product(orgName, prodName, prodLabel, prodId) self.printer.set_header( _("Repo List For Org %(org_name)s Environment %(env_name)s Product %(prodName)s") % {"org_name": orgName, "env_name": env["name"], "prodName": prodName} ) repos = self.api.repos_by_env_product(env["id"], prod["id"], None, listDisabled, content_view_id) self.printer.print_items(repos) elif prodIncluded: prod = get_product(orgName, prodName, prodLabel, prodId) self.printer.set_header( _("Repo List for Product %(prodName)s in Org %(orgName)s ") % {"prodName": prodName, "orgName": orgName} ) repos = self.api.repos_by_product(orgName, prod["id"], listDisabled) self.printer.print_items(repos) else: env = get_environment(orgName, envName) self.printer.set_header( _("Repo List For Org %(orgName)s Environment %(env_name)s") % {"orgName": orgName, "env_name": env["name"]} ) repos = self.api.repos_by_org_env(orgName, env["id"], listDisabled, content_view_id) self.printer.print_items(repos) return os.EX_OK
def run(self): repo_id = self.get_option('repo_id') repo_name = self.get_option('repo') org_name = self.get_option('org') env_name = self.get_option('env') env_id, prod_id = None, None prod_name = self.get_option('product') self.printer.add_column('id') self.printer.add_column('title') self.printer.add_column('type') if not repo_id: if repo_name: repo = get_repo(org_name, prod_name, repo_name, env_name) repo_id = repo["id"] else: env = get_environment(org_name, env_name) env_id = env["id"] if prod_name: product = get_product(org_name, prod_name) prod_id = product["id"] errata = self.api.errata_filter(repo_id=repo_id, environment_id=env_id, type=self.get_option('type'), severity=self.get_option('severity'),prod_id=prod_id) self.printer.set_header(_("Errata List")) self.printer.print_items(errata) 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') envName = self.get_option('environment') env = get_environment(orgName, envName) prod = get_product(orgName, prodName, prodLabel, prodId) if not self.repoapi.repos_by_product(orgName, prod['id']): print _("Product [ %(prod_name)s ] has no repository") % {'prod_name':prod['name']} return os.EX_DATAERR cset = self.csapi.create(orgName, env["id"], self.create_cs_name(), constants.PROMOTION) 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... ")) return evaluate_task_status(task, failed = _("Product [ %s ] promotion failed") % prod["name"], ok = _("Product [ %(prod)s ] promoted to environment [ %(env)s ]") % {'prod':prod["name"], 'env':envName} )
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): repo_id = self.get_option('repo_id') repo_name = self.get_option('repo') org_name = self.get_option('org') env_name = self.get_option('environment') env_id, prod_id = None, None prod_name = self.get_option('product') self.printer.add_column('id') self.printer.add_column('title') self.printer.add_column('type') if not repo_id: if repo_name: repo = get_repo(org_name, prod_name, repo_name, env_name) repo_id = repo["id"] else: env = get_environment(org_name, env_name) env_id = env["id"] if prod_name: product = get_product(org_name, prod_name) prod_id = product["id"] errata = self.api.errata_filter(repo_id=repo_id, environment_id=env_id, type_in=self.get_option('type'), severity=self.get_option('severity'), prod_id=prod_id) self.printer.set_header(_("Errata List")) self.printer.print_items(errata) return os.EX_OK
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): 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): orgName = self.get_option('org') prodName = self.get_option('name') product = get_product(orgName, prodName) msg = self.api.delete(orgName, product["id"]) print msg return os.EX_OK
def product_id(self, options): if 'product' in options: prod_name = options['product'] else: prod_name = options['name'] prod = get_product(self.org_name, prod_name) return prod['id']
def productNamesToIds(self, orgName, productNames): ids = [] for prodName in productNames: p = get_product(orgName, prodName) if p != None: ids.append(p['id']) else: system_exit(os.EX_DATAERR) return ids
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') prod = get_product(orgName, prodName) msg = self.api.cancel_sync(orgName, prod["id"]) print msg return os.EX_OK
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') prod = get_product(orgName, prodName) msg = self.api.remove_sync_plan(orgName, prod['id']) print msg return os.EX_OK
def product_id(self, options): prod_opts = self.product_options(options) # if the product name/label/id are all none... if (all(opt is None for opt in prod_opts.itervalues())): prod_opts['name'] = options['name'] prod = get_product(self.org_name, prod_opts['name'], prod_opts['label'], prod_opts['id']) return prod['id']
def product_id(self, options): if 'product' in options: prodName = options['product'] else: prodName = options['name'] prod = get_product(self.orgName, prodName) if prod == None: system_exit(os.EX_DATAERR) return prod['id']
def run(self): org_name = self.get_option('org') prod_name = self.get_option('name') filter_name = self.get_option('filter') prod = get_product(org_name, prod_name) get_filter(org_name, filter_name) filters = self.api.filters(org_name, prod['id']) filters = [f['name'] for f in filters] self.update_filters(org_name, prod, filters, filter_name) return os.EX_OK
def run(self): orgName = self.get_option('org') envName = self.get_option('environment') prodName = self.get_option('product') prodLabel = self.get_option('product_label') prodId = self.get_option('product_id') listDisabled = self.has_option('disabled') batch_add_columns(self.printer, {'id': _("ID")}, {'name': _("Name")}, {'label': _("Label")}, {'content_type': _("Type")}, {'package_count': _("Package Count")}, {'puppet_module_count': _("Puppet Module Count")}) self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time) prodIncluded = prodName or prodLabel or prodId if prodIncluded and envName: env = get_environment(orgName, envName) prod = get_product(orgName, prodName, prodLabel, prodId) self.printer.set_header(_("Repo List For Org %(org_name)s Environment %(env_name)s Product %(prodName)s") % {'org_name':orgName, 'env_name':env["name"], 'prodName':prodName}) repos = self.api.repos_by_env_product(env["id"], prod["id"], None, listDisabled) self.printer.print_items(repos) elif prodIncluded: prod = get_product(orgName, prodName, prodLabel, prodId) self.printer.set_header(_("Repo List for Product %(prodName)s in Org %(orgName)s ") % {'prodName':prodName, 'orgName':orgName}) repos = self.api.repos_by_product(orgName, prod["id"], listDisabled) self.printer.print_items(repos) else: env = get_environment(orgName, envName) self.printer.set_header(_("Repo List For Org %(orgName)s Environment %(env_name)s") % {'orgName':orgName, 'env_name':env["name"]}) repos = self.api.repos_by_org_env(orgName, env["id"], listDisabled) self.printer.print_items(repos) return os.EX_OK
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') prod = get_product(orgName, prodName) filters = self.api.filters(orgName, prod['id']) self.printer.add_column('name') self.printer.add_column('description') self.printer.set_header(_("Product Filters")) self.printer.print_items(filters) return os.EX_OK
def run(self): name = self.get_option('name') url = self.get_option('url') prodName = self.get_option('prod') orgName = self.get_option('org') gpgkey = self.get_option('gpgkey') nogpgkey = self.get_option('nogpgkey') prod = get_product(orgName, prodName) self.api.create(orgName, prod["id"], name, url, gpgkey, nogpgkey) print _("Successfully created repository [ %s ]") % name 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') planName = self.get_option('plan') prod = get_product(orgName, prodName, prodLabel, prodId) plan = get_sync_plan(orgName, planName) msg = self.api.set_sync_plan(orgName, prod['id'], plan['id']) print msg return os.EX_OK
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') description = self.get_option('description') gpgkey = self.get_option('gpgkey') nogpgkey = self.get_option('nogpgkey') gpgkey_recursive = self.get_option('recursive') prod = get_product(orgName, prodName) prod = self.api.update(orgName, prod["id"], description, gpgkey, nogpgkey, gpgkey_recursive) print _("Successfully updated product [ %s ]") % prodName return os.EX_OK
def run(self): orgName = self.get_option('org') envName = self.get_option('environment') prodName = self.get_option('product') prodLabel = self.get_option('product_label') prodId = self.get_option('product_id') listDisabled = self.has_option('disabled') batch_add_columns(self.printer, {'id': _("ID")}, {'name': _("Name")}, \ {'label': _("Label")}, {'package_count': _("Package Count")}) self.printer.add_column('last_sync', _("Last Sync"), formatter=format_sync_time) prodIncluded = prodName or prodLabel or prodId if prodIncluded and envName: env = get_environment(orgName, envName) prod = get_product(orgName, prodName, prodLabel, prodId) self.printer.set_header(_("Repo List For Org %(org_name)s Environment %(env_name)s Product %(prodName)s") % {'org_name':orgName, 'env_name':env["name"], 'prodName':prodName}) repos = self.api.repos_by_env_product(env["id"], prod["id"], None, listDisabled) self.printer.print_items(repos) elif prodIncluded: prod = get_product(orgName, prodName, prodLabel, prodId) self.printer.set_header(_("Repo List for Product %(prodName)s in Org %(orgName)s ") % {'prodName':prodName, 'orgName':orgName}) repos = self.api.repos_by_product(orgName, prod["id"], listDisabled) self.printer.print_items(repos) else: env = get_environment(orgName, envName) self.printer.set_header(_("Repo List For Org %(orgName)s Environment %(env_name)s") % {'orgName':orgName, 'env_name':env["name"]}) repos = self.api.repos_by_org_env(orgName, env["id"], listDisabled) self.printer.print_items(repos) 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 filters = self.api.filters(orgName, prod['id']) self.printer.addColumn('name') self.printer.addColumn('description') self.printer.setHeader(_("Product Filters")) self.printer.printItems(filters) return os.EX_OK
def run(self): name = self.get_option('name') url = self.get_option('url') assumeyes = self.get_option('assumeyes') prodName = self.get_option('prod') orgName = self.get_option('org') repourls = self.discover_repositories(orgName, url) self.printer.set_header(_("Repository Urls discovered @ [%s]" % url)) selectedurls = self.select_repositories(repourls, assumeyes) prod = get_product(orgName, prodName) self.create_repositories(orgName, prod["id"], name, selectedurls) return os.EX_OK
def run(self): name = self.get_option('name') url = self.get_option('url') assumeyes = self.get_option('assumeyes') prodName = self.get_option('product') orgName = self.get_option('org') repourls = self.discover_repositories(orgName, url) self.printer.set_header(_("Repository Urls discovered @ [%s]" % url)) selectedurls = self.select_repositories(repourls, assumeyes) product = get_product(orgName, prodName) self.create_repositories(orgName, product["id"], name, selectedurls) return os.EX_OK
def run(self): name = self.get_option('name') label = self.get_option('label') url = self.get_option('url') prodName = self.get_option('product') prodLabel = self.get_option('product_label') prodId = self.get_option('product_id') orgName = self.get_option('org') gpgkey = self.get_option('gpgkey') nogpgkey = self.get_option('nogpgkey') unprotected = self.get_option('unprotected') product = get_product(orgName, prodName, prodLabel, prodId) self.api.create(orgName, product["id"], name, label, url, unprotected, gpgkey, nogpgkey) print _("Successfully created repository [ %s ]") % name return os.EX_OK
def run(self): org_name = self.get_option('org') def_label = self.get_option('label') def_name = self.get_option('name') def_id = self.get_option('id') product_name = self.get_option('product') product_id = self.get_option('product_id') product_label = self.get_option('product_label') view = get_cv_definition(org_name, def_label, def_name, def_id) product = get_product(org_name, product_name, product_label, product_id) products = self.api.products(org_name, view['id']) products = [f['id'] for f in products] self.update_products(org_name, view, products, product) 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') prod = get_product(orgName, prodName, prodLabel, prodId) sets = self.api.repository_sets(orgName, prod["id"]) sets = sorted(sets, key=lambda k: k['name']) batch_add_columns(self.printer, {'id': _("ID")}, {'name': _("Name")}, \ {'katello_enabled': _("Enabled?")}) self.printer.set_header(_("Repository Sets For Product [ %s ]") % (prod['name'])) self.printer.print_items(sets) return os.EX_OK
def run(self): name = self.get_option("name") label = self.get_option("label") url = self.get_option("url") prodName = self.get_option("product") prodLabel = self.get_option("product_label") prodId = self.get_option("product_id") orgName = self.get_option("org") gpgkey = self.get_option("gpgkey") nogpgkey = self.get_option("nogpgkey") unprotected = self.get_option("unprotected") product = get_product(orgName, prodName, prodLabel, prodId) self.api.create(orgName, product["id"], name, label, url, unprotected, gpgkey, nogpgkey) print _("Successfully created repository [ %s ]") % name return os.EX_OK
def run(self): orgName = self.get_option('org') prodName = self.get_option('name') planName = self.get_option('plan') prod = get_product(orgName, prodName) if (prod == None): return os.EX_DATAERR plan = get_sync_plan(orgName, planName) if (plan == None): return os.EX_DATAERR msg = self.api.set_sync_plan(orgName, prod['id'], plan['id']) print msg 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') prod = get_product(orgName, prodName, prodLabel, prodId) task = AsyncTask(self.api.sync(orgName, prod["id"])) run_async_task_with_status(task, ProgressBar()) return evaluate_task_status(task, failed = _("Product [ %s ] failed to sync") % prod["name"], canceled = _("Product [ %s ] synchronization canceled") % prod["name"], ok = _("Product [ %s ] synchronized") % prod["name"] )
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) set_name = self.get_option('set_name') task = AsyncTask(self.api.disable_repository_set(orgName, prod['id'], set_name)) task = run_spinner_in_bg(wait_for_async_task, [task], message=_("Disabling Repository Set...")) task = AsyncTask(task) return evaluate_task_status(task, failed = _("Repository disable [ %(set_name)s ] failed.") % {'set_name':set_name}, ok = _("Repository Set [ %(set_name)s ] disabled.") % {'set_name':set_name} )
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): 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