Bug 667: NBI not validating that hyphens are not allowed in Jinja2

Change-Id: Ie70da179757808b7e7cfecb7f66c257fb347dcd0
Signed-off-by: delacruzramo <pedro.delacruzramos@altran.com>
diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py
index e14590b..55845d6 100644
--- a/osm_nbi/instance_topics.py
+++ b/osm_nbi/instance_topics.py
@@ -23,6 +23,7 @@
 from descriptor_topics import DescriptorTopic
 from yaml import safe_dump
 from osm_common.dbbase import DbException
+from re import match  # For checking that additional parameter names are valid Jinja2 identifiers
 
 __author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
 
@@ -115,6 +116,12 @@
                     break
         if additional_params:
             for k, v in additional_params.items():
+                # BEGIN Check that additional parameter names are valid Jinja2 identifiers
+                if not match('^[a-zA-Z_][a-zA-Z0-9_]*$', k):
+                    raise EngineException("Invalid param name at {}:{}. Must contain only alphanumeric characters "
+                                          "and underscores, and cannot start with a digit"
+                                          .format(where_, k))
+                # END Check that additional parameter names are valid Jinja2 identifiers
                 if not isinstance(k, str):
                     raise EngineException("Invalid param at {}:{}. Only string keys are allowed".format(where_, k))
                 if "." in k or "$" in k: