Merge "Fix automated updates of submodules in repo."
[doc.git] / docs / guides / onap-user / instantiate / instantiation / so1 / index.rst
index 860f502..af2edc8 100644 (file)
@@ -2,36 +2,87 @@
 .. International License. http://creativecommons.org/licenses/by/4.0
 .. Copyright 2019 ONAP Contributors.  All rights reserved.
 
-.. _doc_guide_user_ser_inst:
+.. _doc_guide_user_ser_inst_so1:
 
 
-AlaCarte mode Service Instantiation via ONAP SO API
-===================================================
+A La Carte mode Service Instantiation via ONAP SO API
+=====================================================
 
-Using ONAP SO API in "Alacarte" mode, you need to send several requests,
-depending on the service model composition.
+Using ONAP SO API in "A La Carte" mode, the user needs to send
+a request to instantiate the service object but also for each VNF/VF-module
+and network that compose the Service.
 
-For example, if your service model is composed of 2 VNF and a Network,
-you will have to build and send :
+ONAP will instantiate resources on Cloud platforms only when user is requesting
+to instantiate VF-module or Network (openstack neutron or contrail).
 
-* a request to SO to create the "service instance" object
-* a request to SO to create the VNF 1 instance object
-* a request to SDNC to declare VNF 1 instance parameters and values
-  (SDNC preload)
-* a request to SO to create the Vf-module 1 instance object
-* a request to SO to create the VNF 2 instance object
-* a request to SDNC to declare VNF 2 instance parameters and values
-  (SDNC preload)
-* a request to SO to create the Vf-module 2 instance object
-* a request to SO to create the Network instance object
+To instantiate a VF-module, it is required to have instantiated a VNF object.
 
+To instantiate a VNF object, it is required to have instantiated
+a Service object.
 
+To instantiate a Network object, it is required to have instantiated
+a Service object.
 
-Example to request a service instance directly to ONAP SO
+**Requests**
+    * `Request to instantiate Service object`_
+    * `Request to instantiate VNF object`_
+    * `Requests to instantiate VF-module object`_
+    * `Requests to instantiate Neutron Network object`_
+    * `Requests to instantiate a Contrail Network object`_
 
 
-TO BE COMPLETED
+Request to instantiate Service object
+-------------------------------------
 
+Example to request a service instance directly to ONAP SO
+
+::
+
+  curl -X POST \
+    http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
+    -H 'Content-Type: application/json' \
+    -H 'X-ONAP-PartnerName: NBI' \
+    -H 'cache-control: no-cache' \
+    -d '{
+    "requestDetails": {
+      "requestInfo": {
+        "instanceName": "integration_test_service_instance_001",
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "demo"
+      },
+      "modelInfo": {
+        "modelType": "service",
+        "modelInvariantId": "48d7ceec-7975-406c-8b96-cb3fbdbcfa33",
+        "modelVersionId": "33a99ef7-b5a3-4603-b21e-790582b4567e",
+        "modelName": "integration_test_service_ubuntu16",
+        "modelVersion": "1.0"
+      },
+          "cloudConfiguration": {
+              "tenantId": "dd8fce79e74a4989a6be6b6c5e55acef",
+              "cloudOwner": "cloudOwner",
+              "lcpCloudRegionId": "RegionOne"
+          },
+      "requestParameters": {
+        "userParams": [],
+        "testApi": "VNF_API",
+        "subscriptionServiceType": "integration_test_service_ubuntu16",
+        "aLaCarte": true
+      },
+      "subscriberInfo": {
+        "globalSubscriberId": "integration_test_customer"
+      },
+      "project": {
+        "projectName": "integration_test_project"
+      },
+      "owningEntity": {
+        "owningEntityId": "8874891f-5120-4b98-b452-46284513958d",
+        "owningEntityName": "OE-Generic"
+      }
+    }
+  }'
 
 
 In the response, you will obtain the serviceOrderId value.
@@ -53,67 +104,76 @@ This will allow you to get the serviceOrder Status (completed, failed...)
     -H 'cache-control: no-cache'
 
 
-To instantiate a VNF, you need to build a complex request.
+Request to instantiate VNF object
+---------------------------------
+
+To instantiate a VNF, you need to build an other request.
 All necessary parameters are available in the Tosca service template
 generated by SDC when you defined your service model.
 
 ::
 
   curl -X POST \
-  http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstances/v6/95762b50-0244-4723-8fde-35f911db9263/vnfs \
-  -H 'Accept: application/json' \
-  -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
-  -H 'Content-Type: application/json' \
-  -H 'X-FromAppId: AAI' \
-  -H 'X-TransactionId: get_aai_subscr' \
-  -H 'cache-control: no-cache' \
-  -d '{
-  "requestDetails": {
-    "requestInfo": {
-      "productFamilyId": "0d463b0c-e559-4def-8d7b-df64cfbd3159",
-      "instanceName": "my_service_vnf_instance_001",
-      "source": "VID",
-      "suppressRollback": false,
-      "requestorId": "test"
-    },
-  "modelInfo": {
-    "modelType": "vnf",
-    "modelInvariantId": "4e66bb92-c597-439e-822d-75aaa69b13d4",
-      "modelVersionId": "3b6ba59c-287c-449e-a1da-2db49984a087",
-      "modelName": "my_service_VF",
-      "modelVersion": "1.0",
-      "modelCustomizationId": "",
-      "modelCustomizationName": ""
-    },
-    "requestParameters": {
-      "userParams": [],
-      "aLaCarte": true,
-    "testApi": "VNF_API"
-    },
-    "cloudConfiguration": {
-      "lcpCloudRegionId": "my_cloud_site",
-      "tenantId": "5906b9b8fd9642df9ba1c9e290063439"
-    },
-    "lineOfBusiness": {
-      "lineOfBusinessName": "test_LOB"
-    },
-    "platform": {
-      "platformName": "test_platform"
-    },
-    "relatedInstanceList": [{
-      "relatedInstance": {
-        "instanceId": "95762b50-0244-4723-8fde-35f911db9263",
-        "modelInfo": {
-          "modelType": "service",
-          "modelName": "my-service-model",
-          "modelInvariantId": "11265d8c-2cc2-40e5-95d8-57cad81c18da",
-          "modelVersion": "1.0",
-          "modelVersionId": "0d463b0c-e559-4def-8d7b-df64cfbd3159"
+    http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances/7d550d9e-e1c4-4a21-a2bb-1c3ced8a8722/vnfs \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
+    -H 'Content-Type: application/json' \
+    -H 'X-ONAP-PartnerName: NBI' \
+    -H 'cache-control: no-cache' \
+    -d '{
+    "requestDetails": {
+      "requestInfo": {
+        "instanceName": "integration_test_vnf_instance_002",
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "test",
+      "productFamilyId": "1234"
+      },
+    "modelInfo": {
+      "modelType": "vnf",
+      "modelInvariantId": "661a34ce-6f76-4ebf-ad94-814a9fc8a2aa",
+        "modelVersionId": "7e7d453c-0085-4df2-b4b5-91281ea2e710",
+        "modelName": "integration_test_VF_ubuntu16_2",
+        "modelVersion": "1.0",
+        "modelCustomizationId": "342c14b4-8a24-46dd-a8c3-ff39dd7949e9",
+        "modelCustomizationName": "integration_test_VF_ubuntu16_2 0"
+      },
+      "requestParameters": {
+        "userParams": [],
+        "aLaCarte": true,
+      "testApi": "VNF_API"
+      },
+      "cloudConfiguration": {
+        "lcpCloudRegionId": "RegionOne",
+        "cloudOwner": "cloudOwner",
+        "tenantId": "dd8fce79e74a4989a6be6b6c5e55acef"
+      },
+      "lineOfBusiness": {
+        "lineOfBusinessName": "integration_test_LOB"
+      },
+      "platform": {
+        "platformName": "integration_test_platform"
+      },
+      "relatedInstanceList": [{
+        "relatedInstance": {
+          "instanceId": "7d550d9e-e1c4-4a21-a2bb-1c3ced8a8722",
+          "modelInfo": {
+            "modelType": "service",
+            "modelName": "integration_test_service_ubuntu16",
+            "modelInvariantId": "48d7ceec-7975-406c-8b96-cb3fbdbcfa33",
+            "modelVersion": "1.0",
+            "modelVersionId": "33a99ef7-b5a3-4603-b21e-790582b4567e"
+          }
         }
-      }
-    }]
+      }]
+    }
   }
-  }'
+
+  '
+
+
+Requests to instantiate VF-module object
+----------------------------------------
 
 To instantiate a VF module, you need to build two complex requests
 All necessary parameters are available in the Tosca service template
@@ -121,126 +181,129 @@ generated by SDC when you defined your service model.
 
 1st request is called a "SDNC-preload" for a VNF object and is used
 to store in SDNC some VNF parameters values
-that will be used when instantiating
+that will be needed for the instantiation
 
 ::
 
   curl -X POST \
-  http://sdnc.api.simpledemo.onap.org:30202/restconf/operations/VNF-API:preload-vnf-topology-operation \
-  -H 'Accept: application/json' \
-  -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
-  -H 'Content-Type: application/json' \
-  -H 'X-FromAppId: API client' \
-  -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
-  -H 'cache-control: no-cache' \
-  -d '{
-    "input": {
-        "request-information": {
-            "notification-url": "onap.org",
-            "order-number": "1",
-            "order-version": "1",
-            "request-action": "PreloadVNFRequest",
-            "request-id": "test"
-        },
-        "sdnc-request-header": {
-            "svc-action": "reserve",
-            "svc-notification-url": "http:\/\/onap.org:8080\/adapters\/rest\/SDNCNotify",
-            "svc-request-id": "test"
-        },
-        "vnf-topology-information": {
-            "vnf-assignments": {
-                "availability-zones": [],
-                "vnf-networks": [],
-                "vnf-vms": []
-            },
-            "vnf-parameters": [],
-            "vnf-topology-identifier": {
-                "generic-vnf-name": "my_service_vnf_instance_001",
-                "generic-vnf-type": "",
-                "service-type": "95762b50-0244-4723-8fde-35f911db9263",
-                "vnf-name": "my_service_vfmodule_001",
-                "vnf-type": ""
-            }
-        }
-    }
+    https://sdnc.api.simpledemo.onap.org:30267/restconf/operations/VNF-API:preload-vnf-topology-operation \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
+    -H 'Content-Type: application/json' \
+    -H 'X-FromAppId: API client' \
+    -H 'X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e' \
+    -H 'cache-control: no-cache' \
+    -d '{
+      "input": {
+          "request-information": {
+              "notification-url": "onap.org",
+              "order-number": "1",
+              "order-version": "1",
+              "request-action": "PreloadVNFRequest",
+              "request-id": "test"
+          },
+          "sdnc-request-header": {
+              "svc-action": "reserve",
+              "svc-notification-url": "http:\/\/onap.org:8080\/adapters\/rest\/SDNCNotify",
+              "svc-request-id": "test"
+          },
+          "vnf-topology-information": {
+              "vnf-assignments": {
+                  "availability-zones": [],
+                  "vnf-networks": [],
+                  "vnf-vms": []
+              },
+              "vnf-parameters": [],
+              "vnf-topology-identifier": {
+                  "generic-vnf-name": "integration_test_vnf_instance_002",
+                  "generic-vnf-type": "integration_test_VF_ubuntu16_2 0",
+                  "service-type": "7d550d9e-e1c4-4a21-a2bb-1c3ced8a8722",
+                  "vnf-name": "integration_test_vfmodule_002",
+                  "vnf-type": "IntegrationTestVfUbuntu162..base_ubuntu16..module-0"
+              }
+          }
+      }
   }'
 
-The 2nd request id to instantiate the VF module via ONAP SO
+The 2nd request is to instantiate the VF module via ONAP SO
 (instance name must be identical in both requests)
 
 ::
 
   curl -X POST \
-  http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstances/v6/95762b50-0244-4723-8fde-35f911db9263/vnfs//vfModules \
-  -H 'Accept: application/json' \
-  -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
-  -H 'Content-Type: application/json' \
-  -H 'X-FromAppId: AAI' \
-  -H 'X-TransactionId: get_aai_subscr' \
-  -H 'cache-control: no-cache' \
-  -d '{
-  "requestDetails": {
-    "requestInfo": {
-      "instanceName": "my_vfmodule_001",
-      "source": "VID",
-      "suppressRollback": false,
-      "requestorId": "test"
+    http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances/7d550d9e-e1c4-4a21-a2bb-1c3ced8a8722/vnfs/9764c2af-e4b0-413d-80cd-b65014ea0926/vfModules \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
+    -H 'Content-Type: application/json' \
+    -H 'X-ONAP-PartnerName: NBI' \
+    -H 'cache-control: no-cache' \
+    -d '{
+    "requestDetails": {
+      "requestInfo": {
+        "instanceName": "integration_test_vfmodule_002",
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "test"
+      },
+    "modelInfo": {
+      "modelType": "vfModule",
+      "modelInvariantId": "273bef63-1f26-4b14-91e0-003fa203ead2",
+      "modelVersionId": "7cdf75de-ff3c-4a7d-a7e0-ecbc00693e8e",
+      "modelName": "IntegrationTestVfUbuntu162..base_ubuntu16..module-0",
+      "modelVersion": "1",
+      "modelCustomizationId": "470956aa-b739-4cdd-b114-7ce032f65b18",
+      "modelCustomizationName": "IntegrationTestVfUbuntu162..base_ubuntu16..module-0"
     },
-  "modelInfo": {
-    "modelType": "vfModule",
-    "modelInvariantId": "",
-    "modelVersionId": "",
-    "modelName": "",
-    "modelVersion": "1",
-    "modelCustomizationId": "",
-    "modelCustomizationName": ""
-  },
-  "requestParameters": {
-    "userParams": [],
-    "testApi": "VNF_API",
-    "usePreload": true
-  },
-    "cloudConfiguration": {
-      "lcpCloudRegionId": "my_cloud_site",
-      "tenantId": "5906b9b8fd9642df9ba1c9e290063439"
+    "requestParameters": {
+      "userParams": [],
+      "testApi": "VNF_API",
+      "usePreload": true
     },
-    "relatedInstanceList": [{
-      "relatedInstance": {
-        "instanceId": "95762b50-0244-4723-8fde-35f911db9263",
-        "modelInfo": {
-          "modelType": "service",
-          "modelName": "my-service-model",
-          "modelInvariantId": "11265d8c-2cc2-40e5-95d8-57cad81c18da",
-          "modelVersion": "1.0",
-          "modelVersionId": "0d463b0c-e559-4def-8d7b-df64cfbd3159"
+      "cloudConfiguration": {
+        "lcpCloudRegionId": "RegionOne",
+        "cloudOwner": "cloudOwner",
+        "tenantId": "dd8fce79e74a4989a6be6b6c5e55acef"
+      },
+      "relatedInstanceList": [{
+        "relatedInstance": {
+          "instanceId": "7d550d9e-e1c4-4a21-a2bb-1c3ced8a8722",
+          "modelInfo": {
+            "modelType": "service",
+            "modelName": "integration_test_service_ubuntu16",
+            "modelInvariantId": "48d7ceec-7975-406c-8b96-cb3fbdbcfa33",
+            "modelVersion": "1.0",
+            "modelVersionId": "33a99ef7-b5a3-4603-b21e-790582b4567e"
+          }
         }
-      }
-    },
-    {
-      "relatedInstance": {
-        "instanceId": "",
-        "modelInfo": {
-          "modelType": "vnf",
-          "modelName": "my_service_model_VF",
-          "modelInvariantId": "4e66bb92-c597-439e-822d-75aaa69b13d4",
-          "modelVersion": "1.0",
-          "modelVersionId": "3b6ba59c-287c-449e-a1da-2db49984a087",
-          "modelCustomizationId": "",
-          "modelCustomizationName": ""
+      },
+      {
+        "relatedInstance": {
+          "instanceId": "9764c2af-e4b0-413d-80cd-b65014ea0926",
+          "modelInfo": {
+            "modelType": "vnf",
+            "modelName": "integration_test_VF_ubuntu16_2",
+            "modelInvariantId": "661a34ce-6f76-4ebf-ad94-814a9fc8a2aa",
+            "modelVersion": "1.0",
+            "modelVersionId": "7e7d453c-0085-4df2-b4b5-91281ea2e710",
+            "modelCustomizationId": "342c14b4-8a24-46dd-a8c3-ff39dd7949e9",
+            "modelCustomizationName": "integration_test_VF_ubuntu16_2 0"
+          }
         }
-      }
-    }]
-  }
+      }]
+    }
   }'
 
 
 
+Requests to instantiate Neutron Network object
+----------------------------------------------
+
 To instantiate a Neutron Network, you need to build two complex request.
 All necessary parameters are available in the Tosca service template
 generated by SDC when you defined your service model.
 
 
-1st request is the "SDNC-preload" for a network object:
+1st request is the "SDNC-preload" for a neutron network object:
 
 ::
 
@@ -303,14 +366,14 @@ generated by SDC when you defined your service model.
   }'
 
 
-2nd request is to instantiate the network via ONAP SO
+2nd request is to instantiate the neutron network via ONAP SO
 (instance name must be identical in both requests)
 
 
 ::
 
-curl -X POST \
-  http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstances/v6/95762b50-0244-4723-8fde-35f911db9263/networks \
+  curl -X POST \
+  http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstantiation/v7/95762b50-0244-4723-8fde-35f911db9263/networks \
   -H 'Accept: application/json' \
   -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
   -H 'Content-Type: application/json' \
@@ -323,8 +386,7 @@ curl -X POST \
           "instanceName": "my_network_01",
           "source": "VID",
           "suppressRollback": false,
-          "requestorId": "demo",
-          "productFamilyId": "b9ac88f7-0e1b-462d-84ac-74c3c533217c"
+          "requestorId": "demo"
       },
       "modelInfo": {
           "modelType": "network",
@@ -362,5 +424,42 @@ curl -X POST \
               }
           }
       }]
-  }
-}'
+    }
+  }'
+
+
+It is then possible to get information about that network from AAI:
+replace {{virtual_link_UUID}} by the UUID of the virtual link
+
+
+::
+
+  curl -X GET \
+    https://aai.api.sparky.simpledemo.onap.org:30233/aai/v16/network/l3-networks/l3-network/{{virtual_link_UUID}} \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Basic QUFJOkFBSQ==' \
+    -H 'Content-Type: application/json' \
+    -H 'X-FromAppId: AAI' \
+    -H 'X-TransactionId: get_aai_subscr' \
+    -H 'cache-control: no-cache'
+
+
+And also about subnet:
+
+::
+
+  curl -X GET \
+    https://aai.api.sparky.simpledemo.onap.org:30233/aai/v16/network/l3-networks/l3-network/{{virtual_link_UUID}}/subnets \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Basic QUFJOkFBSQ==' \
+    -H 'Content-Type: application/json' \
+    -H 'X-FromAppId: AAI' \
+    -H 'X-TransactionId: get_aai_subscr' \
+    -H 'cache-control: no-cache'
+
+
+
+Requests to instantiate a Contrail Network object
+-------------------------------------------------
+
+TO BE COMPLETED