-import base64
import logging
-from tic.dependency import analyze_dependency
+from tic.dependency import analyze_dependency, get_installed_packages
+from tic.parser.recipe_parser import get_default_recipe
from tic.parser.repo_parser import RepodataParser
from tic.parser.view_parser import make_view_data
-from tic.repo import Repo
+from tic.utils.error import TICError
from tic.repo import get_repodata_from_repos
DEFAULT_CACHEDIR='/var/tmp/tic-core/cached'
def analyze(repo_list, recipe_list=None):
logger = logging.getLogger(__name__)
+ if not repo_list and not recipe_list:
+ raise TICError('No repositories defined')
+
repos = []
- for repo_url in repo_list:
- repos.append(Repo(base64.urlsafe_b64encode(repo_url), repo_url))
+ recipe = None
+ #TODO Repository check
+ # using default recipe (Temporary Code)
+ if recipe_list and recipe_list[0] == 'default':
+ recipe = get_default_recipe()
+ for repo_url in recipe.get('Repositories'):
+ repos.append({'name': repo_url.get('Name'),
+ 'url': repo_url.get('Url')})
+ else:
+ number=1
+ for repo_url in repo_list:
+ repos.append({'name': 'repository_%d' % number,
+ 'url': repo_url})
+ number = number + 1
#Download repodata from repositories (Remote/Local)
- repodata_list = get_repodata_from_repos(repos, DEFAULT_CACHEDIR)
+ repoinfo = get_repodata_from_repos(repos, DEFAULT_CACHEDIR)
# Parse the xml files for the analysis of package (.rpm)
- repo_parser = RepodataParser(repodata_list)
+ repo_parser = RepodataParser(repoinfo)
pkg_group = repo_parser.parse()
logger.info('pkg_list: %d, pkg2id: %d', len(pkg_group['pkg_list']), len(pkg_group['pkg2id']))
analyze_dependency(pkg_group)
# Make a data for TIC (Tizen image creation)
view_data = make_view_data(pkg_group)
+ inst_packages = get_installed_packages(recipe, repoinfo, pkg_group)
+
+ result = {'packages': view_data,
+ 'repos': repos,
+ 'defaultpackages': inst_packages}
- return view_data
\ No newline at end of file
+ return result
\ No newline at end of file