﻿.. ============LICENSE_START==========================================
.. ===================================================================
.. Copyright © 2018 AT&T Intellectual Property. All rights reserved.
.. ===================================================================
.. Licensed under the Creative Commons License, Attribution 4.0 Intl.  (the "License");
.. you may not use this documentation except in compliance with the License.
.. You may obtain a copy of the License at
.. 
..  https://creativecommons.org/licenses/by/4.0/
.. 
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
.. ============LICENSE_END============================================

.. _appc_cdt_guide:

===================
APPC CDT User Guide
===================

Introduction
============

This document is the APPC Controller Design Tool (CDT) User Guide for self-service
onboarding of VNF’s. VNF owners can create templates and other artifacts
for APPC Configure command (used to apply a post-instantiation
configuration) as well as other life cycle commands.

A complete list of all APPC supported commands is contained in the
APPC LCM API Guide available on onap.readthedocs.io.

Overview of APPC Support for VNF Configuration and Lifecycle Commands
======================================================================

APPC is an ONAP component that performs functions to manage the
lifecycle of VNF’s and their component. The picture below summarizes the
APP-C design intent.

|image0|

Some lifecycle commands are supported on any VNF type, such as commands
executed using OpenStack or for generic REST calls such as for
HealthCheck. Other commands require models called templates to be
created in the APPC Controller Design Tool(CDT) by the VNF owner.

Templates are needed for lifecycle commands such as for
post-instantiation configuration and for passing payloads to a Chef or
Ansible server. Templates contain static and instance-specific
parameters in a structured language (currently limited to xml and JSON).
The APPC CDT allows a VNF technology owner to identify the
instance specific parameters with a unique name.

At run time, the instance specific parameter values are populated in the
template to replace the parameter name.

|image1|

|image2|

|image3|

Overview of the Onboarding Process
==================================

Pre-Requisites for Onboarding:
------------------------------

-  The VNF must support the below listed device protocols along with OpenStack for VM-level commands:
   - Netconf, 
   - Chef, 
   - Ansible,
   - REST  - The REST protocol is used for REST interfaces to a VNF. Currently, the only action that can use REST is HealthCheck.
   - RESTCONF - The RESTCONF protocal is used only for VNFs that support Netconf and are able to be mounted in OpenDayLight (ODL). Use the protocal NETCONF-XML if the VNF is not ODL mountable.
   
-  In order to build the templates needed for lifecycle commands, the
   VNF owner will be asked to upload either an xml file (for Netconf) or
   a JSON file (for Chef or Ansible). This file contains the parameter
   values in a valid schema that would be sent to either the VNF or the
   Chef/Ansible server to execute the action. For more detail on
   Netconf, Chef, or Ansible, see the ONAP vendor guidelines at:

   https://wiki.onap.org/pages/viewpage.action?pageId=1015852&preview=/1015849/1017888/VNF%20Management%20Requirements%20for%20OpenECOMP.pdf

-  The VNF related key identifiers (vnf-type, vnfc-type,
   vnfc-function-code) that will be stored in A&AI have been defined.

Onboarding Process Steps:
-------------------------

1. Use the APPC CDT GUI to populate **reference data**
   describing the VNF and action to be onboarded.

    -  Select the VNF, action, and protocol to be on-boarded.

    -  Describe the VM/VNFC components that comprise the VNF’s. APPC
       will use this VM/VNFC data to update A&AI when configuring the VNF
       at run time.

2. Create a **template** from a “golden” configuration file.

	-  Upload a “golden configuration” file (described later) into the APPC CDT GUI.

	-  Manually edit the configuration file to associate parameter names
	   with instance-specific values you wish to parameterize (e.g., IP addresses).

	-  This creates a template file, which will be used at run-time to
	   create the payload that APPC sends to the VNF or to Ansible/Chef.

	-  Alternative: If the golden configuration changes, rather than
	   manually re-creating an updated template, you can *automatically*
	   create an updated template by **Merging** a current parameter
	   name-value pairs file with the new configuration file. APPC will
	   scan the new configuration file, and automatically replace values
	   with parameter names.

3. Create a **parameter definition** file describing instance-specific
   parameters in the template.

	-  Once you have a template, use the **Synchronize Template Parameters** button to
	   automatically create/update a parameter definition file (and a
	   parameter name-value pair file) based on the template.

	-  You can then populate/update the fields describing each parameter.

	-  If the parameters will be populated from external systems (such as INSTAR), you can upload
	   a “key file” that automatically populates key fields used to retrieve
	   data from the external system.

	-  If the parameters will be populated from A&AI, you can select the
	   rules and key fields used to retrieve data from A&AI.

	-  The parameter definition file will be used at run time to
	   automatically obtain parameter values from external system, A&AI, or a user
	   input spreadsheet for insertion into the template.

4. Create a **parameter name-value pair file** for those parameters.

	-  Once you have a template, use the **Synchronize Template Parameters** button to
	   automatically create a parameter name-value pair file (and a
	   parameter definition file) based on the template.

	-  The parameter name-value file serves as a guide for populating
	   instance-specific data into the user input spreadsheet used at run
	   time. The parameter name-value file can also be used to automatically
	   create a template via the **Merge** function as described in step 2.
	   
	- You can also use the **Synchronize With Name Values** button to update the parameter definitions to match an existing parameter name-values pair file.

5. **Test** the template in your test environment using the **TEST** function of APPC CDT

	-  Use the **Save All to APP-C** button in the CDT GUI to save the
	   artifacts for your VNF to APPC.  This makes the current version of artifacts available to both the APPC CDT and APPC Run Time. 

	-  Prepare a “user input” excel file on your PC and upload it to the APPC CDT.

	-  **Execute** the onboarded action on the VNF. View test progress and test results. . 
	
The screen shots in following sections illustrate how to use the APPC CDT GUI for each step.

Artifacts used for Onboarding:
------------------------------

For a given VNF, each action must be on-boarded separately. Actions can
be on-boarded in any order; it is not required that “Configure” be the first action onboarded.

You will create 1 Reference Data file for each VNF, and a set of up to 3
files for each action you are onboarding:

	1. Template
	2. Parameter definition file (pd\_configure)
	3. Parameter name-value pair file (param\_configure)

For example, onboarding the “vABC” VNF for 2 actions (Configure and
ConfigModify) may result in these 7 files:

	1. reference\_AllAction\_vABC\_0.0.1V
	2. template\_Configure\_vABC\_0.0.1V
	3. pd\_Configure\_vABC\_0.0.1V
	4. param\_Configure\_vABC\_0.0.1V
	5. template\_ConfigModify\_vABC\_0.0.1V
	6. pd\_ConfigModify\_vABC\_0.0.1V
	7. param\_ConfigModify\_vABC\_0.0.1V

A **Template** is required for the Ansible, Chef and Netconf protocols.

The **Parameter Definition** and **Parameter Name-Value Pair** artifacts
are typically used with the Configure and ConfigModify templates and are
optional for templates of other actions.

OpenStack and REST protocols do not use a template or parameter
definitions or name-value pairs.

Using the APPC Controller Design Tool for VNF Onboarding
========================================================

Go to the APPC CDT GUI in the test environment using a Firefox browser.

http://<server>:<port>

- Where:  
	- <server> = The server IP or host where CDT is deployed.
	- <port> = By default 8080 for a HEAT deployed CDT or 30289 for an OOM deplyed CDT.

|image4|

Clicking on “About Us” will display the current software version and who to contact for support. The contact information is configurable. What is display in diagram is just an example.

|image5|

Choose “My VNF’s”.

If you have not used APPC CDT previously, you will be asked to 
enter your user id. Your work will be stored under this user id. There
is no password required at this time.

Note: If multiple self-service users will be working on a set of VNF’s,
it is suggested that you enter a group\_name rather than your user\_id.
This group name would be used by all users in the group so that all
users can view/edit the same set of artifacts.

If you have previously used APPC CDT, you user id will
automatically be selected.

|image6|

The “My VNFs” GUI displays a list of the vnf-type/vnfc-types which are
stored under your userid in the APPC database. You can choose either
“Create New VNF” or “View/Edit” for one of your existing VNF’s.

|image7|

If you have not created any VNF artifacts in the current release of the
APPC CDT, you will see a screen like this; click “Create new
VNF” to begin.

VNF artifacts created using earlier versions of the APPC CDT
can be uploaded and then edited/saved, as shown on later screens. You
should not have to re-create these VNF artifacts.

|image8|

If you choose to create a new VNF, you will see a pop-up box like this.

|image9|

Enter the VNF Type (and optional VNFC Type) and click next. (The optional VNFC check box is explained later)

Alternatively, you can leave the VNF type blank and choose “PROCEED
ANYWAY” if you want to proceed to the Reference Data screen where you
can populate the VNF reference data by uploading an existing Reference
File or by manually entering it.

You must populate the VNF field if uploading the existing file does not
populate it.

Populate reference data describing the VNF and action to be onboarded
---------------------------------------------------------------------

|image10|

|image11|

|image12|

|image13|

|image14|

Note 1: When downloading your work to APPC; the system will download
only the artifacts that have been updated in the current session. You
may not see all 4 artifacts unless you visit/edit the reference,
template, parameter and parameter definition screens.

Note 2: When downloading files, the system will display a pop-up window
for each file, but the windows are all placed on top of each other. You
can drag the pop-up windows if you want to see them all at the same
time.

|



|

When using the Mozilla Firefox browser, selecting “Download to PC will display a dialog box giving you a choice of opening or saving the files, and an option to “Do this automatically for files like this for now on”. Choosing “save” and checking this option is a convenient way to easily save multiple downloaded artifacts from APP-C to your PC

|image15a|

Note regarding VNFC Type
~~~~~~~~~~~~~~~~~~~~~~~~

There are a limited number of VNF’s that are identified by both VNF type and VNFC type. When adding a new VNF of this kind to APP-C, enter the VNF type and check the VNFC box in the pop-up window, and choose NEXT.

Alternatively, you can leave the VNF type blank and choose “PROCEED ANYWAY” if you want to proceed to the Reference Data screen where you can populate the VNF reference data by uploading an existing Reference File or by manually entering it. 

|image15b|

On the subsequent Reference screen, you must add the VNFC type(s).

|image15c|

Enter the new VNFC type and click ADD to add it to a drop-down list of VNFC types for this VNF.  Repeat for each VNFC type you wish to add.

|image15d|

Choose the desired VNFC Type from the drop-down list of VNFC types.

|image15e|

In the VNFC section, you must re-enter the VNFC type to match what you previously selected.

|image15f|

Populate OpenStack actions for a VM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You can also onboard OpenStack commands for the VM level components of
the VNF

Under ‘Action’, select “OpenStack Actions” and then under ‘Protocol’
select “OpenStack”.

You must populate the ‘VNF type’ if it is not already populated.

|image16|

Next, upload an excel file of VM capabilities for your VNF. The excel
must list OpenStack actions in the first column, and then have a column
for each VM type (i.e., VNFC Function Code) showing which actions are
applicable for that VM type, as shown Excel sample below:

|imageA|

APPC will import the data from the excel and display the results.

|image17|

The Template and Parameter Definition tabs do not apply to OpenStack
commands.

**REFERENCE DATA SCREEN HELP**

+--------------------------+------------------------------------------------------------------------------------------------------------------+
| **Field/Object**         | **Description**                                                                                                  |
+==========================+==================================================================================================================+
|                                                     **VNF Reference Data**                                                                  |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Action                   | The action to be executed on the VNF, e.g., “CONFIGURE” (see table below).                                       |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| VNF Type                 | The name of the VNF, e.g. vDBE.                                                                                  |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| VNFC Type                | NA when describing a VNF; When describing a VNFC, enter the VNFC name e.g.,MSC, SSC, MMC, etc.                   |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Device Protocol          | Choose desired protocol e.g., NETCONF-XML (see table below).                                                     |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Template                 | Will there be a template created for this VNF and action? Yes/No.                                                |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| User Name                | Enter the user name used to configure the VNF e.g., “admin” or “root”.                                           |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Port Number              | Enter the port number used to configure the VNF, e.g., 22.                                                       |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Context URL              | Enter the context portion of the REST URL (Currently used only for the HealthCheck action with REST protocol).   |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
|                                                      **VNFC information**                                                                   |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| VNFC Type                | Enter the VNFC name e.g. MSC, SSC, MMC, etc.                                                                     |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| VNFC Function Code       | Enter the standard 3 character value for the VNFC.                                                               |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| IP Address V4 OAM VIP    | Select Y to store the O&AM VIP address with the VNFC record; otherwise select N.                                 |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Group Notation Type      | Select the naming scheme for VNFC/VM instances (first-vnfc-name, fixed value, relative value)                    |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Group Notation Value     | For first-vnfc-name type, enter text such as “pair” or “group”.                                                  |
|                          |                                                                                                                  |
|                          | For fixed value type, enter any alpha-numeric text “1”, “test” etc.                                              |
|                          |                                                                                                                  |
|                          | For relative value type, enter a number “1”, “2”, “4”, etc                                                       |
+--------------------------+------------------------------------------------------------------------------------------------------------------+
| Number of VM’s           | Enter the # of VM’s for this VNFC.                                                                               |
+--------------------------+------------------------------------------------------------------------------------------------------------------+

|

This table shows which actions and protocols are currently available for
on-boarding with the Beijing release.

+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
|  **Action**                            |**Netconf-XML**| **Ansible**   | **Chef**   | **REST**   | **OpenStack**  |**Protocol is**|
|                                        |**Restconf**   |               |            |            | **(VM Level)** |**Not**        |
|                                        |               |               |            |            |                |**Applicable** |
+========================================+===============+===============+============+============+================+===============+
| **ActionStatus**                       |               |               |            |            |                |     NA        |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **AttachVolume**                       |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Audit**                              | YES           | YES           | YES        | YES        |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **CheckLock**                          |               |               |            |            |                |     NA        |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Configure**                          | YES           | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Config Modify**                      | YES           | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Config Backup**                      |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Config Restore**                     |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **ConfigScaleOut**                     | YES           | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **DetachVolume**                       |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **DistributeTraffic**                  |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Evacuate**                           |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **HealthCheck**                        |               | YES           | YES        | YES        |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Lock**                               |               |               |            |            |                |      NA       |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Migrate**                            |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **QuiesceTraffic**                     |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Rebuild**                            |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Restart**                            |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **ResumeTraffic**                      |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Snapshot**                           |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Start**                              |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Start Application**                  |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Stop**                               |               |               |            |            | YES            |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Stop Application**                   |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Sync**                               | YES           | YES           | YES        |  YES       |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **Unlock**                             |               |               |            |            |                |       NA      |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **UpgradeBackout**                     |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **UpgradeBackup**                      |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **UpgradePostCheck**                   |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **UpgradePreCheck**                    |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
| **UpgradeSoftware**                    |               | YES           | YES        |            |                |               |
+----------------------------------------+---------------+---------------+------------+------------+----------------+---------------+
 


Create a template from a “golden” configuration file
----------------------------------------------------

There are several ways to create a template in APPC CDT:

-  Start from golden instance config file; manually add parameters
   (described in this section)

-  Start with a template file, manually add more parameters. (described
   in section Synchronizing a Template)

-  Start with config file; create updated template by **merging**
   name-value pairs. (described in Create a file containing name-value pairs for parameters section)

Start with a working configuration for a “golden instance” of the VNF
(xml if Netconf) or the payload to be downloaded to the Chef or Ansible
server (JSON).

Open the XML or JSON file in Notepad ++ and verify that the format is
schema compliant. If the xml file is for a post-instantiation
configuration, then modify the config to include only statements that
are to be added (merged) with any configuration that is on the VNF
instance after instantiation. For example, remove statements that might
change root passwords, etc.

Optionally, add Velocity statements to the file, if desired, to handle
special constructs such as variable lists, template defined constants,
conditional statements, etc.

Here are links with more information about the Velocity java-based
template engine:

    http://velocity.apache.org/engine/2.0/vtl-reference.html

    http://velocity.apache.org/engine/2.0/user-guide.html

This screen shows a sample Golden Configuration file that has been
uploaded to APP-C CDT.

|image18|

Next, designate instance-specific values as parameters, using this
procedure:

    1) Highlight the instance-specific value (such as “node0 )  with the cursor and then type “CTRL” and “4”

    |image19|

    2) Type the name you want to use for this parameter into the pop-up window and click SUBMIT

    |image20|

    3) The system will display your parameter name after the value you highlighted

    |image21|

    4) Repeat for each instance-specific value that you wish to turn into a parameter.

*Summary of editing commands:*

 - CTRL+4 to add a parameter (also saves previous unsaved parameter)
 - CTRL+S to save a parameter
 - CTRL+Z to undo the last edit

Notes on naming Parameters:

-  Choose meaningful, unique parameter names for each parameter. If the
   same parameter value appears in multiple places in the config, the
   parameter name which is assigned to the first instance will be
   automatically assigned to all instances. However, you may choose a
   different parameter name for each instance of the parameter value
   (except when using the MERGE function).

-  Use only dash (-) or underline (\_) as separators between words in
   the name.

-  The name should not contain spaces or any other special characters.

-  Do not use parameter names which are sub-strings of other parameter
   names. For example, don’t use field1 and field12 as parameter names.

In the template, the first instance of a parameter will be highlighted in green and subsequent instances of the same parameter will be highlighted in orange. 

Synchronizing a Template
~~~~~~~~~~~~~~~~~~~~~~~~

Once you have named all the parameters (this example shows 3
parameters), click the “SYNCHRONIZE TEMPLATE PARAMETERS”  button to automatically create a
parameter definition file and a parameter name-value file. The next
sections describe these files.

It may take a few seconds for the system to synchronize; when it is
complete, you will be taken to the Parameter Definition screen.

Remember to use the SAVE and/or DOWNLOAD buttons on the Reference Data
screen to preserve your work.

|image23|

Modifying an Existing Template
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In addition to creating new templates, you can also modify an existing
template by adding or removing parameter names.

To add a new parameter name, follow the steps in the Create a template from a "golden" configuration file section above.
SYNCHRONIZE TEMPLATE PARAMETERS  to add the new parameter to the name/value and parameter
definition GUI.

To remove an existing parameter name, remove the parameter name (i.e.,
${name}) using the backspace key and replace with the static value. Then
SYNCHRONIZE TEMPLATE PARAMETERS  to remove the parameter from the name/value and parameter
definition GUI.

If the available template has parameter names (as opposed to the golden configuration/ base config typically shared by VNF owners), you can upload that template and manually add the braces around the parameter names.  Then click on SYNCHRONIZE TEMPLATE PARAMETERS to generate the PD file with source as Manual.

Remember to use the SAVE and/or DOWNLOAD buttons on the Reference Data
screen to preserve your work.

Create a parameter definition file describing instance-specific parameters in the template 
------------------------------------------------------------------------------------------

Clicking the “SYNCHRONIZE TEMPLATE PARAMETERS” button after creating a template will automatically create/update a parameter definition file for
that template (and a parameter name-value file described in the next
section). Alternatively, you can upload an existing parameter definition
file from your PC.

You can view or edit the definition fields for each parameter via the
Parameter Definition screen. Note that any edits to the parameter names
would be overwritten by a subsequent SYNCHRONIZE TEMPLATE PARAMETERS.

|image24|

Select a Source for each parameter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There are three choices for the source:

1. **External Systems**. APPC will automatically obtain parameter values from
   an external system (typically IP addresses for VNF’s). First, obtain a
   “key file” for your VNF. Then use the
   “Upload Key File” button on the Parameter Definition screen. APPC
   will automatically populate key names and values used to retrieve data
   from an external system.


2. **A&AI**. APPC will automatically obtain parameter values from
   A&AI (typically VNF/VNFC/VM identifiers). After selecting “A&AI”,
   select a rule type and APPC will automatically populate the key
   names and values. For rule types that include a list, populate the
   ‘Filter By Field’ and ‘Filter By Value’.

    |image26|

3. **Manual**. APPC will use a manually-created excel to populate
   parameter values. Later section describes this User Input Spreadsheet.

Remember to use the SAVE and/or DOWNLOAD buttons on the Reference Data
screen to preserve your work.

Create a file containing name-value pairs for parameters
--------------------------------------------------------

Clicking the “SYNCHRONIZE TEMPLATE PARAMETERS” button after creating a template (see section
Synchronizing a Template) will automatically create/update a parameter name-value pair file
for that template (and a parameter definition file described in the
previous section).

Navigate to the Template tab and “Param Values” subtab to view/edit
parameter name-value pairs.

If you make any edits, remember to use the SAVE and/or DOWNLOAD buttons
on the Reference Data screen to preserve your work.

|image27|

Option: Using MERGE to automatically create a template from a parameter name-value pair file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

APPC CDT also provides a way to create a template from an
existing parameter name-value pair file. This is useful when the
configuration of the VNF has changed. Rather than manually recreating
the template, you can use the MERGE function to automatically add
parameter names based on a valid name-value pairs file from a previous
template.

First, navigate to the Template tab and “Param Values” subtab and click
on UPLOAD PARAM FILE

|image28|

Then navigate to the Template configuration screen. Upload a
configuration file that contains values you wish to turn into
parameters.

|image29|

Next, click “MERGE FROM PARAM”. APPC will automatically associate the parameter values in the uploaded configuration with parameter names from the parameter name/value. If duplicate parameter values are found in the configuration, APP-C will highlight the duplicate value & name in orange and let the user edit the parameter name.  When the duplicate parameter name has been successfully replaced with a unique name, the highlight will change from orange to green..

After using the MERGE FROM PARAM button to create a template, you can use the
SYNCHRONIZE TEMPLATE PARAMETERS button to create/update the parameter definition file and
name-value files.

Remember to use the SAVE and/or DOWNLOAD buttons on the Reference Data
screen to preserve your work.

|image30|


Option: Synchronize with Name/Values
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There may be a scenario where you have created or uploaded a template, and SYNCHONIZED TEMPLATE PARAMETERS, and then you want to remove some name-value pairs. APPC provides a SYNCHRONIZE WITH NAME VALUES button that will automatically synchronize the parameter definitions with your updated name value pairs.


  - Step 1: Create or upload template
  
  - Step 2: SYNCHRONIZE TEMPLATE PARAMETERS. (APPC will update Parameter Definition file and Name-Value Pair file to match Template.)
  
  - Step 3: Manually edit Name-Value Pair file (or upload a changed Name-Value Pair file)
  
  - Step 4: SYNCHRONIZE WITH NAME VALUES. (see screen shot below)(APPC will update Parameter Definition file to match Name-Value Pair file.)
  
  - Step 5: Examine Parameter Definitions to confirm they now match updated Name-Value Pair file.


|image30a|
  
  
Test the template in a lab using APPC CDT Test Function
=======================================================

The APPC CDT **TEST** action is used to initiate configuration
and other lifecycle commands

**Prerequisites:**
   - A. Testing requires an instance of the target VNF to be reachable from your test environment.
   - B.	You have created the on-boarding artifacts (e.g., reference file, template, etc) for the target VNF type and action in CDT and saved  them to APPC. 
   - C.	You have created a user input spreadsheet for the VNF and action you wish to test. 

**Steps to Test a template:**
   - 1.	Choose the TEST function on the APPC CDT home page
   - 2.	Upload the user input spreadsheet
   - 3.	Click on EXECUTE TEST
   - 4.	View test progress; poll for test status if necessary.
   - 5.	View Test Results


User Input Spreadsheet
----------------------

The following steps are used to prepare a user input spreadsheet for the
VNF instance and action to be tested.

1. Start with this generic user input excel spreadsheet.

    :download:`Generic 1802 User Input Spreadsheet v.02.xlsx` (compatible with excel 2013)

    Update the user-input sections of the spreadsheet.

     - a) Upload Data tab: choose action, populate VNF-ID

     - b) >Action< tab: Select the tab for the action being tested. Choose a protocol and enter required action identifiers & request parameter values. Enter any payload parameter names and values required for this associated template. (copy/paste from a name-value pair file or other source).

    The screen shots on the following pages show the user input sections highlighted in yellow.

2. Save the spreadsheet with a name for your VNF instance and action.

“Upload Data” tab – Select action to be tested and populate any action
identifiers such as vnf-id.

|image31|

Action tab: This example is for the ConfigModify action, so the
“ConfigModify” tab is shown. Choose a protocol and enter required action
identifiers & request parameter values. Enter any payload parameter
names and values required for this associated template. (You may
copy/paste from a name-value pair file or other source).

|image32|

Using APPC CDT TEST Function
----------------------------

**Steps to use the “TEST” function of the APPC Design Tool**

1. Choose the TEST function on the APPC Design Tool home page
  
   |image33|
  
2. Upload the user input spreadsheet
3. Click on EXECUTE TEST 
4. View test progress; poll for test status if necessary.
  
   |image34|
  
   |image35|
  
5. View Test Results
  
   |image36|


Note on populating southbound properties:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When a new vnf-type is created or a new action is added to an existing
vnf-type using the CDT tool and the Reference Data artifact is loaded to
APPC, an update is made to the APPC run-time southbound properties
file for the vnf-type.   The southbound properties are needed for
connecting to a VNF instance or Ansible server.  The southbound
properties contain the following information:

``{vnf\_type}.{protocol}.{action}.user = {value}``

``{vnf\_type}.{protocol}.{action}.port = {value}``

``{vnf\_type}.{protocol}.{action}.password = {value}``

``{vnf\_type}.{protocol}.{action}.url = {value}``

The user, port, and url values are contained in the Reference Data
artifact, if populated by the self-service user. 

The current process that creates the southbound properties from the Reference Data only updates the southbound properties file on a single APPC node in the ODL cluster..   


APP-C Design Tool - File Descriptions
=====================================

+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+
| **File Description**                                                                                                                 | **File Format**   |
+======================================================================================================================================+===================+
|                                                                                                                                      |                   |
| **Pre-template Config file** –contains a ‘golden’ or working configuration (for Netconf) or JSON data block (for Chef or Ansible).   | XML, JSON         |
|                                                                                                                                      |                   |
+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|                                                                                                                                      |                   |
| **Reference file**  – describes a VNF in terms of its subtending VM’s and VNFC’s and the actions/protocols being onboarded.          | XML, JSON         |
|                                                                                                                                      |                   |
+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|                                                                                                                                      |                   |
| **Template file** – a configuration file with parameters for instance-specific fields.                                               | XML               |
|                                                                                                                                      |                   |
+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|                                                                                                                                      |                   |
| **Parameter Definition file** (aka pd\_Configure) contains **parameter definitions** associated with a template.                     | YAML              |
|                                                                                                                                      |                   |
+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|                                                                                                                                      |                   |
| **Name-Value file** (aka param\_Configure) contains name-value pairs for parameters associated with a template.                      | JSON              |
|                                                                                                                                      |                   |
+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+
|                                                                                                                                      |                   |
| **Key data file** – contains external system data to populate a PD configure file.                                                   | TXT               |
|                                                                                                                                      |                   |
+--------------------------------------------------------------------------------------------------------------------------------------+-------------------+



.. |image0| image:: media/image0.png
   :width: 7.88889in 
   :height: 4.43750in 
.. |image1| image:: media/image1.png
   :width: 8.72292in
   :height: 4.51788in
.. |image2| image:: media/image2.png
   :width: 8.75000in
   :height: 4.58908in
.. |image3| image:: media/image3.png
   :width: 8.70833in
   :height: 4.89844in
.. |image4| image:: media/image4.png
   :width: 7.46875in
   :height: 4.19310in
.. |image5| image:: media/image5.png
   :width: 7.23958in
   :height: 3.87172in
.. |image6| image:: media/image6.png
   :width: 7.58491in
   :height: 4.26651in
.. |image7| image:: media/image7.png
   :width: 9.43750in
   :height: 5.30859in
.. |image8| image:: media/image8.png
   :width: 7.86980in
   :height: 4.72917in
.. |image9| image:: media/image9.png
   :width: 7.56250in
   :height: 4.54450in
.. |image10| image:: media/image10.png
   :width: 9.01042in
   :height: 5.06836in
.. |image11| image:: media/image11.png
   :width: 9.44792in
   :height: 5.31445in
.. |image12| image:: media/image12.png
   :width: 9.48958in
   :height: 5.33789in
.. |image13| image:: media/image13.png
   :width: 9.48125in
   :height: 5.33320in
.. |image14| image:: media/image14.png
   :width: 9.25926in
   :height: 5.20833in
.. |image15| image:: media/image15.png
   :width: 9.05556in
   :height: 5.09375in
.. |image15a| image:: media/image15a.png 
.. |image15b| image:: media/image15b.png 
.. |image15c| image:: media/image15c.png 
.. |image15d| image:: media/image15d.png 
.. |image15e| image:: media/image15e.png 
.. |image15f| image:: media/image15f.png  
.. |image16| image:: media/image16.png
   :width: 5.79167in
   :height: 3.74135in
.. |imageA| image:: media/imageA.png
   :width: 5.79167in
   :height: 3.74135in  
.. |image17| image:: media/image17.png
   :width: 6.13542in
   :height: 4.97745in
.. |image18| image:: media/image18.png
   :width: 9.00000in
   :height: 5.27639in
.. |image19| image:: media/image19.png
   :width: 5.43423in
   :height: 1.83333in
.. |image20| image:: media/image20.png
   :width: 5.44473in
   :height: 1.93750in
.. |image21| image:: media/image21.png
   :width: 5.32292in
   :height: 1.92771in
.. |image23| image:: media/image23.png
   :width: 7.54167in
   :height: 4.24219in
.. |image24| image:: media/image24.png
   :width: 7.48148in
   :height: 4.20833in
.. |image26| image:: media/image26.png
   :width: 6.87789in
   :height: 3.78125in
.. |image27| image:: media/image27.png
   :width: 7.97170in
   :height: 4.48408in
.. |image28| image:: media/image28.png
   :width: 8.56604in
   :height: 4.81840in
.. |image29| image:: media/image29.png
   :width: 9.00943in
   :height: 5.06781in
.. |image30| image:: media/image30.png
   :width: 8.07407in
   :height: 4.54167in
.. |image30a| image:: media/image30a.png   
.. |image31| image:: media/image31.png
   :width: 9.00000in
   :height: 5.18958in
.. |image32| image:: media/image32.png
   :width: 9.00000in
   :height: 5.18958in
.. |image33| image:: media/image33.png
   :width: 9.00000in
   :height: 5.18958in
.. |image34| image:: media/image34.png
   :width: 9.00000in
   :height: 5.18958in
.. |image35| image:: media/image35.png
   :width: 9.00000in
   :height: 5.18958in
.. |image36| image:: media/image36.png
   :width: 9.00000in
   :height: 5.18958in


