示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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
示例#5
0
    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
示例#6
0
    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]
示例#7
0
    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
示例#8
0
    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
示例#9
0
    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
示例#10
0
    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
示例#11
0
    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
示例#12
0
    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
示例#13
0
    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
示例#14
0
    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
示例#15
0
    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
示例#16
0
    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
示例#17
0
    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
示例#18
0
    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]
示例#19
0
    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
        )
示例#20
0
    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
示例#21
0
    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]
示例#22
0
    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)
示例#23
0
    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
        )
示例#24
0
    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)
示例#25
0
    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
示例#26
0
文件: provider.py 项目: Pajk/katello
    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
示例#27
0
    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
示例#28
0
    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
示例#29
0
    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
示例#30
0
    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
示例#31
0
    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
示例#32
0
    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
示例#33
0
    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
示例#34
0
文件: repo.py 项目: guymatz/katello
    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
示例#35
0
    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
示例#36
0
    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
        )
示例#37
0
文件: repo.py 项目: AsherBond/katello
    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
示例#38
0
    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
示例#39
0
    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)
示例#40
0
    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
示例#41
0
 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'])
示例#42
0
 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'])