#46 Add verbose option and some logs
Merged 6 years ago by ttomecek. Opened 6 years ago by dhodovsk.
modularity/ dhodovsk/modularity-tools add-logs  into  master

file modified
+17 -3
@@ -1,5 +1,6 @@ 

  import sys

  import argparse

+ import logging

  

  from modularity.module_generator import ModuleGenerator

  from modularity.oc_template import OpenShiftTemplateGenerator
@@ -12,10 +13,19 @@ 

      @staticmethod

      def build_parser():

          parser = argparse.ArgumentParser(description="Generates module related files")

+         base_parser = argparse.ArgumentParser(add_help=False)

+         base_parser.add_argument(

+             "--verbose",

+             "-v",

+             action="store_true",

+             help="verbose operation"

+         )

+ 

          subparsers = parser.add_subparsers(dest="cmd_name")

  

          parser_rpm2module = subparsers.add_parser(

-             'rpm2module', help="Generates modulemd file",

+             'rpm2module', parents=[base_parser],

+             help="Generates modulemd file",

              description="Gets package info and dependencies and creates modulemd file."

          )

          parser_rpm2module.add_argument(
@@ -26,7 +36,8 @@ 

          )

  

          parser_docker2openshift = subparsers.add_parser(

-             "docker2openshift", help="Generates openshift template from dockerfile",

+             "docker2openshift", parents=[base_parser],

+             help="Generates openshift template from dockerfile",

              description="Creates an OpenShift template YAML file.",

          )

  
@@ -41,7 +52,8 @@ 

          )

  

          parser_module2dockerfile = subparsers.add_parser(

-             'module2dockerfile', help="Generates dockerfile from modulemd file",

+             'module2dockerfile', parents=[base_parser],

+             help="Generates dockerfile from modulemd file",

              description="Creates Dockerfile with suggestions and pre-filled values"

          )

  
@@ -82,6 +94,8 @@ 

      def run():

          try:

              cli = ModtoolsCLI(sys.argv[1:])

+             if cli.args.verbose:

+                 logging.basicConfig(level=logging.INFO)

              if cli.args.cmd_name == 'rpm2module':

                  mg = ModuleGenerator(cli.args.pkgs)

                  mg.run()

@@ -1,5 +1,5 @@ 

  import os

- import sys

+ import logging

  

  import dnf

  
@@ -63,17 +63,20 @@ 

          return self.module_id_to_name.get(koji_tag_name, koji_tag_name)

  

      def obtain_module_names(self):

+         logging.info('Scanning built modules, this might take a while.')

          j = self.p['unreleasedvariants'](

              variant_type="module",

              active=True,

              page_size=-1

              # variant_version=STREAM,

          )

+         logging.info('Scanning built modules - DONE.')

          for module in j:

              self.module_id_to_name[module["koji_tag"]] = "{}:{}".format(module["variant_id"], module["variant_version"])

  

      @staticmethod

      def get_base_from_repo(reponame, repourl):

+         logging.info('Loading repo: %s', reponame)

          base = dnf.Base()

          if LooseVersion(dnf.__version__) < LooseVersion("2.0.0"):

              repo = dnf.repo.Repo(reponame, base.conf.cachedir)
@@ -97,9 +100,9 @@ 

  

          initialize repo objects for dnf to kick off queries

          """

-         print("Getting module information from mbs cache." +

-               " Please run mbs-build local with dependency modules" +

-               " you are interested in before running this script.")

+         logging.warn("Getting module information from mbs cache." +

+                      " Please run mbs-build local with dependency modules" +

+                      " you are interested in before running this script.")

          cache_path = os.path.expanduser("~/modulebuild/cache/koji_tags")

          for module_name in os.listdir(cache_path):

              # for now ignore all what is not in f26 stream, remove when situation changes
@@ -113,6 +116,7 @@ 

  

      def get_package_requires(self):

          # runtime

+         logging.info('Getting package requirements')

          pkgs = []

          base = ModuleDepsDiffer.get_base_from_repo('f26', REPO_F26)

          for pkg in self.packages:
@@ -169,6 +173,7 @@ 

          base = ModuleDepsDiffer.get_base_from_repo('f26', REPO_F26)

          q = base.sack.query()

          for cap in caps:

+             logging.info('Getting source package for %s:', cap)

              pkg = q.filter(provides__glob=[cap], arch=['noarch', ARCH], latest=True)

              if not pkg:

                  pkg = q.filter(file__glob=cap)

@@ -3,7 +3,7 @@ 

  import modulemd

  import dnf

  from .module_deps_differ import ModuleDepsDiffer

- 

+ import logging

  

  class ModuleGenerator(object):

  
@@ -88,6 +88,7 @@ 

              Function loads package from dnf

              :return:

              """

+         logging.info("Getting package info from DNF")

          b = dnf.Base()

          b.read_all_repos()

          b.fill_sack()
@@ -105,9 +106,11 @@ 

              Function gets build and runtime dependencies of package

              :return:

              """

+         logging.info('Dependency resolution started')

          self.differ.run()

          self.build_deps = ModuleDepsDiffer.whatprovides(self.differ.build_caps_classified['result'])

          self.run_deps = ModuleDepsDiffer.whatprovides(self.differ.runtime_caps_classified['result'])

+         logging.info('Dependency resolution finished succesfully.')

  

      def run(self):

          if len(self.pkgs) == 1: