/* * Copyright (C) 2015 ZTE, Inc. and others. All rights reserved. (ZTE) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var templateParameters = { templateName: '', parameters: [] }; var service_instance_insert_index = 0; var lcmHandler = function(){ this._addOwnEvents(); }; lcmHandler.prototype = { _addOwnEvents : function () { $('a[data-toggle="tab"]').on('show.bs.tab', this.beforeParameterTabShow); $('#createNS').click(this.okAction); }, beforeParameterTabShow : function (event) { renderTemplateParametersTab(); }, okAction : function (event) { var serviceInstance = { serviceTemplateId: $('#svcTempl').val(), serviceName: $('#svcName').val(), serviceDescription: $('#svcDesc').val(), serviceParameters: collectServiceParameters(templateParameters) } var s1ServiceUrl = '/openoapi/servicegateway/v1/services'; var serviceTemplate = fetchServiceTemplateBy(serviceInstance.serviceTemplateId); if(serviceTemplate === undefined) { return; } if(serviceTemplate.csarType === 'GSAR') { serviceInstance.serviceInstanceId = createGsoServiceInstance(s1ServiceUrl, serviceInstance); }else if(serviceTemplate.csarType === 'NSAR' || serviceTemplate.csarType === 'NFAR') { serviceInstance.serviceInstanceId = createNfvoServiceInstance(s1ServiceUrl, serviceInstance); }else if(serviceTemplate.csarType === 'SSAR') { serviceInstance.serviceInstanceId = createSdnoServiceInstance(s1ServiceUrl, serviceInstance); } if(serviceInstance.serviceInstanceId === undefined) { return; } updateTable(serviceInstance); } }; function collectServiceParameters(parameters) { var serviceParameters = {}; var i; for( i = 0; i < parameters.length; i += 1) { serviceParameters[parameters.name] = $('#' + parameters[i].id).val(); } return serviceParameters; } function fetchServiceTemplateBy(templateId) { var serviceTemplateUri = '/openoapi/catalog/v1/servicetemplates/'+ templateId; var template; $.ajax({ type : "GET", async: false, url : serviceTemplateUri, contentType : "application/json", dataType : "json", success : function(jsonResp) { template = { name: jsonResp.templateName, gsarId: jsonResp.csarId } }, error : function(xhr, ajaxOptions, thrownError) { alert("Error on page : " + xhr.responseText); } }); if(template === undefined) { return template; } var queryCsarUri = '/openoapi/catalog/v1/csars/' + template.gsarId; $.ajax({ type : "GET", async: false, url : queryCsarUri, contentType : "application/json", dataType : "json", success : function(jsonResp) { template.csarType = jsonResp.type }, error : function(xhr, ajaxOptions, thrownError) { alert("Error on page : " + xhr.responseText); } }); return template; } function renderTemplateParametersTab() { templateParameters = fetchTemplateParameterDefinitions(templateParameters); var components = transfromToComponents(templateParameters.parameters); document.getElementById("parameterTab").innerHTML = components; } function fetchTemplateParameterDefinitions(parameters) { var serviceTemplate = parameters.templateName; var currentServiceTemplate = $("#svcTempl").val(); // Do not need to fetch template parameters if template do not change in UI. if(serviceTemplate === currentServiceTemplate) { return; } var queryParametersUri = '/openoapi/catalog/v1/servicetemplates/' + currentServiceTemplate + '/parameters'; var inputParameters = []; $.ajax({ type : "GET", async: false, url : queryParametersUri, contentType : "application/json", dataType : "json", success : function(jsonResp) { var inputs = jsonResp.inputs; var i; for( i = 0; i < inputs.length; i += 1) { inputParameters[i] = { name: inputs[i].name, type: inputs[i].type, description: inputs[i].description, defaultValue: inputs[i].defaultValue, required: inputs[i].required, id: 'parameter_' + i, value: inputs[i].defaultValue }; } }, error : function(xhr, ajaxOptions, thrownError) { alert("Error on page : " + xhr.responseText); } }); return { name: currentServiceTemplate, parameters: inputParameters }; } function transfromToComponents(parameters) { var components = ''; var i; for( i = 0; i < parameters.length; i += 1) { var component = '