aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--setup.py1
-rw-r--r--tests/vnfreq/test_pkg_reqs.py7
-rw-r--r--vnfsdk_pkgtools/vnfreq/pkg_reqs.py22
3 files changed, 30 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index e46f4e2..90e7e9b 100644
--- a/setup.py
+++ b/setup.py
@@ -89,6 +89,7 @@ setup(
'vnfsdk.pkgtools.vnfreq': [
'R-04298 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R04298',
'R-26881 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R26881',
+ 'R-35851 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R35851',
'R-66070 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R66070',
'R-77707 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R77707',
],
diff --git a/tests/vnfreq/test_pkg_reqs.py b/tests/vnfreq/test_pkg_reqs.py
index 3f85856..109e85c 100644
--- a/tests/vnfreq/test_pkg_reqs.py
+++ b/tests/vnfreq/test_pkg_reqs.py
@@ -83,3 +83,10 @@ def test_R26881(mocker, tmpdir):
}
check_result('R-26881', reader, validator, None)
+
+def test_R35851(mocker):
+ validator = mocker.Mock()
+ node = mocker.Mock()
+ validator.tosca.nodetemplates = [node]
+ check_result('R-35851', None, validator, None)
+
diff --git a/vnfsdk_pkgtools/vnfreq/pkg_reqs.py b/vnfsdk_pkgtools/vnfreq/pkg_reqs.py
index 2592017..5c047bd 100644
--- a/vnfsdk_pkgtools/vnfreq/pkg_reqs.py
+++ b/vnfsdk_pkgtools/vnfreq/pkg_reqs.py
@@ -95,3 +95,25 @@ class R26881(vnfreq.TesterBase):
raise vnfreq.VnfRequirementError("No valid binaries or images for VNF instantion found")
return 0
+
+class R35851(vnfreq.TesterBase):
+ ID = "R-35851"
+ DESC = ("The VNF Package MUST include VNF topology that describes "
+ "basic network and application connectivity internal and "
+ "external to the VNF including Link type, KPIs, Bandwidth, "
+ "latency, jitter, QoS (if applicable) for each interface.")
+
+ def _do_check(self, reader, tosca):
+ # Only check the existence of Cp or VL
+ # link type, bandwidth are already enfoced by ONAP onbarding DM
+ # other KPIs are not defined yet.
+ found = False
+ for node in getattr(tosca.tosca, 'nodetemplates', []):
+ if tosca.is_type(node, 'tosca.nodes.nfv.VduCp') or \
+ tosca.is_type(node, 'tosca.nodes.nfv.VnfVirtualLink'):
+ found = True
+ break
+ if not found:
+ raise vnfreq.VnfRequirementError("No basic network or application connectivity found")
+ return 0
+