Fix Sonobuoy systemd-image for k8 1.18
[validation.git] / bluval / bluval.py
index a0f02d2..f8762bd 100644 (file)
@@ -30,16 +30,23 @@ import yaml
 from bluutil import BluvalError
 from bluutil import ShowStopperError
 
 from bluutil import BluvalError
 from bluutil import ShowStopperError
 
+_OPTIONAL_ALSO = False
 
 def run_testcase(testcase):
     """Runs a single testcase
     """
     name = testcase.get('name')
     skip = testcase.get('skip', "False")
 
 def run_testcase(testcase):
     """Runs a single testcase
     """
     name = testcase.get('name')
     skip = testcase.get('skip', "False")
+    optional = testcase.get('optional', "False")
     if skip.lower() == "true":
         # skip is mentioned and true.
         print('Skipping {}'.format(name))
         return
     if skip.lower() == "true":
         # skip is mentioned and true.
         print('Skipping {}'.format(name))
         return
+    print("_OPTIONAL_ALSO {}".format(_OPTIONAL_ALSO))
+    if  not _OPTIONAL_ALSO and optional.lower() == "true":
+        # Optional Test case.
+        print('Ignoring Optional {} testcase'.format(name))
+        return
     show_stopper = testcase.get('show_stopper', "False")
     what = testcase.get('what')
     mypath = Path(__file__).absolute()
     show_stopper = testcase.get('show_stopper', "False")
     what = testcase.get('what')
     mypath = Path(__file__).absolute()
@@ -52,15 +59,21 @@ def run_testcase(testcase):
     variables_file = mypath.parents[1].joinpath("tests/variables.yaml")
     variables_dict = yaml.safe_load(variables_file.open())
     variables_dict['log_path'] = str(results_path)
     variables_file = mypath.parents[1].joinpath("tests/variables.yaml")
     variables_dict = yaml.safe_load(variables_file.open())
     variables_dict['log_path'] = str(results_path)
-    variables_file.write_text(str(variables_dict))
+    variables_updated_file = mypath.parents[1].joinpath("tests/variables_updated.yaml")
+    variables_updated_file.write_text(str(variables_dict))
+    variables_loglevel = variables_dict['loglevel']
 
     # run the test
 
     # run the test
-    args = ["robot", "-V", str(variables_file), "-d",
-            str(results_path), str(test_path)]
+    args = ["robot", "-V", str(variables_updated_file),
+            "-d", str(results_path),
+            "-n", "non-critical",
+            "-b", "debug.log",
+            "-L", str(variables_loglevel),
+            str(test_path)]
 
     print('Executing testcase {}'.format(name))
     print('show_stopper {}'.format(show_stopper))
 
     print('Executing testcase {}'.format(name))
     print('show_stopper {}'.format(show_stopper))
-    print('Invoking {}'.format(args))
+    print('Invoking {}'.format(args), flush=True)
     try:
         status = subprocess.call(args, shell=False)
         if status != 0 and show_stopper.lower() == "true":
     try:
         status = subprocess.call(args, shell=False)
         if status != 0 and show_stopper.lower() == "true":
@@ -89,18 +102,39 @@ def validate_blueprint(yaml_loc, layer):
     validate_layer(blueprint, layer)
 
 
     validate_layer(blueprint, layer)
 
 
+def write_test_info(layer):
+    """writes testing info to test_info.yaml
+    """
+    data = dict(
+        test_info=dict(
+            layer=layer,
+            optional=_OPTIONAL_ALSO,
+        )
+    )
+
+    with open('/opt/akraino/results/test_info.yaml', 'w') as outfile:
+        yaml.dump(data, outfile, default_flow_style=False)
+
+
 @click.command()
 @click.argument('blueprint')
 @click.option('--layer', '-l')
 @click.command()
 @click.argument('blueprint')
 @click.option('--layer', '-l')
-def main(blueprint, layer):
+@click.option('--optional_also', '-o', is_flag=True)
+def main(blueprint, layer, optional_also):
     """Takes blueprint name and optional layer. Validates inputs and derives
     yaml location from blueprint name. Invokes validate on blue print.
     """
     """Takes blueprint name and optional layer. Validates inputs and derives
     yaml location from blueprint name. Invokes validate on blue print.
     """
+    global _OPTIONAL_ALSO  # pylint: disable=global-statement
     mypath = Path(__file__).absolute()
     yaml_loc = mypath.parents[0].joinpath('bluval-{}.yaml'.format(blueprint))
     if layer is not None:
         layer = layer.lower()
     mypath = Path(__file__).absolute()
     yaml_loc = mypath.parents[0].joinpath('bluval-{}.yaml'.format(blueprint))
     if layer is not None:
         layer = layer.lower()
+    if optional_also:
+        _OPTIONAL_ALSO = True
+        print("_OPTIONAL_ALSO {}".format(_OPTIONAL_ALSO))
+
     try:
     try:
+        write_test_info(layer)
         validate_blueprint(yaml_loc, layer)
     except ShowStopperError as err:
         print('ShowStopperError:', err)
         validate_blueprint(yaml_loc, layer)
     except ShowStopperError as err:
         print('ShowStopperError:', err)