2 * Copyright 2016-2017 ZTE, Inc. and others.
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
20 $id : "serviceController",
\r
21 $apiGatewayServiceName:"apigateway",
\r
22 ifshowApiGatewayService:false,
\r
23 tcp_udp_port_range:["40001","40100"],
\r
24 apiGatewayService:[],
\r
25 apiGatewayService_all:[],
\r
27 routeService_all:[],
\r
30 warning_block:false,
\r
35 warning_block:false,
\r
39 if_http_publish_port:[],
\r
40 $msbProtocol :["REST","HTTP","UI","MQ","FTP","SNMP","TCP","UDP"],
\r
41 $healthCheckType:["","TTL","HTTP","TCP"],
\r
42 $ha_role_Type:["","active","standby"],
\r
45 name:$.i18n.prop("org_onap_msb_discover_lbpolicy_round"),
\r
53 name:$.i18n.prop("org_onap_msb_discover_lbpolicy_leastconn"),
\r
57 name:$.i18n.prop("org_onap_msb_discover_lbpolicy_clientcustom"),
\r
58 value:"client_custom"
\r
62 $msbRouteUrl:apiBasePath+'/services?is_manual=true',
\r
63 $msbRouteInstanceUrl :apiBasePath+'/services/{serviceName}/version/{version}',
\r
64 $msbRouteNodesUrl :apiBasePath+'/services/{serviceName}/version/{version}/nodes',
\r
65 $apiGatewayInfoUrl :apiBasePath+'/services/apigatewayserviceinfo',
\r
66 $tcpudpportrangeUrl:apiBasePath+'/services/tcpudpportrange',
\r
68 publishUrl4SysOut:"",
\r
69 publishUrl4SysIn:"",
\r
70 ifShowPublishUrl4SysOut:false,
\r
71 ifShowPublishUrl4SysIn:false
\r
75 targetServiceHost:"",
\r
76 msbRouteArray : [],
\r
88 visualRangeArray:[],
\r
92 network_plane_type:"",
\r
109 updateServiceInfo:{
\r
129 initMSBRoute:function(){
\r
130 vm.initIUIfori18n();
\r
132 var url= window.location.search.substr(1);
\r
133 vm.pageInfo.pageType=routeUtil.getQueryString(url,"type");
\r
137 if(vm.pageInfo.pageType=="add"){
\r
139 vm.getApigatewayInfo("all");
\r
140 vm.getApigatewayInfo("");
\r
141 vm.pageInfo.pageTitle=$.i18n.prop("org_onap_msb_discover_form_title_add");
\r
145 vm.updateServiceInfo.serviceName=routeUtil.getQueryString(url,"serviceName");
\r
146 vm.updateServiceInfo.version=routeUtil.getQueryString(url,"version");
\r
147 vm.updateServiceInfo.authtype=routeUtil.getQueryString(url,"authtype");
\r
148 vm.updateServiceInfo.namespace=routeUtil.getQueryString(url,"namespace");
\r
150 vm.initUpdateRoute(vm.updateServiceInfo.serviceName,vm.updateServiceInfo.version,vm.updateServiceInfo.namespace);
\r
151 vm.getApigatewayInfo("all");
\r
152 vm.getApigatewayInfo(vm.updateServiceInfo.namespace);
\r
156 if(vm.pageInfo.pageType=="update"){
\r
157 vm.pageInfo.pageTitle=$.i18n.prop("org_onap_msb_discover_form_title_update");
\r
160 else if(vm.pageInfo.pageType=="view"){
\r
161 vm.pageInfo.pageTitle=$.i18n.prop("org_onap_msb_discover_form_title_view");
\r
166 vm.getTcpUdpPortRangeUrl();
\r
171 returnList:function(){
\r
173 window.history.back(-1);
\r
175 closePage:function(){
\r
180 addMsbRoute:function(){
\r
182 vm.msbRouteInfo.serviceName="";
\r
183 vm.msbRouteInfo.version="";
\r
184 vm.msbRouteInfo.url="";
\r
185 vm.msbRouteInfo.protocol="";
\r
186 vm.msbRouteInfo.publish_port="";
\r
187 vm.msbRouteInfo.lb_policy="";
\r
188 vm.msbRouteInfo.visualRange="";
\r
189 vm.msbRouteInfo.visualRangeArray=[],
\r
190 vm.msbRouteInfo.nodes=[];
\r
191 vm.msbRouteInfo.status="1";
\r
192 vm.msbRouteInfo.namespace="";
\r
193 vm.msbRouteInfo.network_plane_type="";
\r
194 vm.msbRouteInfo.host="";
\r
195 vm.msbRouteInfo.path="";
\r
198 vm.server_rtn.warning_block=false;
\r
199 vm.server_rtn.info_block=false;
\r
201 $('#labels').val("");
\r
202 $('#labels').on('tokenfield:createdtoken', function (e) {
\r
204 var valid = re.test(e.attrs.value)
\r
206 $(e.relatedTarget).addClass('invalid')
\r
209 $('#metadata').val("");
\r
210 $('#metadata').on('tokenfield:createdtoken', function (e) {
\r
212 var valid = re.test(e.attrs.value)
\r
214 $(e.relatedTarget).addClass('invalid')
\r
219 $(".form-group").each(function () {
\r
220 $(this).removeClass('has-success');
\r
221 $(this).removeClass('has-error');
\r
222 $(this).find(".help-block[id]").remove();
\r
223 $(this).find(".form-tip").removeClass('form-input-focus');
\r
224 //$(this).find(".item-tip").removeClass('item-tip-focus');
\r
228 initUpdateRoute:function(serviceName,version,namespace){
\r
229 var url= vm.$msbRouteInstanceUrl;
\r
230 var version2=version==""?"null":version;
\r
231 var serviceName2= serviceName.replace(/\//g,"*");
\r
232 url=url.replace("{serviceName}",serviceName2).replace("{version}",version2)+"?ifPassStatus=false&namespace="+namespace;
\r
237 "dataType": "json",
\r
238 success: function (msbRouteInfo) {
\r
239 //vm.msbRouteInfo.serviceName=(msbRouteInfo.protocol=="UI"?msbRouteInfo.serviceName.replace("IUI_",""):msbRouteInfo.serviceName);
\r
240 vm.msbRouteInfo.serviceName=msbRouteInfo.serviceName;
\r
241 vm.msbRouteInfo.oldServiceName=msbRouteInfo.serviceName;
\r
242 vm.msbRouteInfo.version= msbRouteInfo.version;
\r
243 vm.msbRouteInfo.oldVersion= msbRouteInfo.version
\r
244 vm.msbRouteInfo.url=msbRouteInfo.url;
\r
245 vm.msbRouteInfo.protocol=msbRouteInfo.protocol;
\r
246 vm.msbRouteInfo.visualRange=msbRouteInfo.visualRange;
\r
247 vm.msbRouteInfo.visualRangeArray=msbRouteInfo.visualRange.split("|");
\r
248 vm.msbRouteInfo.lb_policy=msbRouteInfo.lb_policy==""?"round-robin":msbRouteInfo.lb_policy;
\r
249 vm.msbRouteInfo.namespace=msbRouteInfo.namespace;
\r
250 vm.msbRouteInfo.network_plane_type=msbRouteInfo.network_plane_type;
\r
251 vm.msbRouteInfo.host=msbRouteInfo.host;
\r
252 vm.msbRouteInfo.path=msbRouteInfo.path;
\r
254 $("#labels").val(msbRouteInfo.labels);
\r
255 $('#labels').on('tokenfield:createdtoken', function (e) {
\r
257 var valid = re.test(e.attrs.value)
\r
259 $(e.relatedTarget).addClass('invalid')
\r
264 var metadataArray=msbRouteInfo.metadata;
\r
266 for(var i=0;i<metadataArray.length;i++){
\r
267 metadatas.push(metadataArray[i].key+":"+metadataArray[i].value);
\r
271 $("#metadata").val(metadatas);
\r
272 $('#metadata').on('tokenfield:createdtoken', function (e) {
\r
274 var valid = re.test(e.attrs.value)
\r
276 $(e.relatedTarget).addClass('invalid')
\r
281 if(msbRouteInfo.publish_port!=undefined && msbRouteInfo.publish_port.trim()!=""){
\r
282 if(vm.msbRouteInfo.protocol=="TCP" || vm.msbRouteInfo.protocol=="UDP"){
\r
283 vm.if_publish_port=["1"];
\r
284 vm.msbRouteInfo.publish_port=msbRouteInfo.publish_port;
\r
285 vm.msbRouteInfo.oldPublish_port=msbRouteInfo.publish_port;
\r
287 else if(vm.msbRouteInfo.protocol=="HTTP" || vm.msbRouteInfo.protocol=="REST"|| vm.msbRouteInfo.protocol=="UI" || vm.msbRouteInfo.protocol=="PORTAL"){
\r
288 vm.if_http_publish_port=["1"];
\r
289 vm.msbRouteInfo.publish_port=msbRouteInfo.publish_port;
\r
290 vm.msbRouteInfo.oldPublish_port=msbRouteInfo.publish_port;
\r
293 vm.msbRouteInfo.publish_port="";
\r
294 vm.msbRouteInfo.oldPublish_port="";
\r
301 for(var i=0;i<msbRouteInfo.nodes.length;i++){
\r
303 msbRouteInfo.nodes[i].weight="";
\r
304 msbRouteInfo.nodes[i].max_fails="";
\r
305 msbRouteInfo.nodes[i].fail_timeout="";
\r
307 var lb_server_params=msbRouteInfo.nodes[i].lb_server_params;
\r
308 if(lb_server_params!=null){
\r
310 var paramsArray=lb_server_params.split(",");
\r
311 for(var n=0;n<paramsArray.length;n++){
\r
312 var param=paramsArray[n].split("=");
\r
314 case "weight": msbRouteInfo.nodes[i].weight=param[1]; break;
\r
315 case "max_fails": msbRouteInfo.nodes[i].max_fails=param[1]; break;
\r
316 case "fail_timeout": msbRouteInfo.nodes[i].fail_timeout=param[1].replace("s",""); break;
\r
326 vm.msbRouteInfo.nodes=msbRouteInfo.nodes;
\r
327 routeUtil.changeTargetServiceUrl();
\r
330 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
331 bootbox.alert("get discoverInfo fails:"+XMLHttpRequest.responseText);
\r
338 $(".form-group").each(function () {
\r
340 $(this).find(".item-tip").addClass("item-tip-focus");
\r
346 $showNodeDlg:function() {
\r
349 vm.nodeInfo.port="";
\r
350 vm.nodeInfo.weight="";
\r
351 vm.nodeInfo.max_fails="";
\r
352 vm.nodeInfo.fail_timeout="";
\r
353 vm.nodeInfo.checkType="";
\r
354 vm.nodeInfo.checkUrl="";
\r
355 vm.nodeInfo.checkInterval="10";
\r
356 vm.nodeInfo.checkTimeOut="10";
\r
357 vm.nodeInfo.ttl="10";
\r
358 vm.nodeInfo.ha_role="";
\r
362 vm.nodeDlgInfo.saveType = "add";
\r
363 vm.nodeDlgInfo.titleName=$.i18n.prop("org_onap_msb_discover_node_title");
\r
364 vm.node_rtn.warning_block=false;
\r
365 vm.node_rtn.info_block=false;
\r
367 $('#advanceDiv').collapse('hide');
\r
369 $(".form-group").each(function () {
\r
370 $(this).removeClass('has-success');
\r
371 $(this).removeClass('has-error');
\r
372 $(this).find(".help-block[id]").remove();
\r
373 $(this).find(".form-tip").removeClass('form-input-focus');
\r
374 //$(this).find(".item-tip").removeClass('item-tip-focus');
\r
377 $("#noderouteDlg").modal("show");
\r
380 savenodeInfo:function(){
\r
381 nodesuccess.hide();
\r
383 if (nodeform.valid() == false) {
\r
388 if(vm.nodeInfo.checkType=="TTL"){
\r
389 if(vm.nodeInfo.ttl==""){
\r
390 vm.node_rtn.warning_block=true;
\r
391 vm.node_rtn.info_block=false;
\r
392 vm.node_rtn.rtn_info=$.i18n.prop("org_onap_msb_discover_validator_ttl_empty");
\r
397 vm.nodeInfo.checkTimeOut="";
\r
398 vm.nodeInfo.checkInterval="";
\r
399 vm.nodeInfo.checkUrl="";
\r
403 else if(vm.nodeInfo.checkType=="TCP" || vm.nodeInfo.checkType=="HTTP"){
\r
404 if(vm.nodeInfo.checkInterval==""){
\r
405 vm.node_rtn.warning_block=true;
\r
406 vm.node_rtn.info_block=false;
\r
407 vm.node_rtn.rtn_info= $.i18n.prop("org_onap_msb_discover_validator_interval_empty");
\r
412 if(vm.nodeInfo.checkTimeOut==""){
\r
413 vm.node_rtn.warning_block=true;
\r
414 vm.node_rtn.info_block=false;
\r
415 vm.node_rtn.rtn_info= $.i18n.prop("org_onap_msb_discover_validator_timeOut_empty");
\r
420 if(vm.nodeInfo.checkUrl==""){
\r
421 vm.node_rtn.warning_block=true;
\r
422 vm.node_rtn.info_block=false;
\r
423 vm.node_rtn.rtn_info= $.i18n.prop("org_onap_msb_discover_validator_healthurl_empty");
\r
427 vm.nodeInfo.ttl="";
\r
432 vm.nodeInfo.checkUrl="";
\r
433 vm.nodeInfo.checkInterval="";
\r
434 vm.nodeInfo.checkTimeOut="";
\r
435 vm.nodeInfo.ttl="";
\r
440 if(vm.nodeInfo.checkType=="HTTP"){
\r
442 var reg_http_url_match=/^(|http:\/\/)(([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}).*$/;
\r
443 if(reg_http_url_match.test(vm.nodeInfo.checkUrl)){
\r
444 /*vm.node_rtn.warning_block=true;
\r
445 vm.node_rtn.info_block=false;
\r
446 vm.node_rtn.rtn_info= $.i18n.prop("org_onap_msb_discover_validator_healthurl_http");
\r
448 if(vm.nodeInfo.checkUrl.indexOf("http://")!=0){
\r
449 vm.nodeInfo.checkUrl="http://"+vm.nodeInfo.checkUrl;
\r
453 if(vm.nodeInfo.checkUrl.indexOf("/")!=0){
\r
454 vm.nodeInfo.checkUrl="/"+vm.nodeInfo.checkUrl;
\r
456 vm.nodeInfo.checkUrl="http://"+vm.nodeInfo.ip+":"+vm.nodeInfo.port+vm.nodeInfo.checkUrl
\r
460 else if(vm.nodeInfo.checkType=="TCP"){
\r
461 var reg_tcp_url_match=/^.*:\d{1,5}$/;
\r
462 if(!reg_tcp_url_match.test(vm.nodeInfo.checkUrl)){
\r
463 vm.node_rtn.warning_block=true;
\r
464 vm.node_rtn.info_block=false;
\r
465 vm.node_rtn.rtn_info= $.i18n.prop("org_onap_msb_discover_validator_healthurl_tcp");
\r
475 if(vm.nodeDlgInfo.saveType=="add")
\r
479 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
\r
481 if(vm.msbRouteInfo.nodes[i].ip==vm.nodeInfo.ip && vm.msbRouteInfo.nodes[i].port==vm.nodeInfo.port )
\r
483 vm.node_rtn.warning_block=true;
\r
484 vm.node_rtn.info_block=false;
\r
485 vm.node_rtn.rtn_info=$.i18n.prop('org_onap_msb_discover_err_host_repeat',[vm.nodeInfo.ip],[vm.nodeInfo.port]);
\r
495 port:vm.nodeInfo.port,
\r
496 weight:vm.nodeInfo.weight,
\r
497 max_fails:vm.nodeInfo.max_fails,
\r
498 fail_timeout:vm.nodeInfo.fail_timeout,
\r
499 checkType:vm.nodeInfo.checkType,
\r
500 checkUrl:vm.nodeInfo.checkUrl,
\r
501 checkInterval:vm.nodeInfo.checkInterval==""?"":vm.nodeInfo.checkInterval+"s",
\r
502 checkTimeOut:vm.nodeInfo.checkTimeOut==""?"":vm.nodeInfo.checkTimeOut+"s",
\r
503 ttl:vm.nodeInfo.ttl==""?"":vm.nodeInfo.ttl+"s",
\r
504 ha_role:vm.nodeInfo.ha_role
\r
507 vm.msbRouteInfo.nodes.push(node);
\r
509 else if(vm.nodeDlgInfo.saveType=="update")
\r
511 if(vm.nodeInfo.ip!=vm.oldNodeInfo.ip ||
\r
512 vm.nodeInfo.port!=vm.oldNodeInfo.port) //已修改IP或者port
\r
516 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
\r
518 if(vm.msbRouteInfo.nodes[i].ip==vm.nodeInfo.ip && vm.msbRouteInfo.nodes[i].port==vm.nodeInfo.port )
\r
520 vm.node_rtn.warning_block=true;
\r
521 vm.node_rtn.info_block=false;
\r
522 vm.node_rtn.rtn_info= $.i18n.prop('org_onap_msb_discover_err_host_repeat',[vm.nodeInfo.ip],[vm.nodeInfo.port]);
\r
529 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
\r
530 if(vm.msbRouteInfo.nodes[i].ip == vm.oldNodeInfo.ip && vm.msbRouteInfo.nodes[i].port == vm.oldNodeInfo.port){
\r
532 vm.msbRouteInfo.nodes[i].ip=vm.nodeInfo.ip;
\r
533 vm.msbRouteInfo.nodes[i].port=vm.nodeInfo.port;
\r
534 vm.msbRouteInfo.nodes[i].weight=vm.nodeInfo.weight;
\r
535 vm.msbRouteInfo.nodes[i].max_fails=vm.nodeInfo.max_fails;
\r
536 vm.msbRouteInfo.nodes[i].fail_timeout=vm.nodeInfo.fail_timeout;
\r
537 vm.msbRouteInfo.nodes[i].checkType=vm.nodeInfo.checkType;
\r
538 vm.msbRouteInfo.nodes[i].checkUrl=vm.nodeInfo.checkUrl;
\r
539 vm.msbRouteInfo.nodes[i].checkInterval=vm.nodeInfo.checkInterval==""?"":vm.nodeInfo.checkInterval+"s";
\r
540 vm.msbRouteInfo.nodes[i].checkTimeOut=vm.nodeInfo.checkTimeOut==""?"":vm.nodeInfo.checkTimeOut+"s";
\r
541 vm.msbRouteInfo.nodes[i].ttl=vm.nodeInfo.ttl==""?"":vm.nodeInfo.ttl+"s";
\r
542 vm.msbRouteInfo.nodes[i].ha_role=vm.nodeInfo.ha_role;
\r
555 $('#noderouteDlg').modal('hide');
\r
558 delnodeInfo:function(ip,port){
\r
559 bootbox.confirm($.i18n.prop('org_onap_msb_discover_err_host_del_ask',[ip],[port]),function(result){
\r
562 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
\r
563 if(vm.msbRouteInfo.nodes[i].ip == ip && vm.msbRouteInfo.nodes[i].port == port){
\r
564 vm.msbRouteInfo.nodes.splice(i, 1);
\r
577 updatenodeInfo:function(node){
\r
578 vm.nodeInfo.ip=node.ip;
\r
579 vm.oldNodeInfo.ip=node.ip;
\r
581 vm.nodeInfo.port=node.port;
\r
582 vm.oldNodeInfo.port=node.port;
\r
584 vm.nodeInfo.weight=node.weight;
\r
585 vm.nodeInfo.max_fails=node.max_fails;
\r
586 vm.nodeInfo.fail_timeout=node.fail_timeout;
\r
588 vm.nodeInfo.checkType=node.checkType;
\r
589 vm.nodeInfo.checkUrl=node.checkUrl;
\r
590 if(node.checkInterval!=undefined) vm.nodeInfo.checkInterval=node.checkInterval.replace("s","");
\r
591 if(node.checkTimeOut!=undefined) vm.nodeInfo.checkTimeOut=node.checkTimeOut.replace("s","");
\r
592 if(node.ttl!=undefined) vm.nodeInfo.ttl=node.ttl.replace("s","");
\r
593 vm.nodeInfo.ha_role=node.ha_role;
\r
598 vm.nodeDlgInfo.saveType = "update";
\r
599 vm.nodeDlgInfo.titleName=$.i18n.prop('org_onap_msb_discover_node_title_update');
\r
600 vm.node_rtn.warning_block=false;
\r
601 vm.node_rtn.info_block=false;
\r
603 $('#advanceDiv').collapse('hide');
\r
605 $(".form-group").each(function () {
\r
606 $(this).removeClass('has-success');
\r
607 $(this).removeClass('has-error');
\r
608 $(this).find(".help-block[id]").remove();
\r
609 $(this).find(".form-tip").removeClass('form-input-focus');
\r
612 $("#noderouteDlg").modal("show");
\r
615 resetRoute:function(){
\r
616 if(vm.pageInfo.pageType=="add"){
\r
619 else if(vm.pageInfo.pageType=="update"){
\r
620 vm.initUpdateRoute(vm.updateServiceInfo.serviceName,vm.updateServiceInfo.version,vm.updateServiceInfo.namespace);
\r
624 getTcpUdpPortRangeUrl:function(){
\r
627 "url": vm.$tcpudpportrangeUrl,
\r
628 "dataType": "json",
\r
629 success: function (tcp_udp_port_range) {
\r
630 vm.tcp_udp_port_range=tcp_udp_port_range;
\r
631 $("input[name='publish_port']").attr("placeholder","Range:"+tcp_udp_port_range[0]+"-"+tcp_udp_port_range[1]);
\r
635 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
636 console.log("get TcpUdpPortRangeUrl fails:"+XMLHttpRequest.responseText);
\r
644 getApigatewayInfo : function(namespace) {
\r
646 // if(namespace=="") namespace="default";
\r
647 if(namespace!="all"){
\r
648 vm.apiGatewayService=[];
\r
649 vm.routeService=[];
\r
653 var url=vm.$apiGatewayInfoUrl+"?namespace="+namespace;
\r
659 "dataType": "json",
\r
660 success: function (resp) {
\r
661 var apiGatewayService=[],routeService=[];
\r
662 var apiGatewayInfoList=resp==null?[]:resp;
\r
664 for(var i=0;i<apiGatewayInfoList.length;i++){
\r
665 if(apiGatewayInfoList[i].visualRange=="0"){
\r
666 routeService.push(apiGatewayInfoList[i]);
\r
668 else if(apiGatewayInfoList[i].visualRange=="1"){
\r
669 apiGatewayService.push(apiGatewayInfoList[i])
\r
673 if(namespace=="all"){
\r
674 vm.apiGatewayService_all=apiGatewayService;
\r
675 vm.routeService_all=routeService;
\r
678 vm.apiGatewayService=apiGatewayService;
\r
679 vm.routeService=routeService;
\r
685 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
686 console.log("get apigatewayInfo for "+namespace+" fails:"+XMLHttpRequest.responseText);
\r
696 routeUtil.changeTargetServiceUrl();
\r
701 initIUIfori18n:function(){
\r
702 vm.msbLbPolicyRange=[
\r
704 name:$.i18n.prop("org_onap_msb_discover_lbpolicy_round"),
\r
705 value:"round-robin"
\r
712 name:$.i18n.prop("org_onap_msb_discover_lbpolicy_leastconn"),
\r
716 name:$.i18n.prop("org_onap_msb_discover_lbpolicy_clientcustom"),
\r
717 value:"client_custom"
\r
722 savemsbRoute : function() {
\r
726 if (msbform.valid() == false) {
\r
730 if(vm.msbRouteInfo.nodes.length==0){
\r
731 vm.server_rtn.warning_block=true;
\r
732 vm.server_rtn.info_block=false;
\r
733 vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_discover_err_host_leastone');
\r
737 if(vm.msbRouteInfo.visualRangeArray.length==0){
\r
738 vm.server_rtn.warning_block=true;
\r
739 vm.server_rtn.info_block=false;
\r
740 vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_discover_err_visualrange_empty');
\r
745 /*if(vm.msbRouteInfo.namespace=="default" || vm.msbRouteInfo.namespace=="all" ){
\r
746 vm.server_rtn.warning_block=true;
\r
747 vm.server_rtn.info_block=false;
\r
748 vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_discover_err_namespace_err',[vm.msbRouteInfo.namespace]);
\r
753 if(vm.msbRouteInfo.protocol=="REST" || vm.msbRouteInfo.protocol=="HTTP"||vm.msbRouteInfo.protocol=="UI"||vm.msbRouteInfo.protocol=="PORTAL"){
\r
754 if(vm.msbRouteInfo.url==""){
\r
755 vm.server_rtn.warning_block=true;
\r
756 vm.server_rtn.info_block=false;
\r
757 vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_discover_err_url_empty',[vm.msbRouteInfo.protocol]);
\r
765 if($('#labels').val().trim()!=""){
\r
766 labelArray=$('#labels').val().split(",");
\r
767 for(var i=0;i<labelArray.length;i++){
\r
768 labelArray[i]=labelArray[i].trim();
\r
769 if(/\S+:\S+/.test(labelArray[i])==false){
\r
770 vm.server_rtn.warning_block=true;
\r
771 vm.server_rtn.info_block=false;
\r
772 vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_discover_err_label_format');
\r
781 var metadataArray=[],metadata=[];
\r
782 if($('#metadata').val().trim()!=""){
\r
783 metadataArray=$('#metadata').val().split(",");
\r
784 for(var i=0;i<metadataArray.length;i++){
\r
785 metadataArray[i]=metadataArray[i].trim();
\r
787 if(/\S+:\S+/.test(metadataArray[i])==false){
\r
788 vm.server_rtn.warning_block=true;
\r
789 vm.server_rtn.info_block=false;
\r
790 vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_discover_err_metadata_format');
\r
793 var metadata_key_value=metadataArray[i].split(":");
\r
794 var metadata_obj=new Object();
\r
795 metadata_obj.key=metadata_key_value[0];
\r
796 metadata_obj.value=metadata_key_value[1];
\r
797 metadata.push(metadata_obj);
\r
809 vm.server_rtn.warning_block=false;
\r
810 vm.server_rtn.info_block=true;
\r
812 //var msbUrl=vm.msbRouteInfo.url=="/"?"":vm.msbRouteInfo.url;
\r
815 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
\r
818 var lb_server_params="";
\r
819 if(vm.msbRouteInfo.nodes[i].weight!=""){
\r
820 lb_server_params+="weight="+vm.msbRouteInfo.nodes[i].weight+","
\r
823 if(vm.msbRouteInfo.nodes[i].max_fails!=""){
\r
824 lb_server_params+="max_fails="+vm.msbRouteInfo.nodes[i].max_fails+","
\r
827 if(vm.msbRouteInfo.nodes[i].fail_timeout!=""){
\r
828 lb_server_params+="fail_timeout="+vm.msbRouteInfo.nodes[i].fail_timeout+"s";
\r
836 ip:vm.msbRouteInfo.nodes[i].ip,
\r
837 port:vm.msbRouteInfo.nodes[i].port,
\r
838 lb_server_params: lb_server_params,
\r
839 checkType:vm.msbRouteInfo.nodes[i].checkType,
\r
840 checkUrl:vm.msbRouteInfo.nodes[i].checkUrl,
\r
841 checkInterval:vm.msbRouteInfo.nodes[i].checkInterval,
\r
842 checkTimeOut:vm.msbRouteInfo.nodes[i].checkTimeOut,
\r
843 ttl:vm.msbRouteInfo.nodes[i].ttl,
\r
844 ha_role:vm.msbRouteInfo.nodes[i].ha_role
\r
851 /*if((vm.msbRouteInfo.protocol=="TCP" || vm.msbRouteInfo.protocol=="UDP") && vm.if_publish_port.length==1){
\r
856 if(vm.pageInfo.pageType=="add" || (vm.pageInfo.pageType=="update" && vm.msbRouteInfo.oldPublic_port!=vm.msbRouteInfo.publish_port)){
\r
859 for(var i=0;i<vm.msbRouteArray.length;i++){
\r
861 if(vm.msbRouteArray[i].publish_port==vm.msbRouteInfo.publish_port)
\r
863 vm.server_rtn.warning_block=true;
\r
864 vm.server_rtn.info_block=false;
\r
865 vm.server_rtn.rtn_info= "发布端口("+vm.msbRouteInfo.publish_port+")已使用";
\r
875 vm.msbRouteInfo.publish_port="";
\r
879 //var newServiceName=(vm.msbRouteInfo.protocol=="UI"?("IUI_"+vm.msbRouteInfo.serviceName):vm.msbRouteInfo.serviceName);
\r
880 var newServiceName=vm.msbRouteInfo.serviceName;
\r
884 var data= JSON.stringify({
\r
885 "serviceName": newServiceName,
\r
886 "version": vm.msbRouteInfo.version,
\r
887 "url": vm.msbRouteInfo.url,
\r
889 "protocol":vm.msbRouteInfo.protocol,
\r
890 "visualRange":vm.msbRouteInfo.visualRangeArray.join("|"),
\r
891 "lb_policy":vm.msbRouteInfo.lb_policy,
\r
892 "publish_port":vm.msbRouteInfo.publish_port,
\r
893 "namespace":vm.msbRouteInfo.namespace,
\r
894 "network_plane_type":vm.msbRouteInfo.network_plane_type,
\r
895 "host":vm.msbRouteInfo.host,
\r
896 "path":vm.msbRouteInfo.path,
\r
897 "labels": labelArray,
\r
898 "metadata":metadata
\r
904 if(vm.pageInfo.pageType=="add"){
\r
906 var url= vm.$msbRouteInstanceUrl;
\r
908 var version2=vm.msbRouteInfo.version==""?"null":vm.msbRouteInfo.version;
\r
909 url=url.replace("{serviceName}",newServiceName).replace("{version}",version2)+"?ifPassStatus=false&namespace="+vm.msbRouteInfo.namespace;
\r
914 "dataType": "json",
\r
916 success: function (serviceInfo) {
\r
918 vm.server_rtn.warning_block=true;
\r
919 vm.server_rtn.info_block=false;
\r
920 vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_discover_err_service_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.protocol],[vm.msbRouteInfo.namespace]);
\r
924 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
925 if(XMLHttpRequest.status==404){
\r
928 "url": vm.$msbRouteUrl,
\r
930 "dataType": "json",
\r
931 "contentType":"application/json",
\r
932 success: function (resp) {
\r
935 window.location.href="index.html"
\r
938 //vm.initMSBRoute();
\r
941 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
943 vm.server_rtn.warning_block=true;
\r
944 vm.server_rtn.info_block=false;
\r
945 vm.server_rtn.rtn_info= "msb save fails:"+XMLHttpRequest.responseText;
\r
952 bootbox.alert("get service["+vm.msbRouteInfo.serviceName+"]fails:"+XMLHttpRequest.responseText);
\r
963 else if(vm.pageInfo.pageType=="update")
\r
966 var url= vm.$msbRouteInstanceUrl+"?is_manual=true&namespace="+vm.msbRouteInfo.namespace;
\r
967 var version2=vm.msbRouteInfo.oldVersion==""?"null":vm.msbRouteInfo.oldVersion;
\r
968 url=url.replace("{serviceName}",vm.msbRouteInfo.oldServiceName).replace("{version}",version2);
\r
974 "dataType": "json",
\r
975 "contentType":"application/json",
\r
976 success: function (resp) {
\r
978 window.location.href="index.html?namespace="+vm.updateServiceInfo.namespace;
\r
981 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
983 vm.server_rtn.warning_block=true;
\r
984 vm.server_rtn.info_block=false;
\r
985 vm.server_rtn.rtn_info= "msb save fails:"+XMLHttpRequest.responseText;
\r