Add projects and topology param
authorDonghoon Shin <dhs.shine@gmail.com>
Fri, 9 Sep 2016 16:31:49 +0000 (16:31 +0000)
committerDonghoon Shin <dhs.shine@gmail.com>
Fri, 9 Sep 2016 16:31:49 +0000 (16:31 +0000)
12 files changed:
litmus/cmds/__init__.py
litmus/cmds/cmd_cp.py
litmus/cmds/cmd_dev.py
litmus/cmds/cmd_gt.py
litmus/cmds/cmd_imp.py
litmus/cmds/cmd_ls.py
litmus/cmds/cmd_mk.py
litmus/cmds/cmd_rm.py
litmus/cmds/cmd_run.py
litmus/core/manager.py
litmus/helper/gt.py
tools/litmus

index e155ab28427876e2d3d5cd4f4264ece3049b4aa1..4852a9617a81ebc4e45097bb58a34630848d0b13 100644 (file)
 # limitations under the License.
 
 from configparser import RawConfigParser
-from litmus import _projects_
 
 
-def load_project_list():
+def load_project_list(projects):
     """docstring for load_project_list"""
     configparser = RawConfigParser()
-    configparser.read(_projects_)
+    configparser.read(projects)
 
     project_list = []
     for section in configparser.sections():
index 9ad676c587c1dceb5c2d6efafa6114d5fc0e5541..efbe848935d378ee65f1622480cc8719c0fe3641 100755 (executable)
@@ -17,12 +17,11 @@ import os
 import logging
 from litmus.core.util import copy, call
 from litmus.cmds import load_project_list
-from litmus import _projects_
 
 
 def main(args):
     """docstring for main"""
-    prj_list = load_project_list()
+    prj_list = load_project_list(args.projects)
 
     orig = next((prj for prj in prj_list if prj['name'] == args.orig),
                 None)
@@ -45,7 +44,7 @@ def main(args):
         copy(orig['path'], path)
         call(['chmod', '-R', '775', path])
 
-        with open(_projects_, 'a') as f:
+        with open(args.projects, 'a') as f:
             f.write('[{0}]\n'.format(args.new))
             f.write('path={0}\n'.format(path))
             f.write('description={0}\n\n'.format(description))
index 2f6940d16a907dea102dfd5fc5657f28e9c93900..fecc4d58ed538444ebbeca967f26f40f9d087a95 100755 (executable)
@@ -15,7 +15,6 @@
 
 import os
 import logging
-from litmus import _duts_
 
 
 def load_device_list(topology):
@@ -27,4 +26,4 @@ def load_device_list(topology):
 def main(args):
     """docstring for main"""
     logging.debug('=====list of all devices in topology=====\n')
-    load_device_list(_duts_)
+    load_device_list(args.topology)
index b0ed8da7d934e86bafd6b3bdbf1e098da68129e0..b89cbe8e7735d974befc568bc4f28c3a63ecb3b4 100755 (executable)
@@ -18,4 +18,4 @@ from litmus.helper.gt import main as gt_main
 
 def main(args):
     """docstring for main"""
-    gt_main()
+    gt_main(topology=args.topology)
index 91de1b87d2ef428b6f9b64d93cc24501c5113ccd..ff595891de26f5abc7515f45b133a47640976a87 100755 (executable)
 # limitations under the License.
 
 import os
-from litmus import _projects_
 from litmus.cmds import load_project_list
 from litmus.core.util import call
 
 
 def main(args):
     """docstring for main"""
-    prj_list = load_project_list()
+    prj_list = load_project_list(args.projects)
 
     project = next((prj for prj in prj_list
                     if prj['name'] == args.project),
@@ -60,7 +59,7 @@ def main(args):
 
     call(['chmod', '-R', '775', prj_path])
 
-    with open(_projects_, 'a') as f:
+    with open(args.projects, 'a') as f:
         f.write('[{0}]\n'.format(args.project))
         f.write('path={0}\n'.format(os.path.abspath(prj_path)))
         f.write('description={0}\n\n'.format(prj_description))
index 4a3b2358901a9fef7e10b508e07f6bc7db3d3350..4e96b2cdc7ee75be7bb9d871334483993de57e0f 100755 (executable)
@@ -19,7 +19,7 @@ from litmus.cmds import load_project_list
 
 def main(args):
     """docstring for main"""
-    prj_list = load_project_list()
+    prj_list = load_project_list(args.projects)
     logging.debug('=====list of all litmus projects=====')
     for loop in prj_list:
         logging.debug('{0:10s} ({1} : {2})'.format(loop['name'],
index beda78801f53a65a7323ce56d9b3ce3c320fe6f9..40fa12cc07efe6ac705abf8fedd22cb8d1b00c04 100755 (executable)
@@ -17,13 +17,13 @@ import os
 import litmus
 import logging
 from litmus.core.util import copy, call
-from litmus import _projects_, _dev_types_
+from litmus import _dev_types_
 from litmus.cmds import load_project_list
 
 
 def main(args):
     """docstring for main"""
-    prj_list = load_project_list()
+    prj_list = load_project_list(args.projects)
 
     project = next((prj for prj in prj_list if prj['name'] == args.project),
                    None)
@@ -53,7 +53,7 @@ def main(args):
         copy(src, path)
         call(['chmod', '-R', '775', path])
 
-        with open(_projects_, 'a') as f:
+        with open(args.projects, 'a') as f:
             f.write('[{0}]\n'.format(args.project))
             f.write('path={0}\n'.format(path))
             f.write('description={0}\n\n'.format(description))
index 020adaf32cbd0fd184b0af3721087e201981b12a..1321f9d1b5cceec622b0536edd1f6b46842fae63 100755 (executable)
 import shutil
 import logging
 from configparser import RawConfigParser
-from litmus import _projects_
 
 
 def main(args):
     """docstring for main"""
     configparser = RawConfigParser()
-    configparser.read(_projects_)
+    configparser.read(args.projects)
 
     if args.project in configparser.sections():
         path = configparser.get(args.project, 'path')
         shutil.rmtree(path)
 
         configparser.remove_section(args.project)
-        with open(_projects_, 'w') as f:
+        with open(args.projects, 'w') as f:
             configparser.write(f)
         logging.debug('Project {0} is removed'.format(args.project))
     else:
index 74d1930ef79650a5b9f0e44a905f38cebab26b83..6332d6f061b7b03b9951a5e704b7b0dee7a2cd16 100755 (executable)
@@ -19,7 +19,7 @@ from litmus.cmds import load_project_list
 
 def main(args):
     """docstring for main"""
-    prj_list = load_project_list()
+    prj_list = load_project_list(args.projects)
     project = next((prj for prj in prj_list if prj['name'] == args.project),
                    None)
     if not project:
@@ -30,4 +30,5 @@ def main(args):
     userscript.main(project_name=args.project,
                     project_path=project['path'],
                     param=args.param,
-                    workingdir=args.workingdir)
+                    workingdir=args.workingdir,
+                    topology=args.topology)
index 8c71909c1322f89cd18fba5031c8b09a4a3dd5f6..332b8bc308d50ea8ed6cee3e5a77ef87a7c0780c 100644 (file)
@@ -63,7 +63,12 @@ Lightweight test manager for tizen automated testing
         self.kwargs = kwargs
         logging.debug(self._comment)
 
-        self._load_configs(_duts_)
+        if 'topology' in self.kwargs and self.kwargs['topology']:
+            tp = self.kwargs['topology']
+        else:
+            tp = _duts_
+        self._load_configs(tp)
+
         if 'project_name' in self.kwargs:
             self._project_name = self.kwargs['project_name']
         if 'project_path' in self.kwargs:
index fd2dc4e2d40b12d3ab5f28c4cbc5683c3d8b158d..a51a13f251205fd70b009901898b9109a00430b2 100644 (file)
@@ -50,6 +50,8 @@ class generate_topology_sdb_device(object):
         super(generate_topology_sdb_device, self).__init__()
         if 'append' in kwargs and kwargs['append']:
             self.open_mode = 'a+'
+        if 'topology' in kwargs and kwargs['topology']:
+            self.topology_path = kwargs['topology']
 
     def init_smartpowers(self):
         """docstring for init_smartpowers"""
@@ -309,12 +311,12 @@ class generate_topology_sdb_device(object):
         self.close_uarts()
 
 
-def main():
+def main(topology):
     """docstring for main"""
     try:
 
         logging.debug('# phase 1 : detect all devices which use sdb')
-        phase_sdb = generate_topology_sdb_device()
+        phase_sdb = generate_topology_sdb_device(topology=topology)
         phase_sdb.run()
 
     except KeyboardInterrupt:
index 709faf5123ec5b48a44710c8b70e7fd01b91a50a..ef8483b888096f149f2685239262fafe1db515c4 100644 (file)
@@ -175,7 +175,7 @@ def init_confdir():
     if not os.path.exists(_projects_):
         open(_projects_, 'a').close()
         try:
-            os.chmod(_duts_, 0o664)
+            os.chmod(_projects_, 0o664)
         except PermissionError:
             logging.debug('Can\'t change projects file permission')
 
@@ -188,6 +188,12 @@ def main(argv=None):
     parser.add_argument('-V', '--version',
                         action='version',
                         version='%(prog)s ' + __version__)
+    parser.add_argument('-t', '--topology',
+                        type=str,
+                        help='topology file path')
+    parser.add_argument('-p', '--projects',
+                        type=str,
+                        help='projects file path')
 
     parser.format_usage = parser.format_help
     subparsers = parser.add_subparsers(title='subcommands', dest='subcommands')
@@ -198,6 +204,16 @@ def main(argv=None):
             obj(subparsers)
 
     args = parser.parse_args(argv[1:])
+
+    if not args.projects:
+        args.projects = _projects_
+    else:
+        args.projects = os.path.expanduser(args.projects)
+    if not args.topology:
+        args.topology = _duts_
+    else:
+        args.topology = os.path.expanduser(args.topology)
+
     module = __import__('litmus.cmds.{0}'.format(args.module),
                         fromlist=[args.module])
     return module.main(args)