Merge "Decompose the VNF instance"
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / vnfs / tests / test_vnf_create.py
1 # Copyright 2017 ZTE Corporation.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 import json
16 import uuid
17
18 import mock
19 from django.test import TestCase, Client
20 from rest_framework import status
21
22 from lcm.pub.database.models import NfInstModel
23 from lcm.pub.utils import restcall
24
25
26 class TestNsInstantiate(TestCase):
27     def setUp(self):
28         self.client = Client()
29         self.nsd_id = str(uuid.uuid4())
30
31     def tearDown(self):
32         pass
33
34     # @mock.patch.object(restcall, 'call_req')
35     # def test_create_vnf_identifier(self, mock_call_req):
36     #     r1 = [0, json.JSONEncoder().encode(vnfd_model_dict), '200']
37     #     mock_call_req.side_effect = [r1]
38     #
39     #     data = {
40     #         "vnfdId": "111",
41     #         "vnfInstanceName": "vFW_01",
42     #         "vnfInstanceDescription": " vFW in Nanjing TIC Edge"}
43     #     response = self.client.post("/gvnfmapi/lcm/v1/vnf_instances", data=data, format='json')
44     #     self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code)
45     #     context = json.loads(response.content)
46     #     self.assertTrue(NfInstModel.objects.filter(nfinstid=context['vnfInstanceId']).exists())
47
48     def test_instantiate_vnf(self):
49         data = {
50             "flavourId": "flavour_1",
51             "instantiationLevelId": "instantiationLevel_1",
52             "extVirtualLinks": [
53                 {
54                     "vlInstanceId": "1",
55                     "vim": {
56                         "vimInfoId": "1",
57                         "vimId": "1",
58                         "interfaceInfo": {
59                             "vimType": "vim",
60                             "apiVersion": "v2",
61                             "protocolType": "http"
62                         },
63                         "accessInfo": {
64                             "tenant": "tenant_vCPE",
65                             "username": "vCPE",
66                             "password": "vCPE_321"
67                         },
68                         "interfaceEndpoint": "http://10.43.21.105:80/"
69                     },
70                     "resourceId": "1246",
71                     "extCps": [
72                         {
73                             "cpdId": "11",
74                             "addresses": [
75                                 {
76                                     "addressType": "MAC",
77                                     "l2AddressData": "00:f3:43:20:a2:a3"
78                                 },
79                                 {
80                                     "addressType": "IP",
81                                     "l3AddressData": {
82                                         "iPAddressType": "IPv4",
83                                         "iPAddress": "192.168.104.2"
84                                     }
85                                 }
86                             ],
87                             "numDynamicAddresses": 0
88                         }
89                     ]
90                 }
91             ],
92             "localizationLanguage": "en_US",
93             "additionalParams": {}
94         }
95         response = self.client.post("/gvnfmapi/lcm/v1/vnf_instances/12/instantiate", data=data, format='json')
96         self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
97