2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Copyright (C) 2017 Amdocs
8 * =============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 * ============LICENSE_END=========================================================
25 package org.openecomp.appc.artifact.handler.node;
27 import java.io.ByteArrayOutputStream;
28 import java.io.OutputStream;
31 import org.apache.commons.lang.StringUtils;
32 import org.json.JSONArray;
33 import org.json.JSONObject;
34 import org.openecomp.appc.artifact.handler.dbservices.DBService;
35 import org.openecomp.appc.artifact.handler.utils.ArtifactHandlerProviderUtil;
36 import org.openecomp.appc.artifact.handler.utils.SdcArtifactHandlerConstants;
37 import org.openecomp.appc.yang.YANGGenerator;
38 import org.openecomp.appc.yang.impl.YANGGeneratorFactory;
39 import org.openecomp.sdnc.config.params.transformer.tosca.ArtifactProcessorImpl;
40 import org.openecomp.sdnc.sli.SvcLogicContext;
41 import org.openecomp.sdnc.sli.SvcLogicException;
42 import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
44 import com.att.eelf.configuration.EELFLogger;
45 import com.att.eelf.configuration.EELFManager;
49 public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
51 private static final EELFLogger log = EELFManager.getInstance().getLogger(ArtifactHandlerNode.class);
52 public void processArtifact(Map<String, String> inParams, SvcLogicContext ctx) throws Exception
54 String responsePrefix = inParams.get("response_prefix");
56 if(inParams != null && !inParams.isEmpty() && inParams.get("postData") !=null ){
57 log.info("Received request for process Artifact with params: " + inParams.toString());
58 String postData = inParams.get("postData");
59 JSONObject input = new JSONObject(postData).getJSONObject("input");
60 responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
61 storeUpdateSdcArtifacts(input);
70 private boolean storeUpdateSdcArtifacts(JSONObject postDataJson) throws Exception {
71 log.info("Starting processing of SDC Artifacs into Handler with Data : " + postDataJson.toString());
73 JSONObject request_information = (JSONObject)postDataJson.get(SdcArtifactHandlerConstants.REQUEST_INFORMATION);
74 JSONObject document_information =(JSONObject)postDataJson.get(SdcArtifactHandlerConstants.DOCUMENT_PARAMETERS);
75 String artifact_name = document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME);
76 if(artifact_name !=null){
77 updateStoreArtifacts(request_information, document_information );
78 if(artifact_name.toLowerCase().startsWith(SdcArtifactHandlerConstants.REFERENCE))
79 return storeReferenceData(request_information, document_information );
80 else if (artifact_name.toLowerCase().startsWith(SdcArtifactHandlerConstants.PD))
81 return createDataForPD(request_information, document_information );
85 throw new Exception("Missing Artifact Name for Request : " + request_information.getString(SdcArtifactHandlerConstants.REQUETS_ID));
89 throw new Exception("Error while processing Request ID : " + ((JSONObject)postDataJson.get(SdcArtifactHandlerConstants.REQUEST_INFORMATION)).getString(SdcArtifactHandlerConstants.REQUETS_ID) + e.getMessage());
94 private boolean createDataForPD(JSONObject request_information, JSONObject document_information) throws Exception {
96 String fn = "ArtifactHandlerNode.createReferenceDataForPD";
97 String artifact_name = document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME);
98 log.info(fn + "Received PD File Name: " + artifact_name + " and suffix lenght " + SdcArtifactHandlerConstants.PD.length());
101 String suffix = artifact_name.substring(SdcArtifactHandlerConstants.PD.length());
102 createArtifactRecords(request_information, document_information, suffix);
103 } catch (Exception e) {
105 throw new Exception("Error while createing PD data records " + e.getMessage());
110 private void createArtifactRecords(JSONObject request_information, JSONObject document_information, String suffix) throws Exception {
112 log.info("Creating Tosca Records and storing into SDC Artifacs");
113 String [] docs = {"Tosca", "Yang"};
114 ArtifactHandlerProviderUtil ahpUtil = new ArtifactHandlerProviderUtil();
115 String PDFileContents = document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS);
118 OutputStream toscaStream = new ByteArrayOutputStream();
119 String toscaContents = null;
120 ArtifactProcessorImpl toscaGenerator = new ArtifactProcessorImpl();
121 toscaGenerator.generateArtifact(PDFileContents,toscaStream);
122 if(toscaStream != null)
123 toscaContents = toscaStream.toString();
124 log.info("Generated Tosca File : " + toscaContents);
127 //String yangContents = "Dummay Yang, Yang contents will be available after IST Integration";
129 String yangContents = "YANG generation is in Progress";
130 String yangName = null;
132 for(String doc : docs){
133 document_information.put(SdcArtifactHandlerConstants.ARTIFACT_TYPE, doc.concat("Type"));
134 document_information.put(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION, doc.concat("Model"));
135 if(doc.equals("Tosca"))
136 document_information.put(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS, ahpUtil.escapeSql(toscaContents));
137 else if (doc.equals("Yang"))
138 document_information.put(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS, ahpUtil.escapeSql(yangContents));
139 document_information.put(SdcArtifactHandlerConstants.ARTIFACT_NAME, doc.concat(suffix));
140 yangName = doc.concat(suffix);
141 updateStoreArtifacts(request_information, document_information);
144 String artifactId = getArtifactID(yangName);
145 OutputStream yangStream = new ByteArrayOutputStream();
146 YANGGenerator yangGenerator = YANGGeneratorFactory.getYANGGenerator();
147 yangGenerator.generateYANG(artifactId , toscaContents, yangStream);
148 if(yangStream != null)
149 yangContents = yangStream.toString();
151 if(yangContents !=null ){
152 updateYangContents(artifactId, ahpUtil.escapeSql(yangContents));
157 private void updateYangContents(String artifactId, String yangContents) throws SvcLogicException {
158 SvcLogicContext context = new SvcLogicContext();
159 DBService dbservice = DBService.initialise();
160 dbservice.updateYangContents(context, artifactId, yangContents);
163 private String getArtifactID(String yangName) throws SvcLogicException {
164 SvcLogicContext context = new SvcLogicContext();
165 DBService dbservice = DBService.initialise();
166 return dbservice.getArtifactID(context, yangName);
169 private boolean updateStoreArtifacts(JSONObject request_information, JSONObject document_information ) throws Exception {
170 log.info("UpdateStoreArtifactsStarted storing of SDC Artifacs ");
172 SvcLogicContext context = new SvcLogicContext();
173 DBService dbservice = DBService.initialise();
174 ArtifactHandlerProviderUtil ahpUtil = new ArtifactHandlerProviderUtil();
176 context.setAttribute("artifact_name",document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
177 String internal_version = dbservice.getInternalVersionNumber(context, document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME), null);
178 log.info("Internal Version number received from Database : " + internal_version);
179 if(internal_version != null){
180 intversion = Integer.parseInt(internal_version);
183 context.setAttribute(SdcArtifactHandlerConstants.SERVICE_UUID, document_information.getString(SdcArtifactHandlerConstants.SERVICE_UUID));
184 context.setAttribute(SdcArtifactHandlerConstants.DISTRIBUTION_ID, document_information.getString(SdcArtifactHandlerConstants.DISTRIBUTION_ID));
185 context.setAttribute(SdcArtifactHandlerConstants.SERVICE_NAME, document_information.getString(SdcArtifactHandlerConstants.SERVICE_NAME));
186 context.setAttribute(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION, document_information.getString(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION));
187 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_UUID, document_information.getString(SdcArtifactHandlerConstants.RESOURCE_UUID));
188 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME,document_information.getString(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME));
189 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_VERSOIN, document_information.getString(SdcArtifactHandlerConstants.RESOURCE_VERSOIN));
190 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_TYPE, document_information.getString(SdcArtifactHandlerConstants.RESOURCE_TYPE));
191 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_UUID, document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_UUID));
192 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_TYPE,document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_TYPE));
193 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN,document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN));
194 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION,document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION));
195 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS,ahpUtil.escapeSql(document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS)));
196 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME,document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
197 dbservice.saveArtifacts(context, intversion);
202 public boolean storeReferenceData(JSONObject request_information, JSONObject document_information) throws Exception {
203 log.info("Started storing of SDC Artifacs into Handler" );
205 boolean updateRequired = false;
206 boolean pdFile = false;
207 String suffix = null;
208 String categorySuffix = null;
209 DBService dbservice = DBService.initialise();
210 ArtifactHandlerProviderUtil ahpUtil = new ArtifactHandlerProviderUtil();
211 String contentString = ahpUtil.escapeSql(document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS)) ;
212 String artifactName=ahpUtil.escapeSql(document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
213 String capabilityArtifactName=StringUtils.replace(artifactName, SdcArtifactHandlerConstants.ARTIFACT_NAME_REFERENCE, SdcArtifactHandlerConstants.ARTIFACT_NAME_CAPABILITY);
214 JSONObject capabilities = new JSONObject();
215 JSONArray vnfActionList = new JSONArray();
216 JSONArray vfModuleActionList = new JSONArray();
217 JSONArray vnfcActionList = new JSONArray();
218 JSONArray vmActionList = new JSONArray();
220 JSONObject contentObject = new JSONObject(contentString);
221 JSONArray contentArray= contentObject.getJSONArray("reference_data");
222 for(int a=0; a<contentArray.length() ; a++){
224 JSONObject content = (JSONObject) contentArray.get(a);
225 log.info("contentString =" + content.toString());
226 JSONObject scope = content.getJSONObject("scope");
227 log.info("scope :" + scope);
228 SvcLogicContext context = new SvcLogicContext();
229 vnfType=scope.getString(SdcArtifactHandlerConstants.VNF_TYPE);
230 context.setAttribute(SdcArtifactHandlerConstants.VNF_TYPE, scope.getString(SdcArtifactHandlerConstants.VNF_TYPE));
231 context.setAttribute(SdcArtifactHandlerConstants.ACTION, content.getString(SdcArtifactHandlerConstants.ACTION));
232 String actionLevel=content.getString(SdcArtifactHandlerConstants.ACTION_LEVEL);
233 context.setAttribute(SdcArtifactHandlerConstants.ACTION_LEVEL, content.getString(SdcArtifactHandlerConstants.ACTION_LEVEL));
234 if ((null != actionLevel) && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VNFC)) {
235 vnfcActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
237 if (null != actionLevel && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VF_MODULE)) {
238 vfModuleActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
240 if (null != actionLevel && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VNF)) {
241 vnfActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
243 if (null != actionLevel && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VM)) {
244 vmActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
246 if(scope.has(SdcArtifactHandlerConstants.VNFC_TYPE) && !scope.isNull(SdcArtifactHandlerConstants.VNFC_TYPE) )
247 context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, scope.getString(SdcArtifactHandlerConstants.VNFC_TYPE));
249 context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE,null);
250 if (content.has(SdcArtifactHandlerConstants.DEVICE_PROTOCOL))
251 context.setAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL, content.getString(SdcArtifactHandlerConstants.DEVICE_PROTOCOL));
252 if (content.has(SdcArtifactHandlerConstants.USER_NAME))
253 context.setAttribute(SdcArtifactHandlerConstants.USER_NAME, content.getString(SdcArtifactHandlerConstants.USER_NAME));
254 if (content.has(SdcArtifactHandlerConstants.PORT_NUMBER))
255 context.setAttribute(SdcArtifactHandlerConstants.PORT_NUMBER, content.getString(SdcArtifactHandlerConstants.PORT_NUMBER));
256 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_TYPE, "");
257 if(content.has("artifact-list") && content.get("artifact-list") instanceof JSONArray){
258 JSONArray artifactLists = (JSONArray)content.get("artifact-list");
259 for(int i=0;i<artifactLists.length();i++){
260 JSONObject artifact=(JSONObject)artifactLists.get(i);
261 log.info("artifact is " + artifact);
262 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
263 context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_TYPE));
265 if(artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME) !=null &&
266 artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME).toLowerCase().startsWith(SdcArtifactHandlerConstants.PD))
268 suffix = artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME).substring(SdcArtifactHandlerConstants.PD.length());
269 categorySuffix = artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_TYPE).substring(SdcArtifactHandlerConstants.PD.length());
273 dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
275 cleanArtifactInstanceData(context);
280 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, "Tosca".concat(suffix));
281 context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, SdcArtifactHandlerConstants.TOSCA_MODEL);
282 dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
283 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, "Yang".concat(suffix));
284 context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, SdcArtifactHandlerConstants.PARAMETER_YANG);
285 dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
288 if (content.getString(SdcArtifactHandlerConstants.ACTION).equals("Configure")) {
289 if(content.has(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE) && content.getString(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE).length() > 0){
290 context.setAttribute(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE, content.getString(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE));
291 dbservice.processDownloadDgReference(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE));
294 dbservice.processConfigActionDg(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG));
295 dbservice.processDeviceInterfaceProtocol(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL));
296 dbservice.processDeviceAuthentication(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_DEVICE_AUTHENTICATION));
301 populateProtocolReference(dbservice, content);
303 context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
305 if( content.has(SdcArtifactHandlerConstants.VM) && content.get(SdcArtifactHandlerConstants.VM) instanceof JSONArray){
306 JSONArray vmList = (JSONArray)content.get(SdcArtifactHandlerConstants.VM);
307 for(int i=0;i<vmList.length();i++){
308 JSONObject vmInstance=(JSONObject)vmList.get(i);
309 context.setAttribute(SdcArtifactHandlerConstants.VM_INSTANCE, String.valueOf(vmInstance.getInt(SdcArtifactHandlerConstants.VM_INSTANCE)));
310 log.info("VALUE = " + context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
311 if(vmInstance.get(SdcArtifactHandlerConstants.VNFC) instanceof JSONArray){
312 JSONArray vnfcInstanceList = (JSONArray)vmInstance.get(SdcArtifactHandlerConstants.VNFC);
313 for(int k=0;k<vnfcInstanceList.length();k++){
314 JSONObject vnfcInstance = (JSONObject)vnfcInstanceList.get(k);
315 context.setAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE, String.valueOf(vnfcInstance.getInt(SdcArtifactHandlerConstants.VNFC_INSTANCE)));
316 context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, vnfcInstance.getString(SdcArtifactHandlerConstants.VNFC_TYPE));
317 context.setAttribute(SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE, vnfcInstance.getString(SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE));
318 if(vnfcInstance.has(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP))
319 context.setAttribute(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP, vnfcInstance.getString(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP));
320 if(vnfcInstance.has(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE))
321 context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE, vnfcInstance.getString(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE));
322 if(vnfcInstance.has(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE))
323 context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE, vnfcInstance.getString(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE));
324 dbservice.processVnfcReference(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_VNFC_REFERENCE));
325 cleanVnfcInstance(context);
327 context.setAttribute(SdcArtifactHandlerConstants.VM_INSTANCE,null);
334 capabilities.put("vnf",vnfActionList );
335 capabilities.put("vf-module", vfModuleActionList);
336 capabilities.put("vnfc", vnfcActionList);
337 capabilities.put("vm", vmActionList);
338 processAndStoreCapablitiesArtifact(dbservice, document_information, capabilities,capabilityArtifactName,vnfType );
344 throw new Exception("Error While Storing : " + e.getMessage());
354 private void cleanArtifactInstanceData(SvcLogicContext context)
356 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, null);
357 context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, null);
360 private void cleanVnfcInstance(SvcLogicContext context) {
362 context.setAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE, null);
363 context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
364 context.setAttribute(SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE, null);
365 context.setAttribute(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP, null);
366 context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE, null);
367 context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE, null);
371 private void processAndStoreCapablitiesArtifact (DBService dbservice , JSONObject document_information,
372 JSONObject capabilities, String capabilityArtifactName, String vnfType) throws Exception {
373 log.info("Begin-->processAndStoreCapablitiesArtifact ");
377 JSONObject newCapabilitiesObject=new JSONObject();
378 newCapabilitiesObject.put("capabilities", capabilities);
379 SvcLogicContext context = new SvcLogicContext();
380 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME,capabilityArtifactName);
381 context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, SdcArtifactHandlerConstants.CAPABILITY);
382 context.setAttribute(SdcArtifactHandlerConstants.ACTION, null);
383 context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
384 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_TYPE, null);
385 context.setAttribute(SdcArtifactHandlerConstants.VNF_TYPE,vnfType);
386 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS,newCapabilitiesObject.toString());
387 dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
390 String internal_version = dbservice.getInternalVersionNumber(context, context.getAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME), null);
391 log.info("Internal Version number received from Database : " + internal_version);
392 if(internal_version != null){
393 intversion = Integer.parseInt(internal_version);
396 context.setAttribute(SdcArtifactHandlerConstants.SERVICE_UUID, document_information.getString(SdcArtifactHandlerConstants.SERVICE_UUID));
397 context.setAttribute(SdcArtifactHandlerConstants.DISTRIBUTION_ID, document_information.getString(SdcArtifactHandlerConstants.DISTRIBUTION_ID));
398 context.setAttribute(SdcArtifactHandlerConstants.SERVICE_NAME, document_information.getString(SdcArtifactHandlerConstants.SERVICE_NAME));
399 context.setAttribute(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION, document_information.getString(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION));
400 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_UUID, document_information.getString(SdcArtifactHandlerConstants.RESOURCE_UUID));
401 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME,document_information.getString(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME));
402 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_VERSOIN, document_information.getString(SdcArtifactHandlerConstants.RESOURCE_VERSOIN));
403 context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_TYPE, document_information.getString(SdcArtifactHandlerConstants.RESOURCE_TYPE));
404 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_UUID, document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_UUID));
405 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN,document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN));
406 context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION,document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION));
409 dbservice.saveArtifacts(context, intversion);
412 catch (Exception e) {
413 log.error("Error saving capabilities artifact to DB: "+ e.toString());
417 log.info("End-->processAndStoreCapablitiesArtifact ");
423 private void populateProtocolReference(DBService dbservice, JSONObject content) throws Exception{
424 log.info("Begin-->populateProtocolReference ");
426 SvcLogicContext context = new SvcLogicContext();
427 JSONObject scope = content.getJSONObject("scope");
428 String vnfType=null,protocol=null,action=null,actionLevel=null,template=null;
429 if(scope.has(SdcArtifactHandlerConstants.VNF_TYPE) && !scope.isNull(SdcArtifactHandlerConstants.VNF_TYPE))
430 vnfType=scope.getString(SdcArtifactHandlerConstants.VNF_TYPE);
431 if (content.has(SdcArtifactHandlerConstants.DEVICE_PROTOCOL))
432 protocol=content.getString(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
433 if (content.has(SdcArtifactHandlerConstants.ACTION))
434 action= content.getString(SdcArtifactHandlerConstants.ACTION);
435 if (content.has(SdcArtifactHandlerConstants.ACTION_LEVEL))
436 actionLevel=content.getString(SdcArtifactHandlerConstants.ACTION_LEVEL);
437 if (content.has(SdcArtifactHandlerConstants.TEMPLATE) && !content.isNull(SdcArtifactHandlerConstants.TEMPLATE))
438 template=content.getString(SdcArtifactHandlerConstants.TEMPLATE);
439 dbservice.insertProtocolReference(context, vnfType,protocol,action,actionLevel,template);
441 catch (Exception e) {
442 log.error("Error inserting record into protocolReference: "+e.toString());
446 log.info("End-->populateProtocolReference ");