Add suboperation to lcm op occ
[vfc/gvnfm/vnflcm.git] / lcm / lcm / pub / database / models.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 from django.db import models
16
17
18 class NfInstModel(models.Model):
19     class Meta:
20         db_table = 'NFINST'
21
22     nfinstid = models.CharField(db_column='NFINSTID', max_length=200, primary_key=True)
23     nf_name = models.CharField(db_column='NFNAME', max_length=100, blank=True, null=True)  # CreateVnfRequest.vnfInstanceName
24     vnfminstid = models.CharField(max_length=255, db_column='VNFMINSTID')
25     package_id = models.CharField(db_column='PACKAGEID', max_length=200, blank=True, null=True)
26     status = models.CharField(db_column='STATUS', max_length=20, blank=True, null=True)
27     flavour_id = models.CharField(db_column='FLAVOURID', max_length=200, blank=True, null=True)  # InstantiateVnfRequest.flavourId
28     location = models.CharField(db_column='LOCATION', max_length=200, blank=True, null=True)
29     version = models.CharField(db_column='VERSION', max_length=255, null=True)
30     vendor = models.CharField(db_column='VENDOR', max_length=255, null=True, blank=True)
31     netype = models.CharField(db_column='NETYPE', max_length=255, null=True)
32     vnfd_model = models.TextField(db_column='VNFDMODEL', max_length=20000, blank=True, null=True)
33     input_params = models.TextField(db_column='INPUTPARAMS', max_length=2000, blank=True, null=True)  # InstantiateVnfRequest.additionalParams
34     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
35     lastuptime = models.CharField(db_column='LASTUPTIME', max_length=200, blank=True, null=True)
36
37     nf_desc = models.CharField(db_column='VNFINSTANCEDESC', max_length=200, blank=True, null=True)
38     vnfdid = models.CharField(db_column='VNFDID', max_length=200, blank=True, null=True)
39     vnfSoftwareVersion = models.CharField(db_column='VNFSOFTWAREVER', max_length=200, blank=True, null=True)
40     vnfConfigurableProperties = models.TextField(db_column='VNFCONFIGURABLEPROPERTIES', max_length=20000, blank=True, null=True)
41     localizationLanguage = models.CharField(db_column='LOCALIZATIONLANGUAGE', max_length=255, null=True)
42     operationState = models.CharField(db_column='OPERATIONSTATE', max_length=255, null=True)
43     resInfo = models.TextField(db_column='RESINFO', max_length=20000, blank=True, null=True)
44     vimInfo = models.TextField(db_column='VIMINFO', max_length=20000, blank=True, null=True)
45
46
47 class JobModel(models.Model):
48     class Meta:
49         db_table = 'JOB'
50
51     _database = 'job'
52
53     jobid = models.CharField(db_column='JOBID', primary_key=True, max_length=255)
54     jobtype = models.CharField(db_column='JOBTYPE', max_length=255)
55     jobaction = models.CharField(db_column='JOBACTION', max_length=255)
56     resid = models.CharField(db_column='RESID', max_length=255)
57     status = models.IntegerField(db_column='STATUS', null=True, blank=True)
58     starttime = models.CharField(db_column='STARTTIME', max_length=255, null=True, blank=True)
59     endtime = models.CharField(db_column='ENDTIME', max_length=255, null=True, blank=True)
60     progress = models.IntegerField(db_column='PROGRESS', null=True, blank=True)
61     user = models.CharField(db_column='USER', max_length=255, null=True, blank=True)
62     parentjobid = models.CharField(db_column='PARENTJOBID', max_length=255, null=True, blank=True)
63     resname = models.CharField(db_column='RESNAME', max_length=255, null=True, blank=True)
64
65     def toJSON(self):
66         import json
67         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
68
69
70 class JobStatusModel(models.Model):
71     class Meta:
72         db_table = 'JOB_STATUS'
73
74     _database = 'job'
75
76     indexid = models.IntegerField(db_column='INDEXID')
77     jobid = models.CharField(db_column='JOBID', max_length=255)
78     status = models.CharField(db_column='STATUS', max_length=255)
79     progress = models.IntegerField(db_column='PROGRESS', null=True, blank=True)
80     descp = models.TextField(db_column='DESCP', max_length=1024)
81     errcode = models.CharField(db_column='ERRCODE', max_length=255, null=True, blank=True)
82     addtime = models.CharField(db_column='ADDTIME', max_length=255, null=True, blank=True)
83
84     def toJSON(self):
85         import json
86         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
87
88
89 class NfvoRegInfoModel(models.Model):
90     class Meta:
91         db_table = 'NFVOREGINFO'
92
93     nfvoid = models.CharField(max_length=255, primary_key=True, db_column='NFVOID')
94     vnfminstid = models.CharField(max_length=255, db_column='VNFMINSTID')
95     apiurl = models.CharField(max_length=255, db_column='URL')
96     nfvouser = models.CharField(max_length=255, db_column='USERNAME', null=True)
97     nfvopassword = models.CharField(max_length=255, db_column='PASSWD', null=True)
98     authtype = models.IntegerField(db_column='AUTHTYPE', default=2)
99     clientcert = models.CharField(max_length=255, db_column='CLIENTCERT', null=True)
100     servercert = models.CharField(max_length=255, db_column='SERVERCERT', null=True)
101     regtime = models.CharField(max_length=255, db_column='REGTIME')
102
103
104 class StorageInstModel(models.Model):
105     class Meta:
106         db_table = 'STORAGEINST'
107
108     storageid = models.CharField(db_column='STORAGEID', primary_key=True, max_length=255)
109     vimid = models.CharField(db_column='VIMID', max_length=255)
110     resourceid = models.CharField(db_column='RESOURCEID', max_length=255)
111     insttype = models.IntegerField(db_column='INSTTYPE')
112     instid = models.CharField(db_column='INSTID', max_length=255)
113     name = models.CharField(db_column='NAME', max_length=255, null=True)
114     storagetype = models.CharField(db_column='STORAGETYPE', max_length=255)
115     size = models.CharField(db_column='SIZE', max_length=255)
116     # rdmaenabled = models.IntegerField(db_column='RDMAENABLED', null=True)
117     # disktype = models.CharField(db_column='DISKTYPE', max_length=255)
118     # ownerid = models.CharField(db_column='OWNERID', max_length=255, null=True)
119     # zoneid = models.CharField(db_column='ZONEID', max_length=255, null=True)
120     # hostid = models.CharField(db_column='HOSTID', max_length=255, null=True)
121     # operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
122     tenant = models.CharField(db_column='TENANT', max_length=50, null=True)
123     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
124     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
125     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
126
127
128 class VmInstModel(models.Model):
129     class Meta:
130         db_table = 'VMINST'
131
132     vmid = models.CharField(db_column='VMID', primary_key=True, max_length=255)
133     vimid = models.CharField(db_column='VIMID', max_length=255)
134     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
135     resourceid = models.CharField(db_column='RESOURCEID', max_length=255)
136     vmname = models.CharField(db_column='VMNAME', max_length=255)
137     nic_array = models.CharField(db_column='NICARRAY', max_length=255)
138     metadata = models.CharField(db_column='METADATA', max_length=255)
139     volume_array = models.CharField(db_column='VOLUMEARRAY', max_length=255)
140     server_group = models.CharField(db_column='SERVERGROUP', max_length=255)
141     availability_zone = models.CharField(db_column='AVAILABILITYZONE', max_length=255)
142     flavor_id = models.CharField(db_column='FLAVORID', max_length=255)
143     security_groups = models.CharField(db_column='SECURITYGROUPS', max_length=255)
144     operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
145     insttype = models.IntegerField(db_column='INSTTYPE')
146     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
147     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
148     instid = models.CharField(db_column='INSTID', max_length=255)
149     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
150
151
152 class VNFCInstModel(models.Model):
153     class Meta:
154         db_table = 'VNFCINST'
155
156     vnfcinstanceid = models.CharField(db_column='VNFCINSTANCEID', max_length=255, primary_key=True)
157     vduid = models.CharField(db_column='VDUID', max_length=255)
158     vdutype = models.CharField(db_column='VDUTYPE', max_length=255)
159     instid = models.CharField(db_column='NFINSTID', max_length=255)
160     vmid = models.CharField(db_column='VMID', max_length=255)
161     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
162
163
164 class FlavourInstModel(models.Model):
165     class Meta:
166         db_table = 'FLAVOURINST'
167
168     flavourid = models.CharField(db_column='FLAVOURID', max_length=255, primary_key=True)
169     vimid = models.CharField(db_column='VIMID', max_length=255)
170     resourceid = models.CharField(db_column='RESOURCEID', max_length=255)
171     name = models.CharField(db_column='NAME', max_length=255)
172     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
173     vcpu = models.IntegerField(db_column='VCPU', null=True)
174     memory = models.IntegerField(db_column='MEMORY', null=True)
175     disk = models.IntegerField(db_column='DISK', null=True)
176     ephemeral = models.IntegerField(db_column='EPHEMERAL', null=True)
177     swap = models.IntegerField(db_column='SWAP', null=True)
178     isPublic = models.IntegerField(db_column='ISPUBLIC', null=True)
179     extraspecs = models.TextField(db_column='EXTRASPECS', max_length=4096)
180     instid = models.CharField(db_column='INSTID', max_length=255)
181     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
182     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
183
184
185 class NetworkInstModel(models.Model):
186     class Meta:
187         db_table = 'NETWORKINST'
188
189     networkid = models.CharField(db_column='NETWORKID', primary_key=True, max_length=255)
190     vimid = models.CharField(db_column='VIMID', max_length=255)
191     resourceid = models.CharField(db_column='RESOURCEID', max_length=255)
192     insttype = models.IntegerField(db_column='INSTTYPE')
193     instid = models.CharField(db_column='INSTID', max_length=255)
194     name = models.CharField(db_column='NAME', max_length=255)
195     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
196     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
197     desc = models.CharField(db_column='DESC', max_length=255, null=True)
198     vendor = models.CharField(db_column='VENDOR', max_length=255, null=True)
199     bandwidth = models.IntegerField(db_column='BANDWIDTH', null=True)
200     mtu = models.IntegerField(db_column='MTU', null=True)
201     network_type = models.CharField(db_column='NETWORKTYPE', max_length=255, null=True)
202     segmentid = models.CharField(db_column='SEGMENTID', max_length=255, null=True)
203     networkqos = models.CharField(db_column='NETWORKQOS', max_length=255, null=True)
204     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
205     physicalNetwork = models.CharField(db_column='PHYNETWORK', max_length=255, null=True)
206     is_shared = models.IntegerField(db_column='ISSHARED', default=0, null=True)
207     vlantrans = models.IntegerField(db_column='VLANTRANS', null=True)
208     routerExternal = models.IntegerField(db_column='ROUTEREXTERNAL', default=0, null=True)
209     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
210
211
212 class SubNetworkInstModel(models.Model):
213     class Meta:
214         db_table = 'SUBNETWORKINST'
215
216     subnetworkid = models.CharField(db_column='SUBNETWORKID', primary_key=True, max_length=255)
217     vimid = models.CharField(db_column='VIMID', max_length=255)
218     resourceid = models.CharField(db_column='RESOURCEID', max_length=255)
219     networkid = models.CharField(db_column='NETWORKID', max_length=255)
220     insttype = models.IntegerField(db_column='INSTTYPE')
221     instid = models.CharField(db_column='INSTID', max_length=255)
222     name = models.CharField(db_column='NAME', max_length=255)
223     ipversion = models.IntegerField(db_column='IPVERSION', null=True)
224     gatewayip = models.CharField(db_column='GATEWAYIP', max_length=255, null=True)
225     isdhcpenabled = models.IntegerField(db_column='ISDHCPENABLED', null=True)
226     cidr = models.CharField(db_column='CIDR', max_length=255)
227     vdsname = models.CharField(db_column='VDSNAME', max_length=255, null=True)
228     operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
229     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
230     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
231     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
232     dnsNameservers = models.TextField(db_column='DNSNAMESERVERS', max_length=1024)
233     hostRoutes = models.TextField(db_column='HOSTROUTES', max_length=1024)
234     allocationPools = models.TextField(db_column='ALLOCATIONPOOLS', max_length=1024)
235
236
237 class VLInstModel(models.Model):
238     class Meta:
239         db_table = 'VLINST'
240
241     vlinstanceid = models.CharField(db_column='VLINSTANCEID', max_length=255, primary_key=True)
242     vldid = models.CharField(db_column='VLDID', max_length=255)
243     vlinstancename = models.CharField(db_column='VLINSTANCENAME', max_length=255, blank=True, null=True)
244     ownertype = models.IntegerField(db_column='OWNERTYPE')
245     ownerid = models.CharField(db_column='OWNERID', max_length=255)
246     relatednetworkid = models.CharField(db_column='RELATEDNETWORKID', max_length=255, blank=True, null=True)
247     relatedsubnetworkid = models.CharField(db_column='RELATEDSUBNETWORKID', max_length=255, blank=True, null=True)
248     vltype = models.IntegerField(db_column='VLTYPE', default=0)
249     vimid = models.CharField(db_column='VIMID', max_length=255)
250     tenant = models.CharField(db_column='TENANT', max_length=50)
251
252
253 class PortInstModel(models.Model):
254     class Meta:
255         db_table = 'PORTINST'
256
257     portid = models.CharField(db_column='PORTID', primary_key=True, max_length=255)
258     networkid = models.CharField(db_column='NETWORKID', max_length=255)
259     subnetworkid = models.CharField(db_column='SUBNETWORKID', max_length=255, null=True)
260     vimid = models.CharField(db_column='VIMID', max_length=255)
261     resourceid = models.CharField(db_column='RESOURCEID', max_length=255)
262     name = models.CharField(db_column='NAME', max_length=255, null=True)
263     insttype = models.IntegerField(db_column='INSTTYPE')
264     instid = models.CharField(db_column='INSTID', max_length=255)
265     cpinstanceid = models.CharField(db_column='CPINSTANCEID', max_length=255, null=True)
266     bandwidth = models.CharField(db_column='BANDWIDTH', max_length=255, null=True)
267     operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
268     ipaddress = models.CharField(db_column='IPADDRESS', max_length=255)
269     macaddress = models.CharField(db_column='MACADDRESS', max_length=255)
270     nicorder = models.CharField(db_column='NICORDER', max_length=255)
271     floatipaddress = models.CharField(db_column='FLOATIPADDRESS', max_length=255, null=True)
272     serviceipaddress = models.CharField(db_column='SERVICEIPADDRESS', max_length=255, null=True)
273     typevirtualnic = models.CharField(db_column='TYPEVIRTUALNIC', max_length=255, null=True)
274     sfcencapsulation = models.CharField(db_column='SFCENCAPSULATION', max_length=255, null=True)
275     direction = models.CharField(db_column='DIRECTION', max_length=255, null=True)
276     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
277     interfacename = models.CharField(db_column='INTERFACENAME', max_length=255, blank=True, null=True)
278     vmid = models.CharField(db_column='VMID', max_length=255, blank=True, null=True)
279     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
280     securityGroups = models.CharField(db_column='SECURITYGROUPS', max_length=255)
281     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
282     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
283
284
285 class CPInstModel(models.Model):
286     class Meta:
287         db_table = 'CPINST'
288
289     cpinstanceid = models.CharField(db_column='CPINSTANCEID', max_length=255, primary_key=True)
290     cpdid = models.CharField(db_column='CPDID', max_length=255)
291     cpinstancename = models.CharField(db_column='CPINSTANCENAME', max_length=255)
292     vlinstanceid = models.CharField(db_column='VLINSTANCEID', max_length=255)
293     ownertype = models.IntegerField(db_column='OWNERTYPE')
294     ownerid = models.CharField(db_column='OWNERID', max_length=255)
295     relatedtype = models.IntegerField(db_column='RELATEDTYPE')
296     relatedvl = models.CharField(db_column='RELATEDVL', max_length=255, blank=True, null=True)
297     relatedcp = models.CharField(db_column='RELATEDCP', max_length=255, blank=True, null=True)
298     relatedport = models.CharField(db_column='RELATEDPORT', max_length=255, blank=True, null=True)
299
300
301 class SubscriptionModel(models.Model):
302     class Meta:
303         db_table = 'SUBSCRIPTION'
304     subscription_id = models.CharField(db_column='SUBSCRIPTIONID', max_length=255, primary_key=True)
305     callback_uri = models.CharField(db_column='CALLBACKURI', max_length=255)
306     auth_info = models.TextField(db_column='AUTHINFO', max_length=20000, blank=True, null=True)
307     notification_types = models.TextField(db_column='NOTIFICATIONTYPES',
308                                           null=True)
309     operation_types = models.TextField(db_column='OPERATIONTYPES',
310                                        null=True)
311     operation_states = models.TextField(db_column='OPERATIONSTATES',
312                                         null=True)
313     vnf_instance_filter = models.TextField(db_column='VNFINSTANCEFILTER',
314                                            null=True)
315     links = models.TextField(db_column='LINKS', max_length=20000)
316
317
318 class VNFLcmOpOccModel(models.Model):
319     class Meta:
320         db_table = 'VNFLCMOPOCCS'
321
322     id = models.CharField(db_column='ID', max_length=255, primary_key=True)
323     operation_state = models.CharField(db_column='OPERATIONSTATE', null=False, max_length=30)
324     state_entered_time = models.CharField(db_column='STATEENTEREDTIME', null=False, max_length=30)
325     start_time = models.CharField(db_column='STARTTIME', null=False, max_length=30)
326     vnf_instance_id = models.CharField(db_column='VNFINSTANCEID', null=False, max_length=255)
327     grant_id = models.CharField(db_column='GRANTID', null=True, max_length=255)
328     operation = models.CharField(db_column='OPERATION', null=False, max_length=30)
329     sub_operation = models.CharField(db_column='SUBOPERATION', null=True, max_length=30)
330     is_automatic_invocation = models.CharField(db_column='ISAUTOMATICINVOCATION', null=False, max_length=5)
331     operation_params = models.TextField(db_column='OPERATIONPARAMS', null=False)
332     is_cancel_pending = models.CharField(db_column='ISCANCELPENDING', null=False, max_length=5)
333     cancel_mode = models.TextField(db_column='CANCELMODE', null=True)
334     error = models.TextField(db_column='ERROR', null=True)
335     resource_changes = models.TextField(db_column='RESOURCECHANGES', null=True)
336     changed_info = models.TextField(db_column='CHANGEDINFO', null=True)
337     changed_ext_connectivity = models.TextField(db_column='CHANGEDEXTCONNECTIVITY', null=True)
338     links = models.TextField(db_column='LINKS', null=False)