'Used to run createrepo on a copied Yum mirror.'

def createrepo_walker(self, repo, dirname, fnames):

    if (os.path.exists(dirname) or (repo['breed'] == 'rsync')):
        utils.remove_yum_olddata(dirname)
        mdoptions = []
        if os.path.isfile(('%s/.origin/repomd.xml' % dirname)):
            if (not HAS_YUM):
                utils.die(self.logger, 'yum    is    required    to    use    this    feature')
            rmd = yum.repoMDObject.RepoMD('', ('%s/.origin/repomd.xml' % dirname))
            if ('group' in rmd.repoData):
                groupmdfile = rmd.getData('group').location[1]
                mdoptions.append(('-g    %s' % groupmdfile))
            if ('prestodelta' in rmd.repoData):
                if (utils.get_family() in ('redhat', 'suse')):
                    cmd = '/usr/bin/rpmquery    --queryformat=%{VERSION}    createrepo'
                    createrepo_ver = utils.subprocess_get(self.logger, cmd)
                    if utils.compare_versions_gt(createrepo_ver, '0.9.7'):
                        mdoptions.append('--deltas')
                    else:
                        self.logger.error('this    repo    has    presto    metadata;    you    must    upgrade    createrepo    to    >=    0.9.7    first    and    then    need    to    resync    the    repo    through    cobbler.')
        blended = utils.blender(self.api, False, repo)
        flags = blended.get('createrepo_flags', '(ERROR:    FLAGS)')
        try:
            cmd = ('createrepo    %s    %s    %s' % ('    '.join(mdoptions), flags, dirname))
            utils.subprocess_call(self.logger, cmd)
        except:
            utils.log_exc(self.logger)
            self.logger.error('createrepo    failed.')
        del fnames[:]
