From ecc3d99c7549e1ebf645790d6874570cbdb40666 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mar 02 2016 08:49:08 +0000 Subject: use wikitcms event creation I rewrote event creation in wikitcms for sharing between the CLI and the fedmsg consumer, use that. --- diff --git a/relval/cli.py b/relval/cli.py index 03ab8a1..966110e 100755 --- a/relval/cli.py +++ b/relval/cli.py @@ -63,36 +63,6 @@ class Cli(object): ## UTILITY METHODS ## - def handle_existing(self, error): - """Convenience function for warning (but not failing) on page - already existing, as most of the 'write page' operations want - to do this. Use it in a try/except block, it expects to be - passed an mwclient.errors APIError object. - """ - error = error.args[0] - if error == 'articleexists': - print("Page already exists, and forced write was not requested! " - "Not writing.") - else: - print("Unhandled error writing page!") - raise - - def get_testtypes(self, site, args): - """Filter testtypes list from command line arguments - shared - by multiple commands. - """ - if args.testtype == 'all': - testtypes = site.testtypes - else: - if args.testtype in site.testtypes: - testtypes = [args.testtype] - else: - print("Invalid test type specified! Valid test types are:") - for testtype in site.testtypes: - print(testtype) - sys.exit("all - generates pages for all test types.") - return testtypes - # Comma-separated list of digits, or just one (for a list of bug IDs) def list_ints(self, string): ints = string.split(',') @@ -257,12 +227,11 @@ class Cli(object): '-l', '--url', help="URL of a Pungi 4 compose to create a " "validation event for") parser_compose.add_argument( - '-y', '--testtype', help=testtype_help, default='all') + '-y', '--testtype') parser_compose.add_argument( '-u', '--username', help=username_help) parser_compose.add_argument( - '-f', '--force', help=force_help, default=True, const=None, - action='store_const') + '-f', '--force', help=force_help, action='store_true') parser_compose.add_argument( '-t', '--test', help=test_help, action='store_true') parser_compose.add_argument( @@ -493,55 +462,28 @@ class Cli(object): compose=args.compose) except ValueError as err: sys.exit(err) - testtypes = self.get_testtypes(site, args) - - if isinstance(event, ev.NightlyEvent): - pageobj = pg.NightlyPage - else: - pageobj = pg.ComposePage - eventpages = [pageobj(site, event.release, typ, event.milestone, - event.compose) - for typ in testtypes] print("Creating pages for event {0}".format(event.version)) + if args.download_only: - print("Just handling Download page...") - eventpages = (pg.DownloadPage(site, event),) - else: - eventpages.append(pg.SummaryPage(site, event)) - eventpages.append(pg.DownloadPage(site, event)) - for page in eventpages: - # Only do the category fixup if page creation succeeds. - try: - print("Writing page: " + page.name) - page.write(createonly=args.force) - except mwe.APIError as error: - self.handle_existing(error) - if args.download_only: - # Short-circuit outta here! - sys.exit() - # Update current redirect pages, if asked to. - if not args.no_current: - print("Updating Current redirect page...") - page.update_current() - - # Update the template that defines the 'current' compose (if asked) - if not args.no_current: + print("Only handling download page!") try: - event.update_current() - except: - print("Unhandled error updating current template!") - raise + event.download_page.write(createonly=args.force) + except mwe.APIError as err: + sys.exit(err) - # Make sure the category hierarchy is all in place. - print("Creating event category pages if necessary (or forced)...") - for page in [event.category_page, event.parent_category_page]: - try: - page.write(createonly=args.force) - except mwe.APIError as error: - self.handle_existing(error) - except: - print("Unhandled error writing category page!") - raise + if args.testtype: + testtypes = [args.testtype] + else: + testtypes = None + current = not args.no_current + try: + event.create( + testtypes=testtypes, force=args.force, current=current) + except mwe.APIError: + print("Unhandled error writing pages!") + raise + except ValueError as err: + sys.exit(err) def user_stats(self, args, site): """Print HTML-formatted statistics on the number of results