[TIC-CORE] provides default-recipe for 1st-release
[archive/20170607/tools/tic-core.git] / tic / command.py
index ea70c6e..65570d1 100644 (file)
@@ -1,11 +1,11 @@
-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'
@@ -13,15 +13,30 @@ 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']))
     
@@ -29,5 +44,10 @@ def analyze(repo_list, recipe_list=None):
     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