- Jenkins daily release https://jenkins.onap.org/view/vfc/job/vfc-nfvo-driver-svnfm-nokiav2-master-drv-vnfm-nokiav2-release-version-java-daily/
+- Jenkins snapshot docker release: https://jenkins.onap.org/view/vfc/job/vfc-nfvo-driver-svnfm-nokiav2-docker-vnfm-nokiav2-master-merge-docker/
+
+- Jenkins daily docker release: https://jenkins.onap.org/view/vfc/job/vfc-nfvo-driver-svnfm-nokiav2-docker-vnfm-nokiav2-master-release-version-docker-daily-no-sonar/
+
- Sonar: https://sonar.onap.org/dashboard?id=org.onap.vfc.nfvo.driver.vnfm.svnfm.nokiav2%3Avfc-nfvo-driver-vnfm-svnfm-nokiav2
- Nexus IQ reports: https://nexus-iq.wl.linuxfoundation.org/assets/index.html#/management/view/application/vfc-nfvo-driver-svnfm-nokiav2
- Note: Cloud credentials are supplied by the VNF integrator.
- To obtain the value of the Auth URL field and the tenant id (which will be required later), follow these steps:
+
- Note: The actual steps depend on the OpenStack Dashboard version and vendor.
+
- Go to OpenStack Horizon Dashboard.
+
- Select the Project main tab.
+
- Select the API Access tab.
+
- Click View Credentials.
+
- Copy the value of Authentication URL and paste it in the Auth URL field.
+
- Note the value of Project ID: this is the <tenantId> which will be required later (Repeat this step for all tenants planned to be used within the VIM.)
- Click Save.
- Using a REST client of your choice, send a request to the following URL: https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/<cloudOwner>/<cloudRegion>/tenants/tenant/<tenantId>
- download the content of the request: `aai.create.tenant.request.json <sample/aai.create.tenant.request.json>`
+
- In the request URL and in the content of the request, substitute <tenantId>, <cloudRegion> and <cloudOwner> with the respective values.
+
- HTTP method: PUT
+
- Set the following values in the Header of the request:
- basic auth AAI:AAI
+
- X-FromAppId : any
+
+ - X-TransactionId: any
+
- Content-type: application/json
+
+ - Accept: application/json
+
+- Create customer in A&AI
+
+ - Note:
+
+ - The customer may already exists
+
+ - Using a REST client of your choice, send a request to the following URL: https://aai.api.simpledemo.onap.org:8443/aai/v11/business/customers/customer/123456
+
+ - download the content of the request: `aai.create.customer.request.json <sample/aai.create.customer.request.json>`
+
+ - In the downloaded content of the request, substitute <tenantName>, <tenantId>, <cloudRegion> and <cloudOwner> with the respective values.
+
+ - HTTP method: PUT
+
+ - Set the following values in the Header of the request:
+
+ - basic auth AAI:AAI
+
+ - X-FromAppId : any
+
+ - X-TransactionId: any
+
+ - Content-type: application/json
+
- Accept: application/json
- Register the VNFM as an external system:
+-----------------+------------------------------------------+
| URL | <authUrl>_<lcmUrl>_<lcnUrl>_<catalogUrl> |
+-----------------+------------------------------------------+
-| VIM | any |
+| VIM | <cloudOwner>_<cloudRegion> |
+-----------------+------------------------------------------+
| certificate URL | |
+-----------------+------------------------------------------+
- Determine the UUID of the VNFM:
- - Access the following URL: http://msb.api.simpledemo.onap.org:9518/api/aai-esr-server/v1/vnfms
- - Look for the previously registered VNFM and note the value of <vnfmId>.
+ - Using a REST client of your choice, send a request to the following URL: https://aai.api.simpledemo.onap.org:8447/aai/v11/external-system/esr-vnfm-list/esr-vnfm?depth=all
+
+ - HTTP method: GET
+
+ - Set the following values in the Header of the request:
+
+ - basic auth AAI:AAI
+
+ - X-FromAppId : any
+
+ - X-TransactionId: any
+
+ - Content-type: application/json
+
+ - Accept: application/json
+
+ - Look for the previously registered VNFM and note the value of (vnfm-id) <vnfmId>.
Configure the SVNFM driver (generic)
- Determine the IMAGE ID:
- Execute the following command: docker images
+
- Find the required image and note the IMAGE ID.
- Start the driver:
- Determine the identifier of the container:
- Execute the following command: docker ps
+
- Find the required container and note the CONTAINER ID (first column/first row on the list).
- Verify if the VNFM driver has been successfully started by executing the following commands:
- Verify if the SVNFM is registered into MSB:
- Go to http://msb.api.simpledemo.onap.org/msb
+
- Check if NokiaSVNFM micro service is present in the boxes.
- Restart the VNFM service
- - Execute the following command: ps -ef | grep java |
\ No newline at end of file
+ - Execute the following command: kill -9 `ps -ef | grep java | grep -v grep | awk '{print $2}'`
\ No newline at end of file
Onboard NS
==========
-Prepare environment
--------------------
-- Create customer in A&AI
+Create licensing model
+----------------------
- - tool: Postman
- - method: PUT
- - URL: https://aai.api.simpledemo.onap.org:8443/aai/v11/business/customers/customer/123456
- - Headers
-
- - basic auth AAI:AAI
- - X-FromAppId : any
- - Content-type: application/json
- - Accept: application/json
-
- - body: :download:`aai.create.customer.request.json <sample/aai.create.customer.request.json>`
-
- - Edit tenant id, cloud owner, cloud region
- Log into ONAP portal with designer role (cs0008)
- Create License model
- - ONBOARD / Create new VLP
+ - ONBOARD / Create new VLM
- name = select a name easy to remember
- name = any
- - License key group / add new licencse key group
+ - License key group / add new license key group
- name = any
+
- type = universal
- Feature groups / add feature group
- name = any
+
- part number = 123456
+
- manufacturer reference number = 123456
+
- entitlement pool (add any with arrow button)
+
- license key group (add any with arrow button)
+
- save
- License agreements / Add license agreement
- name = any
+
- license term unlimited
+
- feature groups (add any with arrow button)
- Check in (lock icon at top)
+
- Submit (tick icon at top)
+On-board VNF
+------------
+
- On-board / Create new VSP (vendor software package)
- Create VSP
- name = select a name easy to remember
+
- vendor = name of the license model
+
- category = Database (IMPORTANT NOT TO CHANGE THIS (linked to the global customer))
+
- onboarding procedure = network package
+
- description = any
- Upload CSAR
- Select licence
- overview / software product details / license agreement
+
- licenses
+
- set license version, license agreement, feature groups
+
- click on save icon at top
+
- commit & submit using icons at top
- Create VF
- set General / Vendor model number to CBAM package VNFD ID
- set sVNFM property assignment / inputs / nf_type set NokiaSVNFM
+
- commit
+
- submit for testing
- Test VF
- Log in as tester role
+
- Select VF
+
- Start testing button
+
- Accept testing
+Design network service
+----------------------
+
- Create Service
- - Log in as designer role
+ - Log in with designer role (cs0008)
+
- home / add / add service
+
- name = select a name easy to remember
+
- project code = 123456
+
- Check in & check out (required to save a safe point to restore to if something goes wrong)
- Add created VF (Composition)
- drag icon to main picture (be patient only drag once, if multiple icons appear restart procedure )
+
- Check in
+
- Open service again and verify that the VF is part of the service under composition
- Submit for testing
+
- Test Service
- - Log in as tester role (jm0007)
+ - Log in with tester role (jm0007)
+
- start testing & accept
- Approve service
- - Log in as governence user (gv0001)
+ - Log in with governance role (gv0001)
+
- Select service and press approve
- Distribute the service
- - Log in as operations personen (op0001)
+ - Log in with operations role (op0001)
+
- Select service and push distribute
+
- Click on monitor (verify that the state of the service is distributed)
"relationship": [{
"related-to": "tenant",
"relationship-data": [
- {"relationship-key": "cloud-region.cloud-owner", "relationship-value": "Nokia"},
- {"relationship-key": "cloud-region.cloud-region-id", "relationship-value": "RegionOne"},
- {"relationship-key": "tenant.tenant-id", "relationship-value": "2ca57d2dbeda4e8a84739319bab769f4"}
+ {"relationship-key": "cloud-region.cloud-owner", "relationship-value": "<cloudOwner"},
+ {"relationship-key": "cloud-region.cloud-region-id", "relationship-value": "<cloudRegion>"},
+ {"relationship-key": "tenant.tenant-id", "relationship-value": "<tenantId>"}
]
}]
}
{
- "cloud-owner": "Nokia",
- "cloud-region-id": "RegionOne",
- "tenant-id": "2ca57d2dbeda4e8a84739319bab769f4",
- "tenant-name": "VFC"
+ "cloud-owner": "<cloudOwner>",
+ "cloud-region-id": "<cloudRegion>",
+ "tenant-id": "<tenantId>",
+ "tenant-name": "<tenantName>"
}
\ No newline at end of file
{
- "nsName": "cbam_ns_dual_2",
- "csarId": "0479b45c-85cb-4dae-979a-e44618b1a49f",
+ "nsName": "cbam_ns_simple_1",
+ "csarId": "2ef6e605-7b83-4692-94a6-32c1ff72b6bb",
"context": {
"globalCustomerId" : "123456",
"serviceType" : "Database"
--- /dev/null
+{
+ "healVnfData": {
+ "vnfInstanceId": "98dfd286-e4dc-437b-9607-15fb3964485d",
+ "cause": "cause",
+ "additionalParams": {
+ "action": "auto",
+ "actionvminfo": {
+ "vmid": "95a8f4bd-3384-48b9-8c97-8493ee6e7535",
+ "vmname": "CBAM-59fa6b5b2c004c689ed30df5eeff69ef-simple-0"
+ }
+ }
+ }
+}
\ No newline at end of file
{
- "nsInstanceId": "69c095e8-e24f-4e0b-821e-f6f8d342a929",
+ "nsInstanceId": "23fd3ae5-c261-4662-9fcd-35107d33954f",
"additionalParamForNs": {
"location": "Nokia_RegionOne",
"61fbe643-8c92-4b95-a90a-d65f1ba359a9": "{ \"computeResourceFlavours\": [ { \"vnfdVirtualComputeDescId\": \"server_compute\", \"resourceId\": \"m1.small\" } ], \"extVirtualLinks\": [ { \"extCps\": [ { \"cpdId\": \"universal_ecp\" } ], \"resourceId\": \"pub_net\" } ], \"zones\": [ { \"resourceId\": \"compute-a\", \"id\": \"zoneInfoId\" } ], \"flavourId\": \"scalable\", \"vimType\": \"OPENSTACK_V3_INFO\", \"instantiationLevel\": \"default\", \"softwareImages\": [ { \"resourceId\": \"ubuntu.16.04\", \"vnfdSoftwareImageId\": \"server_image\" } ] }"
--- /dev/null
+{
+ "scaleVnfData" :
+ {
+ "type" : "SCALE_OUT",
+ "aspectId" : "simpleAspect",
+ "numberOfSteps" : "1"
+ }
+}
\ No newline at end of file
{
"healVnfData": {
- "vnfInstanceId": "05901205-622e-495b-9673-25c433c1c35a",
+ "vnfInstanceId": "9c45cbf7-e5df-44a0-a469-89b80ded8d8c",
"cause": "cause",
"additionalParams": {
- "action": "restartvm",
+ "action": "auto",
"actionvminfo": {
- "vmid": "vmId",
- "vmname": "vmname"
+ "vmid": "fef21eb0-d020-4790-8d43-3c1a9aa634dc",
+ "vmname": "CBAM-a5ec0302fe3a46c7a8f60b28d61fe25c-simple-1"
}
}
}
------
- CSAR: :download:`csar <sampleVnfs/simple/simple.csar>`
+
- NS creation request on VF-C API :download:`create.json <sampleVnfs/simple/vfc.ns.create.request.json>` (several fields must be changed to fit actual environment)
+
- NS instantiation request on VF-C API :download:`instantiate.json <sampleVnfs/simple/vfc.ns.instantiation.request.json>` (several fields must be changed to fit actual environment)
+- NS heal request on VF-C API: :download:`heal.json <sampleVnfs/simple/vfc.ns.heal.request.json>` (several fields must be changed to fit actual environment)
+
+- VNF scale request on VF-C API: :download:`scale.json <sampleVnfs/simple/vfc.vnf.scale.request.json>` (several fields must be changed to fit actual environment)
+
Simple Dual
-----------
- CSAR: :download:`csar <sampleVnfs/simpleDual/simpleDual.csar>`
+
- NS creation request on VF-C API :download:`create.json <sampleVnfs/simpleDual/vfc.ns.create.request.json>` (several fields must be changed to fit actual environment)
+
- NS instantiation request on VF-C API :download:`instantiate.json <sampleVnfs/simpleDual/vfc.ns.instantiation.request.json>` (several fields must be changed to fit actual environment)
+
- NS heal request on VF-C API: :download:`heal.json <sampleVnfs/simpleDual/vfc.ns.heal.request.json>` (several fields must be changed to fit actual environment)
+
- VNF scale request on VF-C API: :download:`scale.json <sampleVnfs/simpleDual/vfc.vnf.scale.request.json>` (several fields must be changed to fit actual environment)
+VOLTE IMS
+---------
+
+- TODO
\ No newline at end of file
-------------------------------
- the VNFD must have a instantiation level named default
+
- each VDU must have a corresponding software image named <vduname>_image
+
- the VNF integrator must use the availability zones to specify the location of the VNFCs. One availability zone
will be defined for each VDU
- the VNF must declare the externalVnfmId and onapCsarId as modifyable attribute in CBAM package. Each should have
a default value. (The concrete value will be filled out by CBAM)
- each operation must declare a jobId additional parameter in CBAM package (value will be filled out by CBAM)
-- the heal operation must declare the jobId, vmName and action parameters in CBAM package (values will be filled out by CBAM)
+- the heal operation must declare the jobId, vmName, vnfcId and action parameters in CBAM package (values will be filled out by CBAM)
- each operation (including built-in) must include the following section as the last pre_action (all JS are provided by CBAM)
.. code-block:: console
--- /dev/null
+NS life-cycle management
+=========================
+
+NS creation
+-----------
+
+
+NS instantiation
+----------------
+
+
+VNF scaling
+-----------
+
+
+VNF healing
+-----------
+
+
+NS termination
+--------------
+
+
+
+