From 3502b06eab742bfc484b50f60e3cebb55294d942 Mon Sep 17 00:00:00 2001 From: andreasgeissler Date: Wed, 5 Jun 2019 21:14:56 +0200 Subject: [PATCH] Added PNF support in Onboarding and VF Creation Issue-ID: DOC-473 Signed-off-by: andreasgeissler Change-Id: I0a5be07fda257a0bd9b5d069da544920e81b3f5a --- .../onap-user/design/pre-onboarding/index.rst | 107 ++++++++++----- .../onap-user/design/resource-onboarding/index.rst | 144 ++++++++++++++------ docs/guides/onap-user/design/vfcreation/index.rst | 151 +++++++++++++++------ .../onap-user/design/vfcreation/media/SDC-Add.png | Bin 0 -> 31910 bytes .../design/vfcreation/media/SDC-Import.png | Bin 0 -> 32327 bytes 5 files changed, 282 insertions(+), 120 deletions(-) create mode 100644 docs/guides/onap-user/design/vfcreation/media/SDC-Add.png create mode 100644 docs/guides/onap-user/design/vfcreation/media/SDC-Import.png diff --git a/docs/guides/onap-user/design/pre-onboarding/index.rst b/docs/guides/onap-user/design/pre-onboarding/index.rst index 7a09f0db5..b11fa5c0c 100644 --- a/docs/guides/onap-user/design/pre-onboarding/index.rst +++ b/docs/guides/onap-user/design/pre-onboarding/index.rst @@ -7,13 +7,20 @@ Pre-Onboarding ============== - * `Create a Tenant`_ - * `Validate VFs (Virtual Functions)`_ - * `Generate Manifest and Package Artifacts`_ + * `Create a Tenant`_ (will be moved to "Service Deployment") + * `Generate Manifest and Package Artifacts`_ (for HEAT based VNFs) + * `Validate xNF Package (VNF/PNF)`_ + +.. _doc_guide_user_des_pre-onb_cre-ten: Create a Tenant --------------- +.. note:: + This section is not really belonging to the "Design" phase, + but to the preparation of the "Service Deployment" and will be + moved in the next release + Each service requires a tenant_ (a group of users who share a common access) in which resources are stored in the cloud. This process is performed using facilities of the network cloud, outside of ONAP. Confirm that the tenant is @@ -58,41 +65,28 @@ The overall process is as follows: |image1| -Validate VFs (Virtual Functions) --------------------------------- - -Prior to resource onboarding, the Certification Group does the following: - - - onboards the Heat template(s) and metadata to the SDC catalog - - creates a test VF - - runs the Heat scanning tools - - shares the results with any group that approves Virtual Functions - -In parallel, the Certification Group onboards the VF Image and OS to a -standalone ONAP instance (the "sandbox") and performs the following: - - - security scan - - compatibility test for the OS and vendor binary - - malware scan - -The Certification group then instantiates the VF image using the vendor -Heat (if provided) in order to validate that the VM can run on the Network -Cloud. - -No VF functionality testing is performed at this stage. - +.. _doc_guide_user_des_pre-onb_gen-man: Generate Manifest and Package Artifacts --------------------------------------- +.. note:: + This section describes the steps required to package a given HEAT + template into a zip-file, which can be onboarded to SDC. Instructions + to create TOSCA based VNF or PNF Onboarding Packages are not described + here + Before onboarding resources, run generate-manifest.py to generate a MANIFEST file. These steps are performed outside SDC. -OBSOLETE: **Prerequisites:** Obtain Heat/ENV files and other files required for -onboarding. See the reference document `VNF Heat Template Requirements -for OpenECOMP `__ for details. +**Prerequisites:** Obtain Heat/ENV files and other files required for +onboarding. The requirements are found in the following document. -UPDATE: see VNF Modeling Requirements / HEAT: https://onap.readthedocs.io/en/casablanca/submodules/vnfrqts/requirements.git/docs/Chapter5/Heat/index.html +.. toctree:: + :maxdepth: 1 + :titlesonly: + + Heat requirements <../../../../submodules/vnfrqts/requirements.git/docs/Chapter5/Heat/index.rst> #. Put the Heat, ENV, nested Heat, and other files used by get-file in templates in a directory. @@ -112,17 +106,64 @@ UPDATE: see VNF Modeling Requirements / HEAT: https://onap.readthedocs.io/en/cas - [dir y] contains the Heat/ENV files and other files - [dir x] contains the python script -#. Run the script on the Windows command line: +#. Run the script on the Windows command line (not valid anymore): - .. code-block:: + .. code-block:: python - python generate-manifest.py -f "dir y" + python generate-manifest.py -f "dir y" #. Examine the manifest file and confirm that is correct. #. Package all Heat/ENV files, all other files, and the MANIFEST.json into one .zip file. +.. _doc_guide_user_des_pre-onb_val: + +Validate xNF Package (VNF/PNF) +------------------------------ + +VNF and PNF packages have to follow the requirements described in: + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + VNF and PNF Modeling Requirements <../../../../submodules/vnfrqts/requirements.git/docs/Chapter5/index.rst> + ONAP Management Requirements <../../../../submodules/vnfrqts/requirements.git/docs/Chapter7/index.rst> + +For Validation of VNF and PNF packages the tools delivered by VNFSDK can be +used: + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + ../../../onap-provider/vnfvalidator.rst + +Prior to resource onboarding, the Certification Group does the following: + + - for VNF and PNF + - Validation of the delivered xNF package and artifacts + - using the VNF Validation Tools + - in case of VNF + - onboards the Heat template(s) and metadata to the SDC catalog + - creates a test VF + - runs the Heat scanning tools + - shares the results with any group that approves Virtual Functions + +In parallel, the Certification Group onboards the VF Image and OS to a +standalone ONAP instance (the "sandbox") and performs the following: + + - security scan + - compatibility test for the OS and vendor binary + - malware scan + +The Certification group then instantiates the VF image using the vendor +Heat (if provided) in order to validate that the VM can run on the Network +Cloud. + +No VF functionality testing is performed at this stage. + .. |image1| image:: media/tenant.png .. _tenant: https://wiki.onap.org/display/DW/Glossary#Glossary-tenant diff --git a/docs/guides/onap-user/design/resource-onboarding/index.rst b/docs/guides/onap-user/design/resource-onboarding/index.rst index 592651ee2..56f6b6e18 100644 --- a/docs/guides/onap-user/design/resource-onboarding/index.rst +++ b/docs/guides/onap-user/design/resource-onboarding/index.rst @@ -6,7 +6,8 @@ Resource Onboarding =================== -**Goal:** Add models and other artifacts required to create, configure, instantiate, and manage a VF and, optionally, a VFC. +**Goal:** Add models and other artifacts required to create, configure, + instantiate, and manage a VF and, optionally, a VFC. **Tool:** SDC @@ -30,14 +31,19 @@ After updating the artifacts in a VSP, also update: |image1| +.. _doc_guide_user_des_res-onb_cre-lic: + Create a License Model ---------------------- -VSPs optionally require a license and entitlements to enable the service provider to track the usage. +VSPs optionally require a license and entitlements to enable the service +provider to track the usage. -Note: For interim saving while creating the license model and its components, click |image2| +Note: For interim saving while creating the license model and its components, +click |image2| -**Prerequisites:** To obtain license information, contact the service provider's Supply Chain Management (SCM) group. +**Prerequisites:** To obtain license information, contact the service + provider's Supply Chain Management (SCM) group. |image3| @@ -45,25 +51,31 @@ Note: For interim saving while creating the license model and its components, cl #. Hover over Add and select New License Model. #. Complete all fields. #. Click *Save*. -#. In the ONBOARD header, hover over the arrow after License Agreements to reveal a menu. +#. In the ONBOARD header, hover over the arrow after License Agreements to + reveal a menu. Select the following options in order: - #. Create 0 or more license key groups (see `Create a License Key Group [Optional]`_). + #. Create 0 or more license key groups (see + `Create a License Key Group [Optional]`_). #. Create 1 or more entitlement pools (see `Create an Entitlement Pool`_). #. Create 1 or more feature groups (see `Create a Feature Group`_). #. Create 1 or more license agreements (see `Create a License Agreement`_). - Note: Perform all steps above before submitting the license model to the SDC catalog. + Note: Perform all steps above before submitting the license model to + the SDC catalog. #. In the header, click the license model created in steps 1 to 4. #. Click *Check In* to save changes. -#. Click *Submit* to add the license model to the catalog. A success message displays. -#. After creating a license, complete `Create a Vendor Software Product`_ to add the VSP required for the associated VF. +#. Click *Submit* to add the license model to the catalog. A success message + displays. +#. After creating a license, complete `Create a Vendor Software Product`_ to + add the VSP required for the associated VF. Create a License Key Group [Optional] ------------------------------------- -If required by the resource model, create one or more license key groups; otherwise the license key group is optional. +If required by the resource model, create one or more license key groups; +otherwise the license key group is optional. **Prerequisites:** `Create a License Model`_ @@ -79,7 +91,9 @@ If required by the resource model, create one or more license key groups; otherw Create an Entitlement Pool -------------------------- -**Prerequisites:** If required by the resource model, create one or more license key groups (see `Create a License Key Group [Optional]`_). +**Prerequisites:** If required by the resource model, create one or more + license key groups (see + `Create a License Key Group [Optional]`_). |image5| @@ -94,7 +108,8 @@ Create a Feature Group **Prerequisites:** Create one or more: -* license key groups if required by the resource model (see `Create a License Key Group [optional]`_) +* license key groups if required by the resource model + (see `Create a License Key Group [optional]`_) * entitlement pools (see `Create an Entitlement Pool`_) |image6| @@ -114,24 +129,29 @@ Create a Feature Group Create a License Agreement -------------------------- -**Prerequisites:** Create one or more feature groups (see `Create a Feature Group`_). +**Prerequisites:** Create one or more feature groups + (see `Create a Feature Group`_). |image7| 1. From the drop-down menu, select License Agreements. 2. Click *Add License Agreement*. The Create New License Agreement box displays. -3. On the General tab, complete required fields (mandatory fields are marked by a red asterisk). +3. On the General tab, complete required fields (mandatory fields are marked + by a red asterisk). 4. Click *Feature Groups*. 5. If not selected, click *Available Feature Groups*. 6. Select one or more groups and click the right arrow. 7. Click *Save*. 8. Return to step 5 of `Create a License Model`_ to complete the license model. +.. _doc_guide_user_des_res-onb_cre-vsp: + Create a Vendor Software Product -------------------------------- -Create one or more Vendor Software Products (VSPs) as the building blocks for VFs. +Create one or more Vendor Software Products (VSPs) as the building blocks +for VFs. .. note:: For interim saving while creating a VSP, click |image2| @@ -139,7 +159,7 @@ Create one or more Vendor Software Products (VSPs) as the building blocks for VF **Prerequisites:** * `Create a License Model`_ -* Generate manifest and package artifacts. +* Existing VNF HEAT package or VNF/PNF CSAR/Zip package #. From the SDC HOME page, click *ONBOARD*. #. Hover over Add and select New Vendor Software Product. @@ -149,19 +169,25 @@ Create one or more Vendor Software Products (VSPs) as the building blocks for VF The Overview section is displayed. .. note:: - A warning is displayed under License Agreement if the VSP does not have an associated license. + A warning is displayed under License Agreement if the VSP does not have + an associated license. #. Click *Software Product Details* (left pane). |image8| -#. In order, select a licensing version, a license agreement, and one or more feature groups. -#. [Optional] Complete other fields, such as Availability (high-availability zones) and Storage - Data Replication (requirement for storage replication), as required. +#. In order, select a licensing version, a license agreement, and one or more + feature groups. +#. [Optional] Complete other fields, such as Availability (high-availability + zones) and Storage Data Replication (requirement for storage replication), + as required. #. In Software Product Attachments (right pane), click *Select file*. -#. Locate a Heat .zip package and click *Open*. - SDC validates the files in the package. After successful validation, SDC displays the files - and a success message. If validation fails, SDC displays the errors in the files. +#. In case of a VNF HEAT file: Locate the Heat .zip package and click *Open*. + In case of a VNF or PNF CSAR file: Locate the VNF or PNF csar/.zip package + and click *Open*. +#. SDC validates the files in the package. After successful validation, SDC + displays the files and a success message. If validation fails, SDC displays + the errors in the files. Example Heat errors: @@ -169,64 +195,94 @@ Create one or more Vendor Software Products (VSPs) as the building blocks for VF #. Click *Check In* to save the changes. #. Click *Submit* to add the VSP to the catalog. -#. A success message is displayed. If the VSP attachments contain errors, an error message is displayed instead. Fix the issue(s) and re-submit. -#. To configure VFCs associated with the VSP, see `Update VFCs in a VSP [optional]`_, below. +#. A success message is displayed. If the VSP attachments contain errors, an + error message is displayed instead. Fix the issue(s) and re-submit. +#. To configure VFCs associated with the VSP, see + `Update VFCs in a VSP [optional]`_, below. + +.. _doc_guide_user_des_res-onb_upd-vfc: Update VFCs in a VSP [optional] ------------------------------- -If required, configure Virtual Function Components (VFCs) associated with a VSP, such as the Hypervisor, VM recovery details, and cloning. VFCs are listed on the Components tab. +If required, configure Virtual Function Components (VFCs) associated with a +VSP, such as the Hypervisor, VM recovery details, and cloning. VFCs are listed +on the Components tab. .. note:: - All fields are optional. Answers to questionnaires are stored as metadata only on the SDC platform. + All fields are optional. Answers to questionnaires are stored as metadata + only on the SDC platform. -**Prerequisites:** Add one or more VSPs (see `Create a Vendor Software Product`_). +**Prerequisites:** Add one or more VSPs + (see `Create a Vendor Software Product`_). #. From the SDC HOME page, click *ONBOARD* and search for a VSP. #. In the Overview section, click *Check Out*. #. In Components (bottom pane), click a VFC (VSP component). The component links display in the left pane. -#. Click *General* to view and edit general parameters such as hypervisor, image format, VM recovery details, and DNS configuration. -#. Click *Compute* to view and edit VM parameters such as the number of VMs required for a VFC instance and persistent storage/volume size. -#. Click *High Availability & Load Balancing* to answer questions related to VM availability and load balancing. -#. Click *Networks* to view or edit parameters related to network capacity and interfaces. +#. Click *General* to view and edit general parameters such as hypervisor, + image format, VM recovery details, and DNS configuration. +#. Click *Compute* to view and edit VM parameters such as the number of VMs + required for a VFC instance and persistent storage/volume size. +#. Click *High Availability & Load Balancing* to answer questions related + to VM availability and load balancing. +#. Click *Networks* to view or edit parameters related to network capacity + and interfaces. .. note:: - Click an interface to view or edit it. A dialog box displays similar to the figure below. + Click an interface to view or edit it. A dialog box displays similar + to the figure below. |image10| -#. Click *Storage* to configure storage information, such as backup type, storage size, and logging. -#. Click *Process Details*, click *Add Component Process Details*, and complete the Create New Process Details dialog box. Use Process Details to identify the processes and configuration associated with VFCs. +#. Click *Storage* to configure storage information, such as backup type, + storage size, and logging. +#. Click *Process Details*, click *Add Component Process Details*, and complete + the Create New Process Details dialog box. Use Process Details to identify + the processes and configuration associated with VFCs. #. Click *Monitoring* to upload MIB or JSON files for SNMP traps and polling. #. Click *Overview* and click *Check In* to save changes. -#. If updating a VSP, click *Submit*. If this procedure is performed during the workflow to create a VSP, there is no need to click *Submit* now. +#. If updating a VSP, click *Submit*. If this procedure is performed during the + workflow to create a VSP, there is no need to click *Submit* now. + +.. _doc_guide_user_des_res-onb_upd-vsp: Update a VSP [optional] ----------------------- Upload a new Heat package to a VSP. Afterward, update the VF and service. -**Prerequisites:** Add one or more VSPs (see `Create a Vendor Software Product`_). +**Prerequisites:** Add one or more VSPs + (see `Create a Vendor Software Product`_). #. From the SDC HOME page, click *ONBOARD* and search for a VSP. #. In the Overview section, click *Check Out*. #. In Software Product Attachments (right pane), click *Select file*. -#. Locate a Heat .zip package and click *Open*. +#. In case of a VNF HEAT file: Locate the Heat .zip package and click *Open*. + + In case of a VNF or PNF CSAR file: Locate the VNF or PNF csar/.zip package + and click *Open*. + SDC warns that uploading a new package erases existing data. -#. Click *Continue* to upload the new Heat package. - SDC validates the files in the package. After successful validation, SDC displays the files and a success message. If validation fails, SDC displays the errors in the files. +#. Click *Continue* to upload the new package. + SDC validates the files in the package. After successful validation, SDC + displays the files and a success message. If validation fails, SDC displays + the errors in the files. .. note:: - If the Heat template contains errors, contact the Certification Group for guidance on how to proceed. + If the Heat template contains errors, contact the Certification Group for + guidance on how to proceed. #. Click *Check In* to save changes. #. Click *Submit* to add the VSP to the catalog. - A success message is displayed. If the VSP attachments contain errors, an error message is displayed instead. Fix the issue(s) and re-submit. + A success message is displayed. If the VSP attachments contain errors, an + error message is displayed instead. Fix the issue(s) and re-submit. #. After updating the VSP: - #. Upload the VSP to the VF (see steps 3 to 5 in (TBD)Update a VF [optional]). - #. Update the VF version in services that include the VF (see step 4 in (TBD) Update a service [optional]). + #. Upload the VSP to the VF + (see steps 3 to 5 in :ref:`doc_guide_user_des_vf-cre`). + #. Update the VF version in services that include the VF (see step 4 + in :ref:`doc_guide_user_des_ser-des`). .. |image0| image:: media/sdro-resource-onboarding-workflow.png diff --git a/docs/guides/onap-user/design/vfcreation/index.rst b/docs/guides/onap-user/design/vfcreation/index.rst index 0b49b994d..1ca46bca1 100644 --- a/docs/guides/onap-user/design/vfcreation/index.rst +++ b/docs/guides/onap-user/design/vfcreation/index.rst @@ -18,40 +18,42 @@ service. Validate and certify the VFs. Steps ----- -- `Create a VF`_ -- `Update a VF [optional]`_ -- `Submit a VF for testing`_ -- `Test a VF`_ +- `Create a VF/PNF by VSP import`_ +- `Create a VF/PNF manually`_ +- `Update a VF/PNF [optional]`_ +- `Submit for testing`_ +- `Test a VF/PNF`_ -Create a VF ------------ +.. _doc_guide_user_des_vf-cre_cre-imp: -**Prerequisites:** +Create a VF/PNF by VSP import +----------------------------- + +**Prerequisites:** (see :ref:`doc_guide_user_des_res-onb` ) -- Create a license for each VF (see Create a license model) (see also the - tutorial Creating a Licensing Model) +- Create a license for each VF/PNF - Create a Vendor Software Product. **Steps** -#. From the SDC HOME page, click the *Vendor Software Component* icon in the - header (upper right). +#. From the SDC HOME page, click the *Import VSP* |image2| -#. From the Import VF box, expand a VSP name and click the *Import VSP* icon. +#. From the *Import VF* box, expand a VSP name and click the *Import VSP* icon. |image3| #. In the General section, complete all fields. - .. note:: Use the letters "VF" in the name to indicate that the component is a VF. + .. note:: Use the letters "VF" or "PNF" in the name to indicate that the + component type. #. Click *Create*. - - A message displays while VF creation is in progress. (This can take up to + - A message displays while creation is in progress. (This can take up to 10 minutes.) - - A message displays when VF creation is complete. + - A message displays when creation is complete. #. Click *Check In* to save changes. @@ -59,34 +61,89 @@ Create a VF #. Enter a comment and click *OK*. - - A message displays when the VF is checked in. + - A message displays when the VF/PNF is checked in. -#. [Optional] At any time before submitting the VF for testing, click these - options to update VF information: +#. [Optional] At any time before submitting the VF/PNF for testing, click + these options to update VF/PNF information: .. note:: These tasks can be done only before submitting the VF for testing. - - Icon ??? change the icon associated with the VF (vendor-supplied icons are + - **Icon** change the icon associated with the VF/PNF (vendor-supplied icons + are preferred) + - **Deployment Artifacts** download, view, modify, or change deployment + artifacts (for example, the contents of the Heat .zip file, which contains + the Heat volume template, the license, etc.) + - **Information Artifacts** view or upload artifacts, such as test scripts, test + results, or the AIC questionnaire + - **TOSCA Artifacts** view or upload the TOSCA model or the TOSCA template + - **Properties** define or update properties + - **Composition** view or edit the graphical representation of the resource-level + TOSCA model (generated from the Heat template) + - **Activity Log** view activity related to assets associated with the VF/PNF + (displays the action, date, user, status, and any comments related to each + action) + - **Deployment** view VF modules defined in the Heat template + - **Inputs** view inputs defined for the resource-level TOSCA model + +#. After creating a VF/PNF, submit it for testing (see `Submit for testing`_). + +.. _doc_guide_user_des_vf-cre_cre-man: + +Create a VF/PNF manually +------------------------ + +**Steps** + +#. From the SDC HOME page, click the *Add VF* or *Add PNF* + + |image9| + +#. In the General section, complete all fields. + +#. Before submitting the VF/PNF for testing, click these + options to update VF/PNF information: + + .. note:: These tasks can be done only before submitting the VF/PNF for testing. + + - **Icon** change the icon associated with the VF/PNF (vendor-supplied icons are preferred) - - Deployment Artifacts ??? download, view, modify, or change VF deployment + - **Deployment Artifacts** download, view, modify, or change VF/PNF deployment artifacts (for example, the contents of the Heat .zip file, which contains the Heat volume template, the VF license, etc.) - - Information Artifacts ??? view or upload artifacts, such as test scripts, test + - **Information Artifacts** view or upload artifacts, such as test scripts, test results, or the AIC questionnaire - - TOSCA Artifacts ??? view or upload the TOSCA model or the TOSCA template - - Properties ??? define or update VF properties (not used in Release 1) - - Composition ??? view or edit the graphical representation of the resource-level + - **TOSCA Artifacts** view or download the TOSCA model or the TOSCA template + - **Properties** define or update properties + - **Composition** view or edit the graphical representation of the resource-level TOSCA model (generated from the Heat template) - - Activity Log ??? view activity related to assets associated with the VF + - **Activity Log** view activity related to assets associated with the VF/PNF (displays the action, date, user, status, and any comments related to each action) - - Deployment ??? view VF modules defined in the Heat template - - Inputs ??? view inputs defined for the resource-level TOSCA model + - **Deployment** view VF modules defined in the Heat template + - **Inputs** view inputs defined for the resource-level TOSCA model + +#. Click *Create*. + + - A message displays while creation is in progress. (This can take up to + 10 minutes.) + - A message displays when creation is complete. + +#. Click *Check In* to save changes. + + - A box displays for confirming the changes. + +#. Enter a comment and click *OK*. + + - A message displays when the is checked in. + + +#. After creating a VF/PNF, submit it for testing (see `Submit for testing`_). -#. After creating a VF, submit it for testing (see `Submit a VF for testing`_). -Update a VF [optional] ----------------------- +.. _doc_guide_user_des_vf-cre_vf-upd: + +Update a VF/PNF [optional] +-------------------------- - Update the VSP and other artifacts in a VF. - Upload a new version the VSP to the VF whenever the VSP is updated (see steps @@ -97,8 +154,8 @@ Update a VF [optional] **Prerequisites:** -- `Create a VF`_. -- If the VSP was updated: Update a VSP [optional] +- `Create a VF/PNF by VSP import`_ or `Create a VF/PNF manually`_ +- If the VSP was updated: :ref:`doc_guide_user_des_res-onb_upd-vsp` **Steps** @@ -127,19 +184,23 @@ Update a VF [optional] #. After updating the VF: - - Submit the VF for testing (see Submit a VF for testing). + - Submit the VF for testing (see `Submit for testing`_). - Update the VF version in any service that contains the VF (see step 4 in Update a service [optional]). -Submit a VF for testing ------------------------ +.. _doc_guide_user_des_vf-cre_sub-tst: + +Submit for testing +------------------ -**Prerequisites:** `Create a VF`_ +**Prerequisites:** `Create a VF/PNF by VSP import`_ or +`Create a VF/PNF manually`_ **Steps** -#. When a VF is ready for testing, click *CATALOG* and service for the VF. -#. Click the VF and click *Submit for Testing*. +#. When a VF/PNF is ready for testing, click *CATALOG* and service for the + VF/PNF. +#. Click the VF/PNF and click *Submit for Testing*. |image7| @@ -153,12 +214,14 @@ Submit a VF for testing #. Add the email addresses of the people on the Certification Group for this site with the *Tester* role and send the email. -Test a VF ---------- +.. _doc_guide_user_des_vf-cre_tst-vf: -Test the design and artifacts of a VF. +Test a VF/PNF +------------- -**Prerequisites:** `Submit a VF for testing`_. +Test the design and artifacts of a VF/PNF. + +**Prerequisites:** `Submit for testing`_ **Steps** @@ -170,10 +233,12 @@ Test the design and artifacts of a VF. #. When testing is complete, click *Accept*. .. |image1| image:: media/design_vf_workflow.png -.. |image2| image:: media/image2017-1-27_11-13-30.png +.. |image2| image:: media/SDC-Import.png .. |image3| image:: media/image2017-1-27_11-14-3.png .. |image4| image:: media/image2017-1-27_11-17-18.png .. |image5| image:: media/sdc_artifact_update.png .. |image6| image:: media/design_vf_updatevspmessage.png .. |image7| image:: media/image2017-1-27_11-20-13.png .. |image8| image:: media/image2017-1-27_11-21-4.png +.. |image9| image:: media/SDC-Add.png + diff --git a/docs/guides/onap-user/design/vfcreation/media/SDC-Add.png b/docs/guides/onap-user/design/vfcreation/media/SDC-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..b4178c0ecfa03dff697ab6306a9edfa3571abd51 GIT binary patch literal 31910 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 P{hor1s&tX$>wy0Ua_b+% literal 0 HcmV?d00001 -- 2.16.6