Merge branch 'master' of https://github.com/iksaif/euscan
This commit is contained in:
@ -8,14 +8,12 @@ from xml.etree.ElementTree import iterparse, ParseError
|
||||
from django.db.transaction import commit_on_success
|
||||
from django.core.management.color import color_style
|
||||
|
||||
from euscan.helpers import get_version_type
|
||||
from euscan.version import get_version_type
|
||||
|
||||
from djeuscan.processing import FakeLogger
|
||||
from djeuscan.models import Package, Version, VersionLog
|
||||
|
||||
|
||||
PORTDB = portage.db[portage.root]["porttree"].dbapi
|
||||
|
||||
PORTDB = None
|
||||
|
||||
class ScanPortage(object):
|
||||
def __init__(self, logger=None, no_log=False, purge_packages=False,
|
||||
@ -25,6 +23,10 @@ class ScanPortage(object):
|
||||
self.purge_packages = purge_packages
|
||||
self.purge_versions = purge_versions
|
||||
|
||||
if not PORTDB: # Lazy loading for portdb
|
||||
global PORTDB
|
||||
PORTDB = portage.db[portage.root]["porttree"].dbapi
|
||||
|
||||
self.style = color_style()
|
||||
|
||||
self._cache = {'packages': {}, 'versions': {}}
|
||||
@ -342,9 +344,14 @@ def scan_portage(packages=None, category=None, no_log=False,
|
||||
|
||||
if prefetch:
|
||||
logger.info('Prefetching objects...')
|
||||
for package in Package.objects.all():
|
||||
ppackages = Package.objects.all()
|
||||
pversions = Version.objects.select_related('package').all()
|
||||
if category:
|
||||
ppackages = ppackages.filter(category=category)
|
||||
pversions = pversions.filter(package__category=category)
|
||||
for package in ppackages:
|
||||
scan_handler.cache_store_package(package)
|
||||
for version in Version.objects.select_related('package').all():
|
||||
for version in pversions:
|
||||
scan_handler.cache_store_version(version)
|
||||
logger.info('done')
|
||||
|
||||
|
@ -153,9 +153,12 @@ def scan_upstream(packages=None, purge_versions=False,
|
||||
|
||||
for pkg in packages:
|
||||
try:
|
||||
scan_handler.scan('%s/%s' % (pkg.category, pkg.name))
|
||||
package = '%s/%s' % (pkg.category, pkg.name)
|
||||
except AttributeError:
|
||||
scan_handler.scan(pkg)
|
||||
package = pkg
|
||||
|
||||
logger.info('Scanning %s' % package)
|
||||
scan_handler.scan(package)
|
||||
|
||||
scan_handler.purge_old_versions()
|
||||
|
||||
|
Reference in New Issue
Block a user