Trim the path defined in repos.yaml, update BOSS repos.yaml
authorHasan Wan <hasan.wan@intel.com>
Tue, 10 Sep 2013 08:27:24 +0000 (16:27 +0800)
committerEduard Bartosh <eduard.bartosh@intel.com>
Fri, 13 Sep 2013 08:57:17 +0000 (01:57 -0700)
Fixes: #1285

Change-Id: I54d364cf4b8013dc42b5388aa0b7b280add8ab6a
Signed-off-by: Hasan Wan <hasan.wan@intel.com>
Reviewed-on: https://otctools.jf.intel.com/review/6356
Tested-by: OTC Tools Tester <ed.bartosh@linux.intel.com>
Reviewed-by: Eduard Bartosh <eduard.bartosh@intel.com>
common/backenddb.py
job_load_repos.yaml.py
tests/test_backenddb.py

index 97b8653..9b637a9 100644 (file)
@@ -172,6 +172,13 @@ class BackendDB():
         names = set()
         mapkeys = set()
         for repo in repos:
+
+            # Temporary solution for path trim
+            repo['SnapshotDir'] = repo['SnapshotDir'].replace('/srv/', '')
+            if 'PrereleaseDir' not in repo:
+                repo['PrereleaseDir'] = \
+                    repo['SnapshotDir'].replace('snapshots', 'prerelease')
+
             name = repo.pop('Name')
             names.add(name)
             db_repos[name] = repo
index b7fb9b3..84566e1 100755 (executable)
@@ -8,6 +8,7 @@ This code is called by gerrit-plugin to load the backend config to redis.
 import os
 import sys
 import tempfile
+import shutil
 
 from common.backenddb import BackendDB
 from common.gerrit import get_gerrit_event
@@ -25,6 +26,21 @@ def load_repos(config_file):
                     int(os.getenv('REDIS_PORT')))
     return bdb.read_repos(file(config_file, 'r').read())
 
+def update_repos_conf_on_filesystem(path_to_new_repos_conf,
+                                    path_to_repos_conf="/etc/repos/repos.yaml"):
+    """
+      Temporary solution before BOSS replaced
+
+    Update the repos.yaml files on the filesystem, it request
+    this job runs on the repos server
+
+    Args:
+         path_to_new_repos_conf (str): path to new repos.yaml file location
+         path_to_repos_conf (str): the path of repos.yaml on repos server
+    """
+
+    shutil.copyfile(path_to_new_repos_conf, path_to_repos_conf)
+
 def main():
     """Script entry point.
     """
@@ -42,6 +58,10 @@ def main():
         clone_gitproject(event['project'], prjdir)
         mygit = Git(prjdir)
         mygit.checkout(event['newrev'])
+
+        # updte repos.yaml on repos server
+        update_repos_conf_on_filesystem(os.path.join(prjdir, 'repos.yaml'))
+
         return load_repos(os.path.join(prjdir, 'repos.yaml'))
 
 if __name__ == '__main__':
index a7e77e4..302c98f 100644 (file)
@@ -40,7 +40,8 @@ Repositories:
         ProjectConfig: yes
         Target: standard
         Release: "release"
-        SnapshotDir: /srv/snapshots/trunk
+        SnapshotDir: snapshots/trunk
+        PrereleaseDir: prerelease/trunk
         Architectures:
             - ia32
             - armv7l
@@ -53,7 +54,8 @@ Repositories:
         Project: Project:Repo2
         Target: standard
         DependsOn: Repo1
-        SnapshotDir: /srv/snapshots/trunk
+        SnapshotDir: snapshots/trunk
+        PrereleaseDir: prerelease/trunk
         Release: "release"
         Architectures:
             - ia32
@@ -67,7 +69,8 @@ Repositories:
         Project: Tizen:non-oss
         Target: standard
         DependsOn: Tizen-main
-        SnapshotDir: /srv/snapshots/trunk
+        SnapshotDir: snapshots/trunk
+        PrereleaseDir: prerelease/trunk
         Release: "tizen"
         Architectures:
             - ia32
@@ -204,7 +207,8 @@ class BackendDBTest(unittest.TestCase):
         data = {'ProjectConfig': 'True', 'Target': 'standard',
                 'Project': 'Project:Repo1',
                 'TopLevel': '/srv/trunk',
-                'SnapshotDir': '/srv/snapshots/trunk',
+                'SnapshotDir': 'snapshots/trunk',
+                'PrereleaseDir': 'prerelease/trunk',
                 'Link': 'latest',
                 'Architectures': ['ia32', 'armv7l'],
                 'Release': 'release', 'PartOf': 'trunk',