.. ============LICENSE_START========================================== | |
.. =================================================================== | |
.. Copyright © 2017 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============================================ | |
.. ECOMP is a trademark and service mark of AT&T Intellectual Property. | |
=============== | |
APPC User Guide | |
=============== | |
APPC Overview and Architecture | |
============================== | |
The Application Controller (APPC) is one of the components of the ONAP | |
platform. It is responsible for handling the Life Cycle Management (LCM) | |
of Virtual Network Functions (VNFs). | |
This document provides an overview of the APPC components that enable | |
the LCM operations. | |
Implementation | |
-------------- | |
The APPC infrastructure is implemented on virtual machines in an | |
OpenStack cloud in the Amsterdam release. APPC is created on top of the OpenDaylight (ODL) | |
platform | |
The following diagram represents a non-redundant APP-C deployment. | |
|image0| | |
Features | |
-------- | |
The APPC HTTP API supports Life Cycle Management (LCM) commands, | |
allowing users to manage virtual applications and their components via | |
other ONAP components. Refer to Architecture section for further | |
details. | |
Interface | |
--------- | |
The Application Controller Dashboard interacts with the controller | |
using REST APIs and performs actions on VNF/VNFC/VMs, such as snapshot, | |
lock, sync, and health-check. | |
Dashboard | |
~~~~~~~~~ | |
To open the Application Controller dashboard, go to: | |
|image1| | |
Navigate to the available LCM commands by clicking on | |
**appc-provider-lcm**: | |
|image2| | |
Click on the URI of the desired action to open a frame with information | |
about the action and an option to try it out. For example, to send the | |
action, add the request body as the input parameter value, and click | |
**Try it out!** | |
The following figure shows an example body of a LCM restart request: | |
|image3| | |
If the request is accepted, you should see the following response: | |
|image4| | |
APPC Architecture | |
----------------- | |
This section discusses the APPC internal components in detail. | |
**APPC High Level Architecture** | |
|image5| | |
Northbound REST Layer | |
~~~~~~~~~~~~~~~~~~~~~ | |
This layer is responsible for interfacing with APPC clients, such as SO | |
or SDC and others, exposing YANG-based API via REST HTTP and/or DMaaP | |
messaging (see the Interfaces Summary section for details). In addition, | |
it exposes APPC OAM (Operation Administration Management) APIs, enabling | |
ONAP Operations Manager (OOM) or TechOps portal to perform APPC | |
lifecycle operations | |
APPC Provider | |
~~~~~~~~~~~~~ | |
The APPC Provider module exposes the endpoints for each action | |
supported by APPC. This module uses the YANG model to define the | |
YANG Remote Processing Call (RPC) and data model, in other words, | |
the input and output parameters for each action. The Provider module | |
is responsible for validating the RPC input and for rejecting any | |
malformed input. After successful validation, the APPC Provider | |
calls the Dispatcher to continue the request processing. | |
LCM API | |
~~~~~~~ | |
The APPC exposes an HTTP API to support the Life Cycle Management | |
(LCM) commands sent from ONAP components such as SO, SDC, and the | |
Portal. These commands enable the components to request APPC to | |
perform actions such as to control, modify, start, or stop virtual | |
applications and/or their components. | |
A virtual application is composed of the following layers. A Life | |
Cycle Management command may affect any number of these layers. | |
- Virtual Network Function (VNF) | |
- Virtual Network Function Component (VNFC) | |
- Virtual Machine (VM) | |
APP-C supports two types of LCM requests, as described below. | |
**Note:** For further information about LCM API, including details of | |
all the commands currently supported in APP-C and examples of the | |
request and response format see the ONAP Application Controller (APPC) API Guide. | |
LCM over REST | |
^^^^^^^^^^^^^^ | |
LCM command requests over REST are sent to the APPC using an HTTP | |
POST request. APPC returns one or more responses for each LCM | |
request. | |
The APP-C LCM API provides a POST HTTP API endpoint per command. | |
An **asynchronous** command, containing an authorized and valid | |
request, results in at least two discrete response events: | |
- an ACCEPT (a synchronous HTTP response) to indicate that the request | |
is accepted and will be processed, and | |
- a final asynchronous response for the command containing an execution | |
status is sent via DMaaP | |
An unauthorized or invalid request would result in a single | |
ERROR response. | |
For commands such as Restart, Start, and Stop, the asynchronous response | |
is sent over DMaaP. | |
A **synchronous** command, for example Lock or Unlock, results in a | |
single response, which is either SUCCESS or ERROR. For this type of | |
request, the first response is a synchronous HTTP response.. | |
For the ONAP Amsterdam release, APPC supports the HTTPS protocol, whereas the plain | |
HTTP requests are blocked.. | |
Endpoint format: | |
``<http-protocol>://<appc-ip>:<appc-api-port>/restconf/operations/appc-provider-lcm:<command-name>`` | |
LCM over Message Bus (DMaaP) | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
APPC is capable of receiving LCM command requests as messages on the | |
DMaaP bus. In this case, APPC returns one or more responses for each LCM | |
request, similar to LCM over REST, while both are communicated over | |
DMaaP. | |
Configure the Read/Write topics for the DMaaP as described in APPC | |
Deployment, APPC Available Properties. | |
APPC client library, embedded into APPC client’s (for example, SO) code, | |
intends to simplify communication over DMaaP by eliminating topic | |
provisioning at the client site. Refer to | |
http://onap.readthedocs.io/en/latest/ for more details on the APPC | |
Client Library. | |
For further information about the request and response format, see | |
the APPC API Guide at http://onap.readthedocs.io/en/latest/ | |
Dispatcher | |
~~~~~~~~~~ | |
The APPC Dispatcher component processes requests received by the Request | |
Handler from other ECOMP components. The Dispatcher checks the | |
conditions are sufficient for performing the request and selects the | |
correct Direct Graph (DG) workflow for execution or rejects the request. | |
When the DG execution is complete, the Dispatching function is | |
responsible for notifying the initiator of the operation with the | |
request execution result (Success/Error) and updates the VNF | |
Orchestration state in Active and Available Inventory (A&AI). | |
The detailed responsibilities of the Dispatcher are as follows: | |
- Upon receiving the operation request, the Dispatcher performs the | |
synchronous part of the execution: | |
- Starts the operation's time-to-live countdown | |
- Queries A&AI to get the VNF type and its current orchestration | |
state | |
- Checks VNF\_type-specific rules in the LCM State machine for | |
whether to allow or reject the requested command execution | |
- Allocates and initiates an appropriate DG workflow by invoking the | |
Service Logic Interpreter (SLI) framework to start the | |
asynchronous part of the execution | |
- Returns a response to the initiator: OK or reject (for example, if | |
the State Machine blocks the operation, no DG or time-to-live, or | |
bad parameters) | |
- If the operation is rejected, the Dispatcher generates an | |
appropriate Audit log for the Event and Error Logging Framework | |
(EELF) and the Local Event Journal | |
- Upon workflow completion, the Dispatcher: | |
- Receives the execution results from the DG from the SLI framework | |
- Publishes the execution result over DMaaP (success or error) | |
- Updates VNF status in A&AI | |
- Generates an Audit log for EELF and Local Event Journal | |
Request Handler | |
^^^^^^^^^^^^^^^ | |
The Request Handler manages incoming requests and locks APPC for new | |
requests, as needed for operations with a specific command execution | |
sequences. | |
Lifecycle Management | |
^^^^^^^^^^^^^^^^^^^^ | |
The Lifecycle Management VNF State Machine enables the Dispatching | |
function to determine the validity of the requested operation (desired | |
state) as a function of the current VNF state, acquired from the A&AI. | |
The State Machine maintains its data (states and valid operations) | |
in-memory. At the point of APPC initialization, the State Machine | |
constructs a matrix based on the metadata of the current operation and | |
the valid desired state. | |
Command Executor | |
^^^^^^^^^^^^^^^^ | |
Manages command execution queue. | |
State Machine | |
~~~~~~~~~~~~~ | |
The VNF State machine enables the Dispatching function to determine | |
the validity of the requested operation (desired state) as a | |
function of the current VNF state, acquired from the A&AI. The State | |
machine maintains its data (states and valid operations) in-memory. | |
At the point of APP-C initialization, the State Machine constructs a | |
matrix based on the metadata of the current operation and the valid | |
desired state. | |
The Service Logic Interpreter (SLI) Framework | |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
The SLI framework is responsible for executing Directed Graphs (DGs). | |
The Dispatcher invokes the SLI framework to execute a specific DG, based | |
on the input action. The SLI executes the DG and the sub-DG and returns | |
a success or failure response to the caller along with the context | |
variables used to exchange data with the calling body (for example, the | |
Dispatcher). The caller can use the SLI context to specify data required | |
for DG execution. The DG returns the same context when execution | |
completes. | |
Currently, there is a combination of input action specific and/or VNF | |
type specific DG’s as well as a DGOrchestrator DG which is action and | |
VNF type agnostic. The DGOrchestrator approach consists of the | |
following: | |
- DGOrchestrator DG which: | |
- Accepts request from the Dispatcher and converts it into DG | |
context format | |
- Calls A&AI to retrieve the inventory for the VNF instance | |
- Calls a Sequence Generator for start/stop actions which generates | |
a workflow sequence containing a set of start or stop VM requests | |
- Auto-generates a workflow for other requests with a single step | |
- Executes each step in the workflow by invoking DG’s to interact | |
with the VNF, OpenStack, or Ansible/Chef servers. These DG’s which | |
are specific to the protocol and possibly action. Some DG’s may | |
update A&AI (such as for Configure) or retrieve the VNF running | |
configuration. | |
- Returns success/failure status to the Dispatcher. | |
In the future, all action/VNF type specific DG’s will be migrated to the | |
DGOrchestrator approach. | |
The following diagram shows the Amsterdam Release DGOrchestrator | |
architecture | |
|image6| | |
Westbound Layer | |
~~~~~~~~~~~~~~~ | |
A&AI | |
^^^^ | |
A&AI is an ONAP component, which maintains information about VNF | |
instances. APPC uses A&AI as a source of the true VNF status, | |
topology and operational data. In addition, at the end of each | |
operation, APPC updates the VNF changes that result from the | |
operation: for example, VNFC record(s) are added after | |
configuration. The VNF orchestration status is not updated for | |
read-only operations such as Sync or Audit. In the case of the VNF | |
Terminate operation, APPC removes the terminated VNF from A&AI by | |
deleting its Virtual Machines (VMs). | |
The Dispatching function and operation-specific DGs manage access to | |
the A&AI using the A&AI Adapter. | |
Southbound Layer | |
~~~~~~~~~~~~~~~~ | |
Southbound VNF Adapters | |
^^^^^^^^^^^^^^^^^^^^^^^ | |
APPC uses several adapters to communicate with VNFs. The Interface | |
as a Service (IAAS) adapter is part of the OpenDayLight (ODL) | |
platform, while other adapters have been added by the ONAP | |
development. | |
Restconf Adapter | |
^^^^^^^^^^^^^^^^^ | |
The Adapter is responsible for configuration tasks, using JSON | |
format, for VNFs supporting Restconf API. | |
**Using the Restconf Adapter** | |
The restconf adapter is normally called from a directed graph. | |
An "execute" node block should be used in the directed graph to | |
the "org.onap.appc.adapter.rest.RestAdapter" plug-in. There are | |
several methods available to use: | |
- commonGet | |
- commonDelete | |
- commonPost | |
- commonPut | |
There are several parameters that the RestAdapter plug-in takes | |
org.onap.appc.instance.URI | |
The url that the rest request will be made to | |
org.onap.appc.instance.requestBody | |
The body of the rest request | |
org.onap.appc.instance.headers | |
The header of the rest request | |
org.onap.appc.instance.haveHeader | |
true/false value which specifies if a header is present. | |
(Should be set to "true" if the org.onap.appc.instance.headers | |
parameter is defined, or set to "false" if the | |
headers parameter is not defined) | |
There are several parameters returned back to the DG from the RestAdapter | |
org.onap.rest.result.code | |
An http code representing if the request completed. Will always be 200 | |
if the request completes. See the below parameter for the exact http code | |
that gets returned. | |
org.onap.rest.agent.result.code | |
The http code returned from the rest request. | |
org.onap.rest.agent.result.message | |
The status or body returned from the rest request. | |
An example execute node: | |
:: | |
<execute plugin='org.onap.appc.adapter.rest.RestAdapter' method='commonPut' > | |
<parameter name='org.onap.appc.instance.URI' value='`$restUrl`'/> | |
<parameter name='org.onap.appc.instance.requestBody' value='`$jsonContent`'/> | |
<parameter name='org.onap.appc.instance.headers' value='{"Content-type":"application/json"}'/> | |
<parameter name='org.onap.appc.instance.haveHeader' value='true'/> | |
Netconf Adapter | |
^^^^^^^^^^^^^^^ | |
The Adapter is responsible for configuration tasks, using XML | |
format, for VNFs supporting Netconf API. | |
IAAS Adapter | |
^^^^^^^^^^^^^ | |
The IAAS Adapter connects APPC with the OpenStack controllers to | |
perform various operations on VMs and VNFs such as Restart, Migrate, | |
and Rebuild. The IAAS Adapter integrates as a DG plugin, while the | |
DGs call the services exposed by the adapter. | |
SSH (XML/CLI) Adapter | |
^^^^^^^^^^^^^^^^^^^^^ | |
A custom adapter that enables connection to a VNF using an SSH | |
session. It is designed to support CLI and XML protocols, including | |
Netconf. It is used to load configurations and retrieve the running | |
configuration. | |
Chef Adaptor | |
^^^^^^^^^^^^ | |
This adaptor incorporates a client for an external Chef server, | |
which connects to VNF NB APIs. The adaptor enables APPC to operate | |
cookbooks (Chef recipes) to perform various LCM operations over | |
VNFs, connected to the Chef server. | |
Ansible Adapter | |
^^^^^^^^^^^^^^^ | |
This adaptor incorporates a client for an external Ansible server, | |
which connects to VNF NB APIs. The adaptor enables APPC to operate | |
playbooks to perform various LCM operations over VNFs connected to | |
the Ansible server. | |
Cross Cutting Components | |
~~~~~~~~~~~~~~~~~~~~~~~~ | |
The Cross Cutting Component services operate across all APPC modules. | |
Configuration | |
^^^^^^^^^^^^^ | |
Used to configure operational parameters of APPC modules based on | |
function-specific configuration files, for example: | |
- ``log4j.properties`` for the logging service | |
- ``appc.properties`` for core APPC-related configuration | |
- ``dblib.properties`` for managing APPC database-related configuration | |
- ``aaiclient.properties`` for managing A&AI-related configuration | |
KPI Service | |
^^^^^^^^^^^ | |
This Cross Cutting component manages KPI measurement, storage and | |
reporting. | |
Enable matrix logs to log the number of hits of the configured method of | |
APPC, by configuring the following properties in ``appc.properties:``:: | |
metric.enabled=<true> | |
schedule.policy.metric.start.time=<time value in hhmmss> | |
schedule.policy.metric.period = 60(interval in seconds) | |
Security Service | |
^^^^^^^^^^^^^^^^ | |
This component implements AAF (Authentication and Authorization | |
Framework) for APPC API security. The user provides a user name and | |
password in the request that will be validated against centralize AAF. | |
[Note: For Amsterdam Releasse, AAF is not used] | |
Logging Service | |
^^^^^^^^^^^^^^^ | |
Implements EELF (Event and Error Logging Framework) to manage and | |
generate logs (refer to Logging section). | |
Data Access Service | |
^^^^^^^^^^^^^^^^^^^ | |
Provides access to the internal data store. | |
Transactions store | |
~~~~~~~~~~~~~~~~~~ | |
For each operation request procedure that completes or terminates, | |
APPC generates and stores an accurate transaction record in its | |
internal database, including: | |
- Timestamp | |
- Request ID | |
- Start time | |
- End time | |
- VF\_ID | |
- VF\_type | |
- Sub-component (optional) e.g. VFC\_ID/VM UUID | |
- Operation: for example Start, Configure, etc. | |
- Result: Success/Error code and description, as published to the | |
initiator | |
Interfaces Summary | |
~~~~~~~~~~~~~~~~~~ | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| **Source** | **Flow** | **Destination** | **Service** | **Port** | **Purpose / Comments** | | |
+===================+============+=========================+===================+=============+============================================================================================================================================================================+ | |
| APPC | -> | A&AI | REST | 8443 | APPC retrieves and updates the VNF data in AAI. | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | SLI | Java (internal) | N/A | APPC sends the LCM API request to SLI for DG execution | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | South-bound Adapters | Java (internal) | N/A | APPC interacts with southbound adapters for VNF Lifecycle Management Actions | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | NETCONF | NETCONF | 830 or 22 | NETCONF Adapter communicates on port 830 (default) or port 22 (SSH – if set up) | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | Chef Server | HTTP/HTTPS | 80/443 | Chef adapter communicate on port 80 (HTTP) or port 443 (HTTPS) | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | Ansible Server | HTTP | 8000 | Port 8000 is used for communication between the APPC Ansible Adaptor and the Ansible Server. | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | MySQL | Java (internal) | 3306 | | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | DG Builder | Java (internal) | 3000 | | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | MD-SAL, Apidoc, Karaf | Java (internal) | 8282 | | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | DMaaP | JMS | 3904 | APPC sends the Asynchronous responses and Failure events to DMaaP Message Bus | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| Portal,SO, DCAE | -> | APPC | REST/DMaaP | 3904 | APPC receives LCM commands from and makes updates to ONAP components such as the Portal, MSO, and DCAE | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| SDC | -> | APPC | DMaaP | 3904 | APPC requests and receives notifications from SDC for VNF License Artifacts and TOSCA dependency models. | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| APPC | -> | DCAE | DMaaP | 3904 | APPC sends intermediate messages to DCAE. Long-running operations such as Start, Restart, Stop, and Terminate generate intermediate success/failure messages per VNFC. | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
| OOM | -> | APPC | DMaaP | 3904 | APPC receives operational commands: Start, Graceful Stop. | | |
| | | | | | APPC reports: status, KPIs. | | |
+-------------------+------------+-------------------------+-------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |
APPC Deployment | |
================ | |
Refer to the APPC Deployment documentation at | |
http://onap.readthedocs.io/en/latest/submodules/appc/deployment.git/docs/index.html | |
Application Controller VNF Onboarding | |
===================================== | |
LCM Command Execution Overview | |
------------------------------ | |
The Application Controller assumes that the A&AI instance it is | |
configured with contains all the information it needs about | |
VNF/VNFC/VMs, otherwise any request by the user to perform an action | |
on a VNF will fail. The Application Controller uses a variety of SQL | |
tables in order to perform actions on a VNF, all of which are | |
described in Creation of DGs | |
DGs are created using the Direct Graph Builder - Node Red graphical | |
utility for DGs creation. DGs are then stored as XML files and loaded to | |
APPC MySQL database. The DGs invoke the execution of Java code from | |
different nodes. | |
DGs are resolved according to LCM Action, API version, VNF Type, and VNF | |
Version. | |
The SLI framework is responsible for executing the DGs. | |
Data Setup. | |
~~~~~~~~~~~~ | |
Initially, Application Controller should have a set of DGs designed | |
for the specific VNF type. These DGs are stored in the SVC\_LOGIC | |
table. | |
After a user sends an action request to the controller, the | |
Application Controller uses the VNF\_DG\_MAPPING table to map the | |
requested action to a specific DG. If the mapping was successful, | |
the input body is validated and the user receives a synchronous | |
response containing an Accept or a Reject message to indicate | |
whether the request was rejected or whether it was accepted and the | |
controller initiated the DG flow. | |
During the execution of a DG, the controller may use one or more SQL | |
tables to fetch or store data. For example, in order to perform a | |
ConfigModify action, the controller needs to fetch a username and | |
password to connect to the VNF and change its configuration. | |
ALL tables used during DG execution are described below. | |
Request execution | |
----------------- | |
Following initial request validation, APPC queries the A&AI inventory to | |
acquire all the required information regarding topology of VNF/VNFC/VMs, | |
operational status and operational data of the requested VNF instance. A | |
missing target VF instance or any missing mandatory parameter in A&AI | |
generate a rejection. | |
After acquiring the VNF type from A&AI, APPC uses the VNF\_DG\_MAPPING | |
table to map the requested action to a specific DG. No such DG located | |
in the table generates a Reject response to the user. | |
The Dispatcher state machine applies operation policies. A policy | |
allowing execution generates an Accept response to the user. Not | |
allowing execution generates a Reject response. | |
If the first two steps were successful, the controller initiates the | |
appropriate DG. | |
During the execution of a DG, the controller may use one or more SQL | |
tables to fetch or store data. For example, to perform a ConfigModify | |
action, the controller needs to fetch a username and password to connect | |
to the VNF and change its configuration. | |
`Data Setup <#_Data_Setup>`__ describes the tables used during DG | |
execution. | |
If APPC is forced stopped while it is executing an LCM request, it might | |
take some time to terminate all the threads that are being executed. In | |
addition, the old threads might start to execute again once the APPC is | |
restarted. The time when these treads start to execute again even after | |
an APPC restart is dependent on the LCM request executed by the threads | |
in the LCM queue and the ThreadPool size. To avoid this, it is | |
recommended that: | |
- Start APPC only after a while to ensure that the interrupted threads | |
are not executed again. | |
- Do not execute the OAM-Forceful Stop command if the system is | |
executing an LCM request. Let the system operate in Maintenance mode. | |
1. .. rubric:: Creation of DGs | |
:name: creation-of-dgs | |
DGs are created using the Direct Graph Builder - Node Red graphical | |
utility for DGs creation. DGs are then stored as XML files and loaded to | |
APPC MySQL database. The DGs invoke the execution of Java code from | |
different nodes. | |
At runtime, DGs are resolved according to LCM Action, API version, VNF | |
Type, and VNF Version. | |
The SLI framework is responsible for executing the DGs. | |
Data Setup | |
---------- | |
APPC uses MySQL database as a persistent store. This section describes | |
the tables in general and the tables that require data to be set up | |
before sending a request. | |
SVC\_LOGIC Table | |
~~~~~~~~~~~~~~~~ | |
SVC\_LOGIC table stores all NodeRed DGs invoked by actions executed by | |
APPC. The SLI framework uses this table for running the DG. If the DG | |
does not exist in this table, the SLI framework returns a 'DG not found' | |
error. | |
SVC\_LOGIC Parameters | |
^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------+----------------------+ | |
| **Parameter Name** | **Example Values** | | |
+======================+======================+ | |
| **module** | APPC | | |
+----------------------+----------------------+ | |
| **rpc** | Generic\_Audit | | |
+----------------------+----------------------+ | |
| **version** | 2.0.0 | | |
+----------------------+----------------------+ | |
| **mode** | sync | | |
+----------------------+----------------------+ | |
| **active** | N | | |
+----------------------+----------------------+ | |
| **graph** | <BLOB> | | |
+----------------------+----------------------+ | |
**module, rpc, version** | |
The ``module``, ``rpc``, and ``version`` parameters uniquely identify a Directed | |
Graph (DG). The SLI framework uses these three parameters to invoke a DG | |
or sub-DG. By convention, for the main DG, rpc is a combination of 'VNF | |
type' (the generic type applied to all VNFs) followed by '\_' and | |
'action'. This is the default convention; resolution of the DG for | |
specific actions is handled individually in the relevant forthcoming | |
sections. | |
**mode** | |
The DG execution node. This value is set to ‘sync’ for all APPC DGs. | |
**active** | |
This flag is the value of either 'Y' or 'N'. This flag is only used if | |
specific version of DG is not mentioned while calling DG. If version of | |
DG is not mentioned SLI framework will look for DG with active Flag set | |
to 'Y' and execute it if found. | |
**graph** | |
This is actual graph invoked by SLI framework. The data type is SQL | |
BLOB. | |
VNF\_DG\_MAPPING | |
~~~~~~~~~~~~~~~~ | |
The VNF\_DG\_MAPPING table stores the VNF and its corresponding DG. This | |
is used by the DG resolver logic of the Dispatcher to map the DG to the | |
requested action. Only the mapping is stored; the actual DG is stored in | |
the SVC\_LOGIC table. | |
The DG resolver logic uses a combination of action, api\_version and | |
vnf\_type to retrieve the DG details: dg\_name (rpc column of SVC\_LOGIC | |
table), dg\_version and dg\_module. | |
The module, rpc and version uniquely identify the DG. | |
The following assigned priority resolves the VNF DG: | |
1. ``action`` | |
2. ``api_version`` | |
3. ``vnf_type`` | |
4. ``vnf_version`` | |
Blank, null or ‘\*’ values in ``api_version``, ``vnf_type`` and ``vnf_version`` | |
are matched with any values by the DG resolver. For example, a generic | |
DG which can be invoked on any type of VNF ``vnf_type`` can be blank / | |
null or \*. The DG resolver logic first tries to match a specific DG, | |
and if this is not found, then look for a generic match using ‘\*’. For | |
example as illustrated in the Example values in below table, an entry | |
for the Test action and vnf\_type VSBG is specific, so it is only used | |
for VNFs of type VSBG, whereas for the Sync action the same DG is used | |
for any type of VNF and any version. | |
VNF\_DG\_MAPPING Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------+----------------------+-----------------+ | |
| **Parameter Name** | **Example Values** | | |
+======================+======================+=================+ | |
| **action** | Test | Sync | | |
+----------------------+----------------------+-----------------+ | |
| **api\_verson** | 2 | | | |
+----------------------+----------------------+-----------------+ | |
| **vnf\_type** | vSBG | | | |
+----------------------+----------------------+-----------------+ | |
| **vnf\_version** | | | | |
+----------------------+----------------------+-----------------+ | |
| **dg\_name** | vSBG\_Test | Generic\_Sync | | |
+----------------------+----------------------+-----------------+ | |
| **dg\_version** | 2.0.0.1 | 2.0.0 | | |
+----------------------+----------------------+-----------------+ | |
| **dg\_module** | APPC | APPC | | |
+----------------------+----------------------+-----------------+ | |
VNFC\_DG\_MAPPING | |
~~~~~~~~~~~~~~~~~ | |
VNFC\_DG\_MAPPING stores the VNFC and its corresponding DG. The DG | |
resolver logic of the Dispatcher uses this to map the DG to the | |
requested action. Only the mapping is stored; the actual DG is stored in | |
the SVC\_LOGIC table. | |
The DG resolver logic uses a combination of ``action``, ``api_version``, | |
``vnf_type``, and ``vnfc_type`` to retrieve the DG details: ``dg_name`` (rpc | |
column of SVC\_LOGIC table), ``dg_version``, and ``dg_module``. | |
The module, rpc and version uniquely identify the DG. | |
The following assigned priority resolves the VNF DG: | |
1. ``action`` | |
2. ``api_version`` | |
3. ``vnf_type`` | |
4. ``vnfc_type`` | |
The DG resolver matches blank, null or ‘\*’ values in ``api_version`` , | |
``vnf_type`` and ``vnfc_type`` with any values. For example, a generic DG | |
which can be invoked on any type of VNFC 'vnfc\_type' can be blank / | |
null or \*. The DG resolver logic first tries to match a specific DG. If | |
this is not found, the DG resolver looks for a generic match using ‘\*’. | |
VNFC\_DG\_MAPPING parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------+---------------------+ | |
| **Parameter Name** | **Example Value** | | |
+======================+=====================+ | |
| **action** | | | |
+----------------------+---------------------+ | |
| **api\_version** | | | |
+----------------------+---------------------+ | |
| **vnf\_type** | | | |
+----------------------+---------------------+ | |
| **vnfc\_type** | | | |
+----------------------+---------------------+ | |
| **dg\_name** | | | |
+----------------------+---------------------+ | |
| **dg\_version** | | | |
+----------------------+---------------------+ | |
| **dg\_module** | | | |
+----------------------+---------------------+ | |
DEVICE\_AUTHENTICATION | |
~~~~~~~~~~~~~~~~~~~~~~ | |
The DEVICE\_AUTHENTICATION table stores device authentication | |
details. It is used by actions such as Audit and Sync which connect | |
with VNFs. This table stores a record that corresponds to each VNF | |
type, so ``vnf_type`` is unique. | |
Username, password and port\_number are fields corresponding to | |
``vnf_type``. | |
DEVICE\_AUTHENTICATION Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------------------+---------------------+ | |
| **Parameter Name** | **Example Value** | | |
+==================================+=====================+ | |
| **device\_authentication\_id** | 41 | | |
+----------------------------------+---------------------+ | |
| **vnf\_type** | vDBE-V | | |
+----------------------------------+---------------------+ | |
| **user\_name** | root | | |
+----------------------------------+---------------------+ | |
| **password** | <password> | | |
+----------------------------------+---------------------+ | |
| **port\_number** | 22 | | |
+----------------------------------+---------------------+ | |
VNF\_LOCK\_MANAGEMENT | |
~~~~~~~~~~~~~~~~~~~~~ | |
The VNF\_LOCK\_MANAGEMENT table is used to persist data for vnf | |
locking. APPC locks the vnf id when actions start executing on that | |
vnf id. This table stores vnf\_id i.e. resource\_id along with | |
owner , expiration\_time or timeout. Before execution of request, | |
the dispatcher checks if VNF\_ID is already locked by another action | |
in execution. If VNF\_ID is not locked, the dispatcher will locks it | |
or else returns a VNF locked error to caller. | |
VNF\_LOCK\_MANAGEMENT Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------+---------------------+ | |
| **Parameter Name** | **Example Value** | | |
+======================+=====================+ | |
| **resource\_id** | AUDIT\_1652 | | |
+----------------------+---------------------+ | |
| **owner\_id** | vDBE-V | | |
+----------------------+---------------------+ | |
| **updated** | 1474457140000 | | |
+----------------------+---------------------+ | |
| **timeout** | 0 | | |
+----------------------+---------------------+ | |
| **ver** | 22 | | |
+----------------------+---------------------+ | |
This table do not require any initial setup. | |
VNF\_STATE\_MANAGEMENT | |
~~~~~~~~~~~~~~~~~~~~~~ | |
The VNF\_STATE\_MANAGEMENT table is used to store the operational state | |
of VNF\_ID, whether it is stable or unstable. It stores state, owner and | |
updated time (in milliseconds). This table does not require any initial | |
setup. | |
VNF\_STATE\_MANAGEMENT Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------+-------------------------------------+ | |
| **Parameter Name** | **Example Value** | | |
+======================+=====================================+ | |
| **vnf\_if** | ASHISH\_VSBG\_VNFS\_1787 | | |
+----------------------+-------------------------------------+ | |
| **state** | STABLE | | |
+----------------------+-------------------------------------+ | |
| **owner\_id** | ORIG\_1787@REQ\_1787@SUBREQ\_1787 | | |
+----------------------+-------------------------------------+ | |
| **updated** | 1474457140000 | | |
+----------------------+-------------------------------------+ | |
| **timeout** | 0 | | |
+----------------------+-------------------------------------+ | |
| **ver** | 22 | | |
+----------------------+-------------------------------------+ | |
UPLOAD\_CONFIG | |
~~~~~~~~~~~~~~ | |
The UPLOAD\_CONFIG table is used by configuration management actions | |
such as Audit, Sync, ConfigModify, Terminate, and similar. It stores | |
device configuration: one row or record corresponds to one VNFC, so | |
therefore a VNF that has multiple VNFCs has multiple rows in the | |
table. | |
The UPLOAD\_CONFIG table stores configuration as the following | |
types: | |
- ``Current`` | |
- ``Running`` | |
- ``Historic`` | |
The ``config_indicator`` column denotes the type of configuration, | |
where a null value denotes ``Historic`` configuration. For a single VNFC | |
there should only be one ``Current`` and one ``Running`` configuration , but | |
there can be multiple Historic configurations. This table does not | |
require any initial setup. | |
UPLOAD\_CONFIG Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+----------------------------+-------------------------+-------------------------+ | |
| **Parameter Name** | **Example Values** | | |
+============================+=========================+=========================+ | |
| **upload\_config\_id** | 63 | 67 | | |
+----------------------------+-------------------------+-------------------------+ | |
| **request\_id** | 3 | REQ\_1690 | | |
+----------------------------+-------------------------+-------------------------+ | |
| **originator\_id** | 12345 | ORIG\_1690 | | |
+----------------------------+-------------------------+-------------------------+ | |
| **service\_description** | abcde | abcde | | |
+----------------------------+-------------------------+-------------------------+ | |
| **action** | ConfigModify | Sync | | |
+----------------------------+-------------------------+-------------------------+ | |
| **upload\_date** | 2016-08-01 14:30:40 | 2016-09-22 12:30:40 | | |
+----------------------------+-------------------------+-------------------------+ | |
| **vnf\_id** | AUDIT\_1767 | AUDIT\_1690 | | |
+----------------------------+-------------------------+-------------------------+ | |
| **vnf\_name** | GET\_RUN\_CONFIG\_VNF | GET\_RUN\_CONFIG\_VNF | | |
+----------------------------+-------------------------+-------------------------+ | |
| **vm\_name** | GET\_RUN\_CONFIG\_VNF | GET\_RUN\_CONFIG\_VNF | | |
+----------------------------+-------------------------+-------------------------+ | |
| **vnf\_type** | vDBE-V | vDBE-V | | |
+----------------------------+-------------------------+-------------------------+ | |
| **vnfc\_type** | vDBE-V2 | vDBE-V1 | | |
+----------------------------+-------------------------+-------------------------+ | |
| **host\_ip\_address** | 135.25.69.37 | | | |
+----------------------------+-------------------------+-------------------------+ | |
| **config\_indicator** | Current | Running | | |
+----------------------------+-------------------------+-------------------------+ | |
| **pending\_delete** | | | | |
+----------------------------+-------------------------+-------------------------+ | |
| **content** | Dummy\_current | <Configuration> | | |
+----------------------------+-------------------------+-------------------------+ | |
DEVICE\_INTERFACE\_PROTOCOL | |
~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
The DEVICE\_INTERFACE\_PROTOCOL table stores the VNF type and | |
corresponding sub-DG used to get the running configuration of a device. | |
The 'getRunningConfig' DG, which is a sub-DG called by Audit and Sync | |
DG, uses this table. It stores the VNF type and corresponding sub-DG, | |
which are used to get the running configuration of a device. The ``module`` | |
and ``DG_RPC`` are used to identify the DG from the SVC\_LOGIC table. The | |
``protocol`` is used to store the protocol defined for retrieving | |
configuration. If a mapping between the VNF type and the DG does not | |
exist in this table, then actions such as Audit and Sync fail with the | |
error message 'Device Interfacing DG not available'. | |
DEVICE\_INTERFACE\_PROTOCOL Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+---------------------------------------+--------------------------+ | |
| **Parameter Name** | **Example Value** | | |
+=======================================+==========================+ | |
| **device\_interface\_protocol\_id** | 4 | | |
+---------------------------------------+--------------------------+ | |
| **vnf\_type** | vDBE-V | | |
+---------------------------------------+--------------------------+ | |
| **protocol** | NETCONF-XML | | |
+---------------------------------------+--------------------------+ | |
| **module** | APPC | | |
+---------------------------------------+--------------------------+ | |
| **dg\_rpc** | getDeviceRunningConfig | | |
+---------------------------------------+--------------------------+ | |
CONFIG FILES | |
~~~~~~~~~~~~ | |
The CONFIG\_FILES table is used by the several configuration DGs, using | |
a legacy configuration API, to store artifacts from SDC, configuration | |
data from requests, and configurations to be downloaded to VNFs. | |
CONFIG\_FILES Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^ | |
+-----------------------------+----------------------------+ | |
| **Parameter Name** | **Example Value** | | |
+=============================+============================+ | |
| **config\_file\_id** | 24 | | |
+-----------------------------+----------------------------+ | |
| **external\_version** | | | |
+-----------------------------+----------------------------+ | |
| **data\_source** | Configurator | | |
+-----------------------------+----------------------------+ | |
| **creation\_date** | 6/9/2016 11:16:57 AM | | |
+-----------------------------+----------------------------+ | |
| **service\_instance\_id** | ibcx0001vm001 | | |
+-----------------------------+----------------------------+ | |
| **vnf\_type** | ISBC | | |
+-----------------------------+----------------------------+ | |
| **vnfc\_type** | vISBC - mmc | | |
+-----------------------------+----------------------------+ | |
| **file\_category** | device\_configuration | | |
+-----------------------------+----------------------------+ | |
| **file\_name** | orch\_config.json | | |
+-----------------------------+----------------------------+ | |
| **file\_content** | (contains configuration) | | |
+-----------------------------+----------------------------+ | |
GET\_CONFIG\_TEMPLATE | |
~~~~~~~~~~~~~~~~~~~~~ | |
The GET\_CONFIG\_TEMPLATE table is used by the 'getDeviceRunningConfig' | |
DG, which is used as a sub-DG for the Audit and Sync actions. It stores | |
template data corresponding to the VNF type. Template data is only used | |
when the protocol in DEVICE\_INTERFACING\_PROTOCOL table is set to | |
'CLI'. Other protocols do not use this table. If Data does not exist in | |
this table and protocol is set to 'CLI' then DG results in 'Error | |
getting Template Data'. | |
GET\_CONFIG\_TEMPLATE Parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+---------------------------------------+-----------------------------------------+ | |
| **Parameter Name** | **Example Value** | | |
+=======================================+=========================================+ | |
| **get\_config\_template\_id** | 1 | | |
+---------------------------------------+-----------------------------------------+ | |
| **vnf\_type** | Generic | | |
+---------------------------------------+-----------------------------------------+ | |
| **device\_interface\_protocol\_id** | 3 | | |
+---------------------------------------+-----------------------------------------+ | |
| **xml\_processing** | | | |
+---------------------------------------+-----------------------------------------+ | |
| **xml\_protocol** | | | |
+---------------------------------------+-----------------------------------------+ | |
| **template** | Login\_Prompt: Matches "Login as:"... | | |
+---------------------------------------+-----------------------------------------+ | |
ASDC\_ARTIFACTS | |
~~~~~~~~~~~~~~~ | |
The ASDC\_ARTIFACTS table contains the model received from the SDC in | |
YAML format. APP-C reads this model and identifies the order of the | |
VNFCs and their resilience types. | |
ASDC\_ARTIFACTS parameters | |
^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
+--------------------------------+------------------------+ | |
| **Parameter Name** | **Example Value** | | |
+================================+========================+ | |
| **asdc\_artifacts\_id** | 1 | | |
+--------------------------------+------------------------+ | |
| **service\_uuid** | Service-uuid | | |
+--------------------------------+------------------------+ | |
| **distribution\_id** | Distribution-ID | | |
+--------------------------------+------------------------+ | |
| **service\_name** | Test | | |
+--------------------------------+------------------------+ | |
| **service\_description** | Test | | |
+--------------------------------+------------------------+ | |
| **resource\_uuid** | Resource-uuid | | |
+--------------------------------+------------------------+ | |
| **resource\_instance\_name** | vSCP | | |
+--------------------------------+------------------------+ | |
| **resource\_name** | vSCP | | |
+--------------------------------+------------------------+ | |
| **resource\_version** | 1.0 | | |
+--------------------------------+------------------------+ | |
| **resource\_type** | VF | | |
+--------------------------------+------------------------+ | |
| **artifact\_uuid** | Artifact-uuid | | |
+--------------------------------+------------------------+ | |
| **artifact\_type** | TOPOLOGY | | |
+--------------------------------+------------------------+ | |
| **artifact\_version** | 1 | | |
+--------------------------------+------------------------+ | |
| **artifact\_description** | VNF Dependency Model | | |
+--------------------------------+------------------------+ | |
| **internal\_version** | 0 | | |
+--------------------------------+------------------------+ | |
| **creation\_date** | 2016-11-17 10:10:18 | | |
+--------------------------------+------------------------+ | |
| **artifact\_name** | Scp-template.yml | | |
+--------------------------------+------------------------+ | |
| **artifact\_content** | <Content> | | |
+--------------------------------+------------------------+ | |
Sequence Generator API | |
====================== | |
The Sequence Generator API generates the steps of execution for LCM | |
operations at minute-level. This API is exposed using the following | |
two endpoints: | |
- DG plug-in | |
- REST API | |
The Sequence Generator API takes an input file in JSON format and, | |
based on the parameters defined in the input file, generates an | |
output file. | |
This chapter comprises the following topics: | |
- Sample input file | |
- Sample output file | |
- Supported actions | |
The input file comprises: | |
- Request information | |
- Inventory information | |
All these sections of the input file and the parameters used are | |
explained in the subsequent sections. | |
Sample Input File | |
----------------- | |
:: | |
{ | |
"request-info": { | |
"action": "Stop", | |
"action-level": "vm", | |
"action-identifier": { | |
"vnf-id": "abc" | |
}, | |
"payload": " {\"vnf-host-ip-address\": \"10.147.124.163\" }" | |
}, | |
"inventory-info": { | |
"vnf-info": { | |
"vnf-id" : "abc", | |
"vnf-name": "vSCP", | |
"vnf-type": "vSCP", | |
"vnf-version" : "1.0", | |
"vm": [ | |
{ | |
"vserver-id" : "be_vserverid1", | |
"vnfc": | |
{ | |
"vnfc-type": "BE", | |
"vnfc-name": "BE - Name" | |
} | |
}, | |
{ | |
"vserver-id" : "fe_vserverid1", | |
"vnfc": | |
{ | |
"vnfc-type": "FE", | |
"vnfc-name": "FE - Name" | |
} | |
}, | |
{ | |
"vserver-id" : "smp_vserverid1", | |
"vnfc": | |
{ | |
"vnfc-type": "SMP", | |
"vnfc-name": "SMP - Name" | |
} | |
} | |
] | |
} | |
} | |
} | |
Parameters | |
~~~~~~~~~~ | |
This section explains the parameters used in the Sequence Generator | |
API input file. | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| **Parameter name** | **Description** | **Possible values** | **Required?** | | |
+=============================+===============================================================================================================================================================================+=======================================+=================+ | |
| **Request Information** | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| action | The action to be executed by Sequence Generator API. | Start,Stop | Y | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| action-level | Represents the level for the action such as, vm, vnfc. | Vnf,vnfc,vm,vf-module | Y | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| action-identifier | A block containing the action arguments. These are used to specify the object upon which Sequence Generator API operates. At least one action-identifier must be specified. | Vnf-id | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnf-id | Identifies the VNF instance to which this action is to be applied. vnf-id uniquely identifies the service-instance. | String | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| payload | An action-specific open-format field. The payload can be any valid JSON string value. | AICIdentity and vnf-host-ip-address | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| **Inventory Information** | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnfInfo | Represents the VNF information to which this action is to be applied. | String | Y | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnf-id | Identifies the VNF instance to which this action is to be applied. vnf-id uniquely identifies the service-instance. | String | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnf-name | Identifies the VNF instance to which this action is to be applied. | vSCP | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnf-type | Represents the type of the VNF instance. | vSCP | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnf-version | Represents the version of the VNF instance. | Alphanumeric | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vm | Represents the VM information to which this action is to be applied. | List of VMs | Y | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vserver-id | Identifies a specific VM instance to which this action is to be applied. | Alpha-numeric unique ID | Y | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnfc | Represents the VNFC information to which this action is to be applied. | vnfc-type, vnfc-name | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnfc-type | Represents the type of the VNFC instance. | FE,BE,SMP | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
| vnfc-name | Identifies the VNFC instance to which this action is to be applied. | FE-Name, BE-Name, SMP-Name | N | | |
+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------------+ | |
Sample Output file | |
------------------ | |
:: | |
[{ | |
"transactionId": 1, | |
"action": "Stop", | |
"action-level": "vm", | |
"action-identifier": { | |
"vserver-id": "be_vserverid1" | |
}, | |
"payload": " {\"vnf-host-ip-address\": \"10.147.124.163\" }", | |
"responses": [{ | |
"response-message": "failure", | |
"response-action": { | |
"ignore": "true" | |
} | |
}] | |
}, | |
{ | |
"transactionId": 2, | |
"action": "Stop", | |
"action-level": "vm", | |
"action-identifier": { | |
"vserver-id": "fe_vserverid1" | |
}, | |
"payload": " {\"vnf-host-ip-address\": \"10.147.124.163\" }", | |
"responses": [{ | |
"response-message": "failure", | |
"response-action": { | |
"ignore": "true" | |
} | |
}] | |
}, | |
{ | |
"transactionId": 3, | |
"action": "Stop", | |
"action-level": "vm", | |
"action-identifier": { | |
"vserver-id": "smp_vserverid1" | |
}, | |
"payload": " {\"vnf-host-ip-address\": \"10.147.124.163\" }", | |
"responses": [{ | |
"response-message": "failure", | |
"response-action": { | |
"ignore": "true" | |
} | |
}] | |
} | |
] | |
Supported Actions | |
----------------- | |
The following actions are supported for the Sequence Generator API | |
for the Amsterdam release: | |
- Generate Runtime Sequence Flow for Start Action with no dependency | |
model | |
- Generate Runtime Sequence Flow for Stop Action with no dependency | |
model | |
.. |image0| image:: media/AppCDeployment.png | |
:width: 6.50000in | |
:height: 2.55903in | |
.. |image1| image:: media/AppCApidoxExplorer.png | |
:width: 6.50000in | |
:height: 4.83611in | |
.. |image2| image:: media/AppCApidoxExplorer2.png | |
:width: 6.50000in | |
:height: 5.50139in | |
.. |image3| image:: media/AppCApidoxExplorer3.png | |
:width: 6.50000in | |
:height: 5.65347in | |
.. |image4| image:: media/AppCApidoxExplorer4.png | |
:width: 6.50000in | |
:height: 6.62292in | |
.. |image5| image:: media/AppCArchitectureDiagram.png | |
:width: 6.50000in | |
:height: 3.40347in | |
.. |image6| image:: media/AppCDGOrchestratorArchitecture.png | |
:width: 6.36597in | |
:height: 3.72903in |