Add subscriptions API to GVNFM
[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
43
44 class JobModel(models.Model):
45     class Meta:
46         db_table = 'JOB'
47
48     _database = 'job'
49
50     jobid = models.CharField(db_column='JOBID', primary_key=True, max_length=255)
51     jobtype = models.CharField(db_column='JOBTYPE', max_length=255)
52     jobaction = models.CharField(db_column='JOBACTION', max_length=255)
53     resid = models.CharField(db_column='RESID', max_length=255)
54     status = models.IntegerField(db_column='STATUS', null=True, blank=True)
55     starttime = models.CharField(db_column='STARTTIME', max_length=255, null=True, blank=True)
56     endtime = models.CharField(db_column='ENDTIME', max_length=255, null=True, blank=True)
57     progress = models.IntegerField(db_column='PROGRESS', null=True, blank=True)
58     user = models.CharField(db_column='USER', max_length=255, null=True, blank=True)
59     parentjobid = models.CharField(db_column='PARENTJOBID', max_length=255, null=True, blank=True)
60     resname = models.CharField(db_column='RESNAME', max_length=255, null=True, blank=True)
61
62     def toJSON(self):
63         import json
64         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
65
66
67 class JobStatusModel(models.Model):
68     class Meta:
69         db_table = 'JOB_STATUS'
70
71     _database = 'job'
72
73     indexid = models.IntegerField(db_column='INDEXID')
74     jobid = models.CharField(db_column='JOBID', max_length=255)
75     status = models.CharField(db_column='STATUS', max_length=255)
76     progress = models.IntegerField(db_column='PROGRESS', null=True, blank=True)
77     descp = models.TextField(db_column='DESCP', max_length=1024)
78     errcode = models.CharField(db_column='ERRCODE', max_length=255, null=True, blank=True)
79     addtime = models.CharField(db_column='ADDTIME', max_length=255, null=True, blank=True)
80
81     def toJSON(self):
82         import json
83         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
84
85
86 class NfvoRegInfoModel(models.Model):
87     class Meta:
88         db_table = 'NFVOREGINFO'
89
90     nfvoid = models.CharField(max_length=255, primary_key=True, db_column='NFVOID')
91     vnfminstid = models.CharField(max_length=255, db_column='VNFMINSTID')
92     apiurl = models.CharField(max_length=255, db_column='URL')
93     nfvouser = models.CharField(max_length=255, db_column='USERNAME', null=True)
94     nfvopassword = models.CharField(max_length=255, db_column='PASSWD', null=True)
95     authtype = models.IntegerField(db_column='AUTHTYPE', default=2)
96     clientcert = models.CharField(max_length=255, db_column='CLIENTCERT', null=True)
97     servercert = models.CharField(max_length=255, db_column='SERVERCERT', null=True)
98     regtime = models.CharField(max_length=255, db_column='REGTIME')
99
100
101 class StorageInstModel(models.Model):
102     class Meta:
103         db_table = 'STORAGEINST'
104
105     storageid = models.CharField(db_column='STORAGEID', primary_key=True, max_length=255)
106     vimid = models.CharField(db_column='VIMID', max_length=255)
107     resouceid = models.CharField(db_column='RESOURCEID', max_length=255)
108     insttype = models.IntegerField(db_column='INSTTYPE')
109     instid = models.CharField(db_column='INSTID', max_length=255)
110     name = models.CharField(db_column='NAME', max_length=255, null=True)
111     storagetype = models.CharField(db_column='STORAGETYPE', max_length=255)
112     size = models.CharField(db_column='SIZE', max_length=255)
113     # rdmaenabled = models.IntegerField(db_column='RDMAENABLED', null=True)
114     # disktype = models.CharField(db_column='DISKTYPE', max_length=255)
115     # ownerid = models.CharField(db_column='OWNERID', max_length=255, null=True)
116     # zoneid = models.CharField(db_column='ZONEID', max_length=255, null=True)
117     # hostid = models.CharField(db_column='HOSTID', max_length=255, null=True)
118     # operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
119     tenant = models.CharField(db_column='TENANT', max_length=50, null=True)
120     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
121     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
122     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
123
124
125 class VmInstModel(models.Model):
126     class Meta:
127         db_table = 'VMINST'
128
129     vmid = models.CharField(db_column='VMID', primary_key=True, max_length=255)
130     vimid = models.CharField(db_column='VIMID', max_length=255)
131     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
132     resouceid = models.CharField(db_column='RESOURCEID', max_length=255)
133     vmname = models.CharField(db_column='VMNAME', max_length=255)
134     nic_array = models.CharField(db_column='NICARRAY', max_length=255)
135     metadata = models.CharField(db_column='METADATA', max_length=255)
136     volume_array = models.CharField(db_column='VOLUMEARRAY', max_length=255)
137     server_group = models.CharField(db_column='SERVERGROUP', max_length=255)
138     availability_zone = models.CharField(db_column='AVAILABILITYZONE', max_length=255)
139     flavor_id = models.CharField(db_column='FLAVORID', max_length=255)
140     security_groups = models.CharField(db_column='SECURITYGROUPS', max_length=255)
141     operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
142     insttype = models.IntegerField(db_column='INSTTYPE')
143     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
144     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
145     instid = models.CharField(db_column='INSTID', max_length=255)
146     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
147
148
149 class VNFCInstModel(models.Model):
150     class Meta:
151         db_table = 'VNFCINST'
152
153     vnfcinstanceid = models.CharField(db_column='VNFCINSTANCEID', max_length=255, primary_key=True)
154     vduid = models.CharField(db_column='VDUID', max_length=255)
155     vdutype = models.CharField(db_column='VDUTYPE', max_length=255)
156     instid = models.CharField(db_column='NFINSTID', max_length=255)
157     vmid = models.CharField(db_column='VMID', max_length=255)
158     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
159
160
161 class FlavourInstModel(models.Model):
162     class Meta:
163         db_table = 'FLAVOURINST'
164
165     flavourid = models.CharField(db_column='FLAVOURID', max_length=255, primary_key=True)
166     vimid = models.CharField(db_column='VIMID', max_length=255)
167     resouceid = models.CharField(db_column='RESOURCEID', max_length=255)
168     name = models.CharField(db_column='NAME', max_length=255)
169     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
170     vcpu = models.IntegerField(db_column='VCPU', null=True)
171     memory = models.IntegerField(db_column='MEMORY', null=True)
172     disk = models.IntegerField(db_column='DISK', null=True)
173     ephemeral = models.IntegerField(db_column='EPHEMERAL', null=True)
174     swap = models.IntegerField(db_column='SWAP', null=True)
175     isPublic = models.IntegerField(db_column='ISPUBLIC', null=True)
176     extraspecs = models.TextField(db_column='EXTRASPECS', max_length=4096)
177     instid = models.CharField(db_column='INSTID', max_length=255)
178     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
179     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
180
181
182 class NetworkInstModel(models.Model):
183     class Meta:
184         db_table = 'NETWORKINST'
185
186     networkid = models.CharField(db_column='NETWORKID', primary_key=True, max_length=255)
187     vimid = models.CharField(db_column='VIMID', max_length=255)
188     resouceid = models.CharField(db_column='RESOURCEID', max_length=255)
189     insttype = models.IntegerField(db_column='INSTTYPE')
190     instid = models.CharField(db_column='INSTID', max_length=255)
191     name = models.CharField(db_column='NAME', max_length=255)
192     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
193     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
194     desc = models.CharField(db_column='DESC', max_length=255, null=True)
195     vendor = models.CharField(db_column='VENDOR', max_length=255, null=True)
196     bandwidth = models.IntegerField(db_column='BANDWIDTH', null=True)
197     mtu = models.IntegerField(db_column='MTU', null=True)
198     network_type = models.CharField(db_column='NETWORKTYPE', max_length=255, null=True)
199     segmentid = models.CharField(db_column='SEGMENTID', max_length=255, null=True)
200     networkqos = models.CharField(db_column='NETWORKQOS', max_length=255, null=True)
201     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
202     physicalNetwork = models.CharField(db_column='PHYNETWORK', max_length=255, null=True)
203     is_shared = models.IntegerField(db_column='ISSHARED', default=0, null=True)
204     vlantrans = models.IntegerField(db_column='VLANTRANS', null=True)
205     routerExternal = models.IntegerField(db_column='ROUTEREXTERNAL', default=0, null=True)
206     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
207
208
209 class SubNetworkInstModel(models.Model):
210     class Meta:
211         db_table = 'SUBNETWORKINST'
212
213     subnetworkid = models.CharField(db_column='SUBNETWORKID', primary_key=True, max_length=255)
214     vimid = models.CharField(db_column='VIMID', max_length=255)
215     resouceid = models.CharField(db_column='RESOURCEID', max_length=255)
216     networkid = models.CharField(db_column='NETWORKID', max_length=255)
217     insttype = models.IntegerField(db_column='INSTTYPE')
218     instid = models.CharField(db_column='INSTID', max_length=255)
219     name = models.CharField(db_column='NAME', max_length=255)
220     ipversion = models.IntegerField(db_column='IPVERSION', null=True)
221     gatewayip = models.CharField(db_column='GATEWAYIP', max_length=255, null=True)
222     isdhcpenabled = models.IntegerField(db_column='ISDHCPENABLED', null=True)
223     cidr = models.CharField(db_column='CIDR', max_length=255)
224     vdsname = models.CharField(db_column='VDSNAME', max_length=255, null=True)
225     operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
226     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
227     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
228     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
229     dnsNameservers = models.TextField(db_column='DNSNAMESERVERS', max_length=1024)
230     hostRoutes = models.TextField(db_column='HOSTROUTES', max_length=1024)
231     allocationPools = models.TextField(db_column='ALLOCATIONPOOLS', max_length=1024)
232
233
234 class VLInstModel(models.Model):
235     class Meta:
236         db_table = 'VLINST'
237
238     vlinstanceid = models.CharField(db_column='VLINSTANCEID', max_length=255, primary_key=True)
239     vldid = models.CharField(db_column='VLDID', max_length=255)
240     vlinstancename = models.CharField(db_column='VLINSTANCENAME', max_length=255, blank=True, null=True)
241     ownertype = models.IntegerField(db_column='OWNERTYPE')
242     ownerid = models.CharField(db_column='OWNERID', max_length=255)
243     relatednetworkid = models.CharField(db_column='RELATEDNETWORKID', max_length=255, blank=True, null=True)
244     relatedsubnetworkid = models.CharField(db_column='RELATEDSUBNETWORKID', max_length=255, blank=True, null=True)
245     vltype = models.IntegerField(db_column='VLTYPE', default=0)
246     vimid = models.CharField(db_column='VIMID', max_length=255)
247     tenant = models.CharField(db_column='TENANT', max_length=50)
248
249
250 class PortInstModel(models.Model):
251     class Meta:
252         db_table = 'PORTINST'
253
254     portid = models.CharField(db_column='PORTID', primary_key=True, max_length=255)
255     networkid = models.CharField(db_column='NETWORKID', max_length=255)
256     subnetworkid = models.CharField(db_column='SUBNETWORKID', max_length=255, null=True)
257     vimid = models.CharField(db_column='VIMID', max_length=255)
258     resouceid = models.CharField(db_column='RESOURCEID', max_length=255)
259     name = models.CharField(db_column='NAME', max_length=255, null=True)
260     insttype = models.IntegerField(db_column='INSTTYPE')
261     instid = models.CharField(db_column='INSTID', max_length=255)
262     cpinstanceid = models.CharField(db_column='CPINSTANCEID', max_length=255, null=True)
263     bandwidth = models.CharField(db_column='BANDWIDTH', max_length=255, null=True)
264     operationalstate = models.CharField(db_column='OPERATIONALSTATE', max_length=255, null=True)
265     ipaddress = models.CharField(db_column='IPADDRESS', max_length=255)
266     macaddress = models.CharField(db_column='MACADDRESS', max_length=255)
267     nicorder = models.CharField(db_column='NICORDER', max_length=255)
268     floatipaddress = models.CharField(db_column='FLOATIPADDRESS', max_length=255, null=True)
269     serviceipaddress = models.CharField(db_column='SERVICEIPADDRESS', max_length=255, null=True)
270     typevirtualnic = models.CharField(db_column='TYPEVIRTUALNIC', max_length=255, null=True)
271     sfcencapsulation = models.CharField(db_column='SFCENCAPSULATION', max_length=255, null=True)
272     direction = models.CharField(db_column='DIRECTION', max_length=255, null=True)
273     tenant = models.CharField(db_column='TENANT', max_length=255, null=True)
274     interfacename = models.CharField(db_column='INTERFACENAME', max_length=255, blank=True, null=True)
275     vmid = models.CharField(db_column='VMID', max_length=255, blank=True, null=True)
276     create_time = models.CharField(db_column='CREATETIME', max_length=200, null=True, blank=True)
277     securityGroups = models.CharField(db_column='SECURITYGROUPS', max_length=255)
278     is_predefined = models.IntegerField(db_column='ISPREDEFINED', default=0, null=True)
279     nodeId = models.CharField(db_column='NODEID', max_length=255, null=True)
280
281
282 class CPInstModel(models.Model):
283     class Meta:
284         db_table = 'CPINST'
285
286     cpinstanceid = models.CharField(db_column='CPINSTANCEID', max_length=255, primary_key=True)
287     cpdid = models.CharField(db_column='CPDID', max_length=255)
288     cpinstancename = models.CharField(db_column='CPINSTANCENAME', max_length=255)
289     vlinstanceid = models.CharField(db_column='VLINSTANCEID', max_length=255)
290     ownertype = models.IntegerField(db_column='OWNERTYPE')
291     ownerid = models.CharField(db_column='OWNERID', max_length=255)
292     relatedtype = models.IntegerField(db_column='RELATEDTYPE')
293     relatedvl = models.CharField(db_column='RELATEDVL', max_length=255, blank=True, null=True)
294     relatedcp = models.CharField(db_column='RELATEDCP', max_length=255, blank=True, null=True)
295     relatedport = models.CharField(db_column='RELATEDPORT', max_length=255, blank=True, null=True)
296
297
298 class SubscriptionModel(models.Model):
299     class Meta:
300         db_table = 'SUBSCRIPTION'
301     subscription_id = models.CharField(db_column='SUBSCRIPTIONID', max_length=255, primary_key=True)
302     callback_uri = models.CharField(db_column='CALLBACKURI', max_length=255)
303     auth_info = models.TextField(db_column='AUTHINFO', max_length=20000, blank=True, null=True)
304     notification_types = models.TextField(db_column='NOTIFICATIONTYPES',
305                                           null=True)
306     operation_types = models.TextField(db_column='OPERATIONTYPES',
307                                        null=True)
308     operation_states = models.TextField(db_column='OPERATIONSTATES',
309                                         null=True)
310     vnf_instance_filter = models.TextField(db_column='VNFINSTANCEFILTER',
311                                            null=True)
312     links = models.TextField(db_column='LINKS', max_length=20000)