3 from tic.dependency import analyze_dependency, get_installed_packages
4 from tic.parser.recipe_parser import get_default_recipe
5 from tic.parser.repo_parser import RepodataParser
6 from tic.parser.view_parser import make_view_data
8 from tic.utils.error import TICError
9 from tic.repo import get_repodata_from_repos
11 DEFAULT_CACHEDIR='/var/tmp/tic-core/cached'
13 def analyze(repo_list, recipe_list=None):
14 logger = logging.getLogger(__name__)
16 if not repo_list and not recipe_list:
17 raise TICError('No repositories defined')
21 #TODO Repository check
22 # using default recipe (Temporary Code)
23 if recipe_list and recipe_list[0] == 'default':
24 recipe = get_default_recipe()
25 for repo_url in recipe.get('Repositories'):
26 repos.append({'name': repo_url.get('Name'),
27 'url': repo_url.get('Url')})
30 for repo_url in repo_list:
31 repos.append({'name': 'repository_%d' % number,
35 #Download repodata from repositories (Remote/Local)
36 repoinfo = get_repodata_from_repos(repos, DEFAULT_CACHEDIR)
38 # Parse the xml files for the analysis of package (.rpm)
39 repo_parser = RepodataParser(repoinfo)
40 pkg_group = repo_parser.parse()
41 logger.info('pkg_list: %d, pkg2id: %d', len(pkg_group['pkg_list']), len(pkg_group['pkg2id']))
43 # package install-dependency analysis
44 analyze_dependency(pkg_group)
45 # Make a data for TIC (Tizen image creation)
46 view_data = make_view_data(pkg_group)
47 inst_packages = get_installed_packages(recipe, repoinfo, pkg_group)
49 result = {'packages': view_data,
51 'defaultpackages': inst_packages}