summaryrefslogtreecommitdiffstats
path: root/docs/files/Dovetail.rst
blob: 2ce02895135faabc6a7fc80f191f93631771c955 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Dovetail Integeration documentation master file, created by
   sphinx-quickstart on Fri Feb 23 11:49:11 2018.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

Dovetail Integration
====================

.. toctree::
   :maxdepth: 2
   
User Stories
------------

1. An ONAP User wants to ensure that VNFs which appear in the VNF
   Marketplace can be on-boarded with the Service Design & Creation tool
   without errors.

2. An ONAP User would like to be able to run VNF Certification tests on
   demand using a common user interface independent of the test being
   run.

3. An ONAP Certification Authority wants a central repository in which
   to examine the results of tests run by ONAP Users

4. An ONAP Certification Authority wants to be able to determine that
   VNF certification tests run by ONAP Users were executed properly.

5. An ONAP VNF Test Developer wants a consistent environment in which to
   develop tests.

OPNFV Dovetail Description
--------------------------

The Open Platform for NFV (OPNFV) is a collaborative project under the
Linux Foundation that is transforming global networks through open
source Network Functions Virtualization (NFV). OPNFV focuses on
developing test suites for Open Source implementations of the NFV
infrastructure components such as those specified in the ETSI NFV ISG MANO
architecture. Areas of focus in OPNFV include: Virtualized
Infrastructure Managers (VIM) such as OpenStack and Software Defined
Networking Controllers (SDNC) such as Open Daylight.

The OPNFV Dovetail project is responsible for the testing framework in
OPNFV. The Dovetail testing framework is currently used by all of the
active OPNFV projects. Dovetail has been through ~3 OPNFV release cycles
and has been hardened in the process. The Dovetail community includes
~15 companies and ~20 active developers.

The Dovetail test framework includes the following features which make
it ideal as the test framework for VNF certification testing:

1. Provides a Generic Test Framework

..

    While the Dovetail project is currently being used in OPNFV as the
    test framework for NFV infrastructure testing, there is nothing that
    limits the Dovetail test framework to NFV infrastructure testing.
    This allows the same test framework to be used across multiple NFV
    initiatives (OPNFV and ONAP) and across multiple (NFV infrastructure
    and VNF certification) test suites.

2. Separates the Vendor and Certification Authority environment

..

    Dovetail uses an authenticated REST interface which is used by the
    test environment to report test results to the test repository. This
    allows the test repository to be located in a different
    administrative domain than the test runtime environment.

3. Separates the test environment from the test framework environment

    Dovetail launches tests in a Docker container. This provides some
    isolation of the test environment from the test framework
    environment.

Figure 1 below illustrates the Dovetail test framework architecture.

.. image:: ./image1.png

Figure 1: OPNFV Dovetail Test Framework Architecture

Implementation Overview
-----------------------

OPNFV Dovetail will be integrated into the ONAP VNF Marketplace. The
ONAP VNF Marketplace is an ONAP application which displays all VNFs that
are available in an ONAP instantiation for incorporation into an ONAP
Network Service. Dovetail will be integrated into the VNF Marketplace
ingest flow and will also be available as a general service which can be
used to run additional VNF certification tests after the VNF Package has
been uploaded to the VNF Marketplace.

The VNF Marketplace ingest flow performs basic tests on a VNF package
before it is uploaded into the ONAP VNF Marketplace. Tests which fall
into this category will be incorporated into the ONAP VNF Package
Validation test suite.

The Dovetail client will also be available as a service in the VNF
Marketplace. The Dovetail client is an interactive application which
allows additional VNF Certification tests to be run on a VNF after the
VNF Package has been uploaded to the VNF Marketplace. The Dovetail
client will indicate which certification tests have been successfully
run on each VNF in the VNF Marketplace. VNF Vendors that are interested
in obtaining additional certifications for VNFs that have been uploaded
in the marketplace will have the ability to work with Certification Test
suppliers to obtain and run advanced certification tests. Figure 2
illustrates how the VNF Certification Framework is being integrated into
ONAP.

.. image:: ./image2.png

Figure 2: ONAP VNF Certification Framework

Figure 2 illustrates the flow that is used to execute the VNF Package On
Boarding test suite as part of the VNF ingest flow of the ONAP VNF
Marketplace.

1. Initiate Upload

..

    The VNF Vendor initiates a VNF upload request to the ONAP VNF
    Marketplace. This API call includes a reference to the VNF Package
    the vendor wants to upload.

2. Download testing client

..

    The VNF Marketplace executes the VNF Package On Boarding test suite
    as part of the VNF ingest flow. The first step in this process is to
    instantiate the Dovetail testing client. The Dovetail client is
    instantiated with a parameter which specifies the name of the test
    suite that Dovetail will execute. In this case Dovetail will execute
    the VNF Package On Boarding test suite.

3. Start Testing Flow

..

    Dovetail creates a Docker container for the test environment for
    each test in the test suite. The VNF Package On Boarding test suite
    includes tests which examine the contents of the contents of the VNF
    package, examine the orchestration template, and examine the VM
    image(s) of the VNF. Tests which use ONAP services will send
    asynchronous requests to the service via the ONAP Micro Services
    bus.

4. Check Progress

..

    Tests may check the status of ONAP services which are instantiated
    asynchronously.

5. Examine VNF

..

    ONAP services used by the VNF Package On Boarding test suite may
    need to access components of the VNF package for validate their
    content.

6. Report Certification Results Back

..

    As each test progresses, results are reported back through the
    Dovetail framework to the certification database. In this case, the
    certification database is local to the ONAP VNF Marketplace.

    If all of the tests in the VNF Package On Boarding test suite
    complete successfully, then the VNF Package and its contents are
    stored in the VNF Marketplace where they can be used for further
    ONAP VNF On Boarding processes.

Implementation Details
----------------------

Introduce a new test module under VNFSDK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A new test module ‘VnfTest’ will be added as a subproject in VNF-SDK.

This project will be similar to ‘Yardstick’ in the way it defines and
runs tests.

Dovetail to support new type
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A new test framework type will be introduced to dovetail –
“VNFTest\ **”.**

Dovetail will handle the new type in the same way yardstick/functest
types are handled.

When dovetail needs to fetch the “VnfTest” docker image, it will consult
with configuration for determining the exact image name and version.

The “VnfTest” framework is expected to support the same APIs and format
currently used between dovetail and yardstick/functest.

.. |image0| image:: image1.png
   :width: 6.5in
   :height: 6.03611in
.. |image1| image:: image2.png
   :width: 6.5in
   :height: 3.65625in