#528 allow some missing path sections in runroot config
Merged 4 years ago by mikem. Opened 4 years ago by tkopecek.
tkopecek/koji issue527  into  master

file modified
+5 -6
@@ -5,6 +5,7 @@ 

  import ConfigParser

  import os

  import platform

+ import re

  

  import koji.tasks

  from koji.tasks import scan_mounts
@@ -63,11 +64,10 @@ 

          if cp.has_option('paths', 'path_subs'):

              self.config['path_subs'] = [x.split(',') for x in cp.get('paths', 'path_subs').split('\n')]

  

-         count = 0

-         while True:

-             section_name = 'path%d' % count

-             if not cp.has_section(section_name):

-                 break

+         # path section are in form 'path%d' while order is important as some

+         # paths can be mounted inside other mountpoints

+         path_sections = [p for p in cp.sections() if re.match('path\d+', p)]

+         for section_name in sorted(path_sections, key=lambda x: int(x[4:])):

              try:

                  self.config['paths'].append({

                      'mountpoint': cp.get(section_name, 'mountpoint'),
@@ -77,7 +77,6 @@ 

                  })

              except ConfigParser.NoOptionError:

                  raise koji.GenericError("bad config: missing options in %s section" % section_name)

-             count += 1

  

          for path in self.config['default_mounts'] + self.config['safe_roots'] + [x[0] for x in self.config['path_subs']]:

              if not path.startswith('/'):

@@ -31,6 +31,9 @@ 

      def read(self, path):

          return

  

+     def sections(self):

+         return self.CONFIG.keys()

+ 

      def has_option(self, section, key):

          return section in self.CONFIG and key in self.CONFIG[section]

  

Fixes: https://pagure.io/koji/issue/527

Before path sections were expected to have zero-based numbering. If some
item was missing, parsing ended there.

Now we are more benevolent and we pick all path\d+ sections and sort
them by ordering number.

Commit 9c4348e fixes this pull-request

Pull-Request has been merged by mikem@redhat.com

4 years ago