/* * Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. * * 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. * * Author: Zhaoxing Meng * email: meng.zhaoxing1@zte.com.cn */ var table; var vm = avalon .define({ $id : "routeController", targetServiceUrl:"", targetFullServiceUrl:"", iuiRootPath:iuiRootPath, apiRootPath:apiRootPath, apiIframeUrl:"", iuiIframeUrl:"", boxVisible:true, routeTargetTitle:$.i18n.prop("org_openo_msb_route_content_title"), server_rtn:{ info_block:false, warning_block:false, rtn_info:"" }, showAPIType:"0", showAPITypeName:[$.i18n.prop("org_openo_msb_route_swagger_type_predefined"),$.i18n.prop("org_openo_msb_route_swagger_type_custominput")], $msbProtocol :["REST","UI","MQ","FTP","SNMP","TCP","UDP"], $msbType:["UI","NAF","SAF"], apiJson:{ local:"", custom:"" }, setAPIType:function(type){ vm.apiRouteInfo.apiJsonType=type; if(type==0){ vm.apiJson.local=vm.jsonApiSelectList.selectItems[0]; } }, jsonApiSelectList: { condName : "type", component_type : 'select', selectItems : [] }, dataTableLanguage: { "sProcessing": "  Loadding...", "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"), "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"), "sInfo": " " + $.i18n.prop("org_openo_msb_route-table-sInfo"), "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"), "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"), "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"), "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"), "oPaginate": { "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"), "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"), "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"), "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf") }, "sSearch": $.i18n.prop("org_openo_msb_route-table-search"), "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter") }, $apiRouteUrl :apiBasePath+'/apiRoute', $apiRouteInstanceUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}', $apiRouteStatusUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}/status/{status}', $apiDocsUrl :apiBasePath+'/apiRoute/apiDocs', $apiGatewayPortUrl :apiBasePath+'/apiRoute/apiGatewayPort', $discoverInfoUrl :apiBasePath+'/apiRoute/discoverInfo', $iuiRouteUrl :apiBasePath+'/iuiRoute', $iuiRouteInstanceUrl :apiBasePath+'/iuiRoute/{serviceName}', $iuiRouteStatusUrl :apiBasePath+'/iuiRoute/{serviceName}/status/{status}', $customRouteUrl :apiBasePath+'/customRoute/all', $customRouteInstanceUrl :apiBasePath+'/customRoute/instance', $customRouteStatusUrl :apiBasePath+'/customRoute/status', $msbRouteUrl:apiBasePath+'/services', $msbRouteInstanceUrl :apiBasePath+'/services/{serviceName}/version/{version}', routeLoading:false, apiRouteArray : [], apiRouteInfo : { oldServiceName:"", serviceName : "", oldVersion:"", version : "", status:"", url:"", metricsUrl:"/admin/metrics", apiJson:"/swagger.json", apiJsonType:"1", control:"", server:"", servers: [] }, iuiRouteArray : [], iuiRouteInfo : { oldServiceName:"", serviceName : "", status:"", url:"", server:"", control:"", servers: [] }, customRouteArray : [], customGroupRouteArray : [], customRouteInfo : { oldServiceName:"", serviceName : "", status:"", url:"", server:"", control:"", servers: [] }, msbRouteArray : [], msbRouteInfo : { oldServiceName:"", oldVersion:"", serviceName : "", version:"", status:"0", nodes:[], newHost:"", newttl:0, url:"", protocol:"", visualRange:"", visualRangeArray:[] }, discoverInfo:{ ip:"", port:"", enabled:false, deployMode:"" }, selectedRoute:"", selectedRouteType:"", routeDlgInfo:{ titleName:"", saveType:"" }, $initRoute : function() { vm.routeLoading=true; $.ajax({ "type": 'get', async: false, "url": vm.$discoverInfoUrl, "dataType": "json", success: function (resp) { vm.discoverInfo = (resp==null)?"":resp; }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get discoverInfo fails:"+textStatus+":"+errorThrown); } }); $.ajax({ "type": 'get', "url": vm.$apiRouteUrl, "dataType": "json", success: function (resp) { vm.apiRouteArray = (resp==null)?[]:resp; vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get api services fails:"+textStatus+":"+errorThrown); return; }, complete:function(){ vm.routeLoading=false; routeUtil.refreshRoute(); $.ajax({ "type": 'get', "url": vm.$apiGatewayPortUrl, "dataType": "text", success: function (resp) { vm.targetServiceUrl=location.hostname+":"+resp; }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get apiGateway published port fails:"+textStatus+":"+errorThrown); } }); } }); $.ajax({ "type": 'get', "url": vm.$iuiRouteUrl, "dataType": "json", success: function (resp) { vm.iuiRouteArray = (resp==null)?[]:resp; vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get iui services fails:"+textStatus+":"+errorThrown); return; }, complete:function(){ routeUtil.refreshRoute(); } }); $.ajax({ "type": 'get', "url": vm.$customRouteUrl, "dataType": "json", success: function (resp) { vm.customRouteArray = (resp==null)?[]:resp; if(resp!=null && resp.length>0) { routeUtil.groupRoute(resp); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get custom services fails:"+textStatus+":"+errorThrown); return; }, complete:function(){ routeUtil.refreshRoute(); } }); $.ajax({ "type": 'get', "url": vm.$apiDocsUrl, "dataType": "json", success: function (resp) { vm.jsonApiSelectList.selectItems= (resp==null)?[]:resp; }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get local apiDocs fails:"+textStatus+":"+errorThrown); } }); vm.initMSBRoute(); }, initMSBRoute:function(){ vm.initIUIfori18n(); $.ajax({ "type": 'get', "url": vm.$msbRouteUrl, "dataType": "json", success: function (resp) { vm.msbRouteArray = (resp==null)?[]:resp; vm.msbRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); }, error: function(XMLHttpRequest, textStatus, errorThrown) { bootbox.alert("get msb services fails:"+XMLHttpRequest.responseText); return; }, complete:function(){ table=$('#msbTable').DataTable({ "oLanguage": vm.dataTableLanguage, columnDefs: [ { targets: [ 0,8 ], "searchable": false, "bSortable": false, }], "order": [[2, 'asc']] }); } }); }, clickDisplayGraphAlink: function () { vm.boxVisible = !vm.boxVisible; }, addmsbHost:function(){ if(vm.msbRouteInfo.newHost==""){ vm.server_rtn.warning_block=true; vm.server_rtn.info_block=false; vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty"); return; } if(vm.msbRouteInfo.newttl==""){ vm.server_rtn.warning_block=true; vm.server_rtn.info_block=false; vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_ttl_empty"); return; } var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/ var ip,port; if(!reg.test(vm.msbRouteInfo.newHost)){ vm.server_rtn.warning_block=true; vm.server_rtn.info_block=false; vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format"); return; } else{ var hosts=vm.msbRouteInfo.newHost.split(":"); ip=hosts[0]; port=hosts[1]; } var reg_ttl=/^\d+$/ if(!reg_ttl.test(vm.msbRouteInfo.newttl)){ vm.server_rtn.warning_block=true; vm.server_rtn.info_block=false; vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_ttl_format"); return; } // determine whether host repeated for(var i=0;ib.serviceName?1:-1}); routeUtil.refreshRoute(); $('#iuirouteDlg').modal('hide'); routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_save'),"success"); }, error: function(XMLHttpRequest, textStatus, errorThrown) { vm.server_rtn.warning_block=true; vm.server_rtn.info_block=false; vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown; } }); } else{ //update var url= vm.$iuiRouteInstanceUrl; url=url.replace("{serviceName}",vm.iuiRouteInfo.oldServiceName); //Determine whether to repeat if(vm.iuiRouteInfo.serviceName!=vm.iuiRouteInfo.oldServiceName) //Has been modified service name { for(var i=0;ib.serviceName?1:-1}); routeUtil.refreshRoute(); $('#routeDlg').modal('hide'); routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_save'),"success"); }, error: function(XMLHttpRequest, textStatus, errorThrown) { vm.server_rtn.warning_block=true; vm.server_rtn.info_block=false; vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown; } }); } else{ //update //Determine whether to repeat if(vm.apiRouteInfo.serviceName!=vm.apiRouteInfo.oldServiceName || vm.apiRouteInfo.version!=vm.apiRouteInfo.oldVersion) //Has been modified service name { for(var i=0;i  Loadding...", "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"), "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"), "sInfo": " " + $.i18n.prop("org_openo_msb_route-table-sInfo"), "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"), "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"), "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"), "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"), "oPaginate": { "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"), "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"), "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"), "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf") }, "sSearch": $.i18n.prop("org_openo_msb_route-table-search"), "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter") }; } });