genericparser seed code
[modeling/etsicatalog.git] / genericparser / pub / database / models.py
1 # Copyright 2016-2018 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 NSPackageModel(models.Model):
19     nsPackageId = models.CharField(db_column='NSPACKAGEID', primary_key=True, max_length=50)
20     nsPackageUri = models.CharField(db_column='NSPACKAGEURI', max_length=300, null=True, blank=True)
21     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
22     sdcCsarId = models.CharField(db_column='SDCCSARID', max_length=50, null=True, blank=True)  # SdcCSARUri
23     onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
24     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
25     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
26     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending
27     nsdId = models.CharField(db_column='NSDID', max_length=50, blank=True, null=True)
28     invariantId = models.CharField(db_column='INVARIANTID', max_length=50, blank=True, null=True)  # nsdInvariantId
29     nsdName = models.CharField(db_column='NSDNAME', max_length=50, blank=True, null=True)
30     nsdDesginer = models.CharField(db_column='NSDDESIGNER', max_length=50, null=True, blank=True)
31     nsdDescription = models.CharField(db_column='NSDDESCRIPTION', max_length=100, null=True, blank=True)
32     nsdVersion = models.CharField(db_column='NSDVERSION', max_length=20, null=True, blank=True)
33     userDefinedData = models.TextField(db_column='USERDEFINEDDATA', max_length=1024, blank=True, null=True)  # userDefinedData
34     localFilePath = models.CharField(db_column='LOCALFILEPATH', max_length=300, null=True, blank=True)
35     nsdModel = models.TextField(db_column='NSDMODEL', max_length=65535, null=True, blank=True)
36
37     class Meta:
38         db_table = 'CATALOG_NSPACKAGE'
39
40
41 class ServicePackageModel(models.Model):
42     servicePackageId = models.CharField(db_column='SERVICEPACKAGEID', primary_key=True, max_length=50)
43     servicePackageUri = models.CharField(db_column='SERVICEPACKAGEURI', max_length=300, null=True, blank=True)
44     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
45     sdcCsarId = models.CharField(db_column='SDCCSARID', max_length=50, null=True, blank=True)  # SdcCSARUri
46     onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
47     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
48     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
49     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending
50     servicedId = models.CharField(db_column='SERVICEDID', max_length=50, blank=True, null=True)
51     invariantId = models.CharField(db_column='INVARIANTID', max_length=50, blank=True, null=True)  # servicedInvariantId
52     servicedName = models.CharField(db_column='SERVICEDNAME', max_length=50, blank=True, null=True)
53     servicedDesigner = models.CharField(db_column='SERVICEDDESIGNER', max_length=50, null=True, blank=True)
54     servicedDescription = models.CharField(db_column='SERVICEDDESCRIPTION', max_length=100, null=True, blank=True)
55     servicedVersion = models.CharField(db_column='SERVICEDVERSION', max_length=20, null=True, blank=True)
56     userDefinedData = models.TextField(db_column='USERDEFINEDDATA', max_length=1024, blank=True, null=True)  # userDefinedData
57     localFilePath = models.CharField(db_column='LOCALFILEPATH', max_length=300, null=True, blank=True)
58     servicedModel = models.TextField(db_column='SERVICEDMODEL', max_length=65535, null=True, blank=True)
59
60     class Meta:
61         db_table = 'CATALOG_SERVICEPACKAGE'
62
63
64 class VnfPackageModel(models.Model):
65     # uuid = models.CharField(db_column='UUID', primary_key=True, max_length=255)
66     vnfPackageId = models.CharField(db_column='VNFPACKAGEID', primary_key=True, max_length=50)   # onboardedVnfPkgInfoId
67     vnfPackageUri = models.CharField(db_column='VNFPACKAGEURI', max_length=300, null=True, blank=True)  # downloadUri
68     SdcCSARUri = models.CharField(db_column='SDCCSARURI', max_length=300, null=True, blank=True)  # SdcCSARUri
69     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
70     onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
71     operationalState = models.CharField(db_column='OPERATIONALSTATE', max_length=20, blank=True, null=True)  # operationalState
72     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
73     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending
74     vnfdId = models.CharField(db_column='VNFDID', max_length=50, blank=True, null=True)                # vnfdId
75     vnfVendor = models.CharField(db_column='VENDOR', max_length=50, blank=True, null=True)  # vnfProvider
76     vnfdProductName = models.CharField(db_column='VNFDPRODUCTNAME', max_length=50, blank=True, null=True)  # vnfProductName
77     vnfdVersion = models.CharField(db_column='VNFDVERSION', max_length=20, blank=True, null=True)     # vnfdVersion
78     vnfSoftwareVersion = models.CharField(db_column='VNFSOFTWAREVERSION', max_length=20, blank=True, null=True)   # vnfSoftwareVersion
79     userDefinedData = models.TextField(db_column='USERDEFINEDDATA', max_length=1024, blank=True, null=True)  # userDefinedData
80     localFilePath = models.CharField(db_column='LOCALFILEPATH', max_length=300, null=True, blank=True)
81     vnfdModel = models.TextField(db_column='VNFDMODEL', max_length=65535, blank=True, null=True)  # vnfd
82
83     class Meta:
84         db_table = 'CATALOG_VNFPACKAGE'
85
86
87 class PnfPackageModel(models.Model):
88     # uuid = models.CharField(db_column='UUID', primary_key=True, max_length=255)
89     pnfPackageId = models.CharField(db_column='PNFPACKAGEID', primary_key=True, max_length=50)   # onboardedPnfPkgInfoId
90     pnfPackageUri = models.CharField(db_column='PNFPACKAGEURI', max_length=300, null=True, blank=True)  # downloadUri
91     sdcCSARUri = models.CharField(db_column='SDCCSARURI', max_length=300, null=True, blank=True)  # sdcCSARUri
92     checksum = models.CharField(db_column='CHECKSUM', max_length=50, null=True, blank=True)  # checksum
93     onboardingState = models.CharField(db_column='ONBOARDINGSTATE', max_length=20, blank=True, null=True)
94     usageState = models.CharField(db_column='USAGESTATE', max_length=20, blank=True, null=True)  # usageState
95     deletionPending = models.CharField(db_column='DELETIONPENDING', max_length=20, blank=True, null=True)  # deletionPending
96     pnfdId = models.CharField(db_column='PNFDID', max_length=50, blank=True, null=True)                # pnfdId
97     pnfVendor = models.CharField(db_column='VENDOR', max_length=50, blank=True, null=True)  # pnfProvider
98     pnfdProductName = models.CharField(db_column='PNFDPRODUCTNAME', max_length=50, blank=True, null=True)  # pnfProductName
99     pnfdVersion = models.CharField(db_column='PNFDVERSION', max_length=20, blank=True, null=True)     # pnfdVersion
100     pnfSoftwareVersion = models.CharField(db_column='PNFSOFTWAREVERSION', max_length=20, blank=True, null=True)   # pnfSoftwareVersion
101     userDefinedData = models.TextField(db_column='USERDEFINEDDATA', max_length=1024, blank=True, null=True)  # userDefinedData
102     localFilePath = models.CharField(db_column='LOCALFILEPATH', max_length=300, null=True, blank=True)
103     pnfdModel = models.TextField(db_column='PNFDMODEL', max_length=65535, blank=True, null=True)  # pnfd
104     pnfdName = models.TextField(db_column='PNFDNAME', max_length=65535, blank=True, null=True)  # pnfd_name
105
106     class Meta:
107         db_table = 'CATALOG_PNFPACKAGE'
108
109
110 class SoftwareImageModel(models.Model):
111     imageid = models.CharField(db_column='IMAGEID', primary_key=True, max_length=50)
112     containerFormat = models.CharField(db_column='CONTAINERFORMAT', max_length=20)
113     diskFormat = models.CharField(db_column='DISKFORMAT', max_length=20)
114     mindisk = models.CharField(db_column='MINDISK', max_length=20)
115     minram = models.CharField(db_column='MINRAM', max_length=20)
116     usermetadata = models.CharField(db_column='USAERMETADATA', max_length=1024)
117     vnfPackageId = models.CharField(db_column='VNFPACKAGEID', max_length=50)
118     filePath = models.CharField(db_column='FILEPATH', max_length=300)
119     status = models.CharField(db_column='STATUS', max_length=10)
120     vimid = models.CharField(db_column='VIMID', max_length=50)
121     # filetype = models.CharField(db_column='FILETYPE', max_length=2)
122     # vimuser = models.CharField(db_column='VIMUSER', max_length=50)
123     # tenant = models.CharField(db_column='TENANT', max_length=50)
124     # purpose = models.CharField(db_column='PURPOSE', max_length=1000)
125
126     class Meta:
127         db_table = 'CATALOG_SOFTWAREIMAGEMODEL'
128
129
130 class JobModel(models.Model):
131     jobid = models.CharField(db_column='JOBID', primary_key=True, max_length=255)
132     jobtype = models.CharField(db_column='JOBTYPE', max_length=255)
133     jobaction = models.CharField(db_column='JOBACTION', max_length=255)
134     resid = models.CharField(db_column='RESID', max_length=255)
135     status = models.IntegerField(db_column='STATUS', null=True, blank=True)
136     starttime = models.CharField(db_column='STARTTIME', max_length=255, null=True, blank=True)
137     endtime = models.CharField(db_column='ENDTIME', max_length=255, null=True, blank=True)
138     progress = models.IntegerField(db_column='PROGRESS', null=True, blank=True)
139     user = models.CharField(db_column='USER', max_length=255, null=True, blank=True)
140     parentjobid = models.CharField(db_column='PARENTJOBID', max_length=255, null=True, blank=True)
141     resname = models.CharField(db_column='RESNAME', max_length=255, null=True, blank=True)
142
143     class Meta:
144         db_table = 'CATALOG_JOB'
145
146     def toJSON(self):
147         import json
148         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
149
150
151 class JobStatusModel(models.Model):
152     indexid = models.IntegerField(db_column='INDEXID')
153     jobid = models.CharField(db_column='JOBID', max_length=255)
154     status = models.CharField(db_column='STATUS', max_length=255)
155     progress = models.IntegerField(db_column='PROGRESS', null=True, blank=True)
156     descp = models.TextField(db_column='DESCP', max_length=65535)
157     errcode = models.CharField(db_column='ERRCODE', max_length=255, null=True, blank=True)
158     addtime = models.CharField(db_column='ADDTIME', max_length=255, null=True, blank=True)
159
160     class Meta:
161         db_table = 'CATALOG_JOB_STATUS'
162
163     def toJSON(self):
164         import json
165         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
166
167
168 class NsdmSubscriptionModel(models.Model):
169     subscriptionid = models.CharField(db_column='SUBSCRIPTIONID', max_length=255, primary_key=True)
170     notificationTypes = models.TextField(db_column='NOTIFICATIONTYPES', null=True)
171     auth_info = models.TextField(db_column='AUTHINFO', null=True)
172     callback_uri = models.CharField(db_column='CALLBACKURI', max_length=255)
173     nsdInfoId = models.TextField(db_column='NSDINFOID', null=True)
174     nsdId = models.TextField(db_column='NSDID', null=True)
175     nsdName = models.TextField(db_column='NSDNAME', null=True)
176     nsdVersion = models.TextField(db_column='NSDVERSION', null=True)
177     nsdDesigner = models.TextField(db_column='NSDDESIGNER', null=True)
178     nsdInvariantId = models.TextField(db_column='NSDINVARIANTID', null=True)
179     vnfPkgIds = models.TextField(db_column='VNFPKGIDS', null=True)
180     pnfdInfoIds = models.TextField(db_column='PNFDINFOIDS', null=True)
181     nestedNsdInfoIds = models.TextField(db_column='NESTEDNSDINFOIDS', null=True)
182     nsdOnboardingState = models.TextField(db_column='NSDONBOARDINGSTATE', null=True)
183     nsdOperationalState = models.TextField(db_column='NSDOPERATIONALSTATE', null=True)
184     nsdUsageState = models.TextField(db_column='NSDUSAGESTATE', null=True)
185     pnfdId = models.TextField(db_column='PNFDID', null=True)
186     pnfdName = models.TextField(db_column='PNFDNAME', null=True)
187     pnfdVersion = models.TextField(db_column='PNFDVERSION', null=True)
188     pnfdProvider = models.TextField(db_column='PNFDPROVIDER', null=True)
189     pnfdInvariantId = models.TextField(db_column='PNFDINVARIANTID', null=True)
190     pnfdOnboardingState = models.TextField(db_column='PNFDONBOARDINGSTATE', null=True)
191     pnfdUsageState = models.TextField(db_column='PNFDUSAGESTATE', null=True)
192     links = models.TextField(db_column='LINKS')
193
194     class Meta:
195         db_table = 'CATALOG_NSDM_SUBSCRIPTION'
196
197     def toJSON(self):
198         import json
199         return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
200
201
202 class VnfPkgSubscriptionModel(models.Model):
203     subscription_id = models.CharField(max_length=255, primary_key=True, db_column='SUBSCRIPTION_ID')
204     callback_uri = models.URLField(db_column="CALLBACK_URI", max_length=255)
205     auth_info = models.TextField(db_column="AUTH_INFO")
206     usage_states = models.TextField(db_column="USAGE_STATES")
207     notification_types = models.TextField(db_column="NOTIFICATION_TYPES")
208     vnfd_id = models.TextField(db_column="VNFD_ID")
209     vnf_pkg_id = models.TextField(db_column="VNF_PKG_ID")
210     operation_states = models.TextField(db_column="OPERATION_STATES")
211     vnf_products_from_provider = \
212         models.TextField(db_column="VNF_PRODUCTS_FROM_PROVIDER")
213     links = models.TextField(db_column="LINKS")
214
215     class Meta:
216         db_table = 'VNF_PKG_SUBSCRIPTION'
217
218     def toDict(self):
219         import json
220         subscription_obj = {
221             "id": self.subscription_id,
222             "callbackUri": self.callback_uri,
223             "_links": json.loads(self.links)
224         }
225         filter_obj = {
226             "notificationTypes": json.loads(self.notification_types),
227             "vnfdId": json.loads(self.vnfd_id),
228             "vnfPkgId": json.loads(self.vnf_pkg_id),
229             "operationalState": json.loads(self.operation_states),
230             "usageState": json.loads(self.usage_states),
231             "vnfProductsFromProviders": json.loads(self.vnf_products_from_provider)
232         }
233         subscription_obj["filter"] = filter_obj
234         return subscription_obj