From 349ac196874f897d22815d8c6da27945ade5705f Mon Sep 17 00:00:00 2001 From: Siva Kumar Bavanasi Date: Wed, 18 May 2016 14:06:49 +0530 Subject: [PATCH] Added new attributes to BGPAsAService page Below attributes are added 1)AS Override 2)Loop Count 3)Use IPV4-mapped IPv6 Nexthop 4)Supress Route Advertisement Change-Id: I38173a463a83edf57661cd11ff95518acc357bd0 Closes-bug: #1558168 --- webroot/common/api/jsonDiff.helper.js | 7 +- .../ui/js/bgpAsAServiceFormatter.js | 53 +++++++++++++- .../ui/js/models/bgpAsAServiceModel.js | 15 ++-- .../ui/js/views/bgpAsAServiceEditView.js | 72 +++++++++++-------- .../ui/js/views/bgpAsAServiceGridView.js | 63 ++++++++++++---- 5 files changed, 156 insertions(+), 54 deletions(-) diff --git a/webroot/common/api/jsonDiff.helper.js b/webroot/common/api/jsonDiff.helper.js index 62fea6ba5..22cce11ca 100644 --- a/webroot/common/api/jsonDiff.helper.js +++ b/webroot/common/api/jsonDiff.helper.js @@ -93,7 +93,12 @@ var configJsonModifyObj = { 'preProcessCB': { 'applyOnOldJSON': modifyConfigDataByAttrHref, }, - 'optFields': ['bgpaas_session_attributes', 'autonomous_system', 'bgpaas_ip_address', 'virtual_machine_interface_refs'], + 'optFields': ['bgpaas_session_attributes', + 'autonomous_system', + 'bgpaas_ip_address', + 'virtual_machine_interface_refs', + 'bgpaas_ipv4_mapped_ipv6_nexthop', + 'bgpaas_suppress_route_advertisement'], 'mandateFields': ['fq_name', 'uuid', 'display_name'] }, 'physical-interface': { diff --git a/webroot/config/services/bgpasaservice/ui/js/bgpAsAServiceFormatter.js b/webroot/config/services/bgpasaservice/ui/js/bgpAsAServiceFormatter.js index 656c311d5..39df4ea9f 100644 --- a/webroot/config/services/bgpasaservice/ui/js/bgpAsAServiceFormatter.js +++ b/webroot/config/services/bgpasaservice/ui/js/bgpAsAServiceFormatter.js @@ -100,7 +100,9 @@ var adminDown = getValueByJsonPath(dc, "bgpaas_session_attributes;admin_down", "-"); if(adminDown !== "-") { - adminState = adminDown ? "False" : "True"; + adminState = + adminDown.toString().toLowerCase() === "true" + ? "Down" : "Up"; } else { adminState = "-"; } @@ -139,6 +141,55 @@ "bgpaas_session_attributes;loop_count", "-"); }; + /* + * bgpaasASOverrideFormatter + */ + this.bgpaasASOverrideFormatter = function(r, c, v, cd, dc) { + var bgpaasASOverride = getValueByJsonPath(dc, + "bgpaas_session_attributes;as_override", "-"); + if(bgpaasASOverride !== "-") { + bgpaasASOverride = + bgpaasASOverride.toString().toLowerCase() === "true" ? + "Enabled" : "Disabled"; + } else { + bgpaasASOverride = "-"; + } + return bgpaasASOverride; + }; + + /* + * ipV4MappedIPv6NexthopFormatter + */ + this.ipV4MappedIPv6NexthopFormatter = function(r, c, v, cd, dc) { + var useIpv4MppedIPv6NextHop = getValueByJsonPath(dc, + "bgpaas_ipv4_mapped_ipv6_nexthop", "-"); + if(useIpv4MppedIPv6NextHop !== "-") { + useIpv4MppedIPv6NextHop = + useIpv4MppedIPv6NextHop.toString().toLowerCase() === + "true" ? "Enabled" : "Disabled"; + } else { + useIpv4MppedIPv6NextHop = "-"; + } + return useIpv4MppedIPv6NextHop; + }; + + /* + * suppressRouteAdvtFormatter + */ + this.suppressRouteAdvtFormatter = function(r, c, v, cd, dc) { + var supressRouteAdvt = getValueByJsonPath(dc, + "bgpaas_suppress_route_advertisement", "-"); + if(supressRouteAdvt !== "-") { + supressRouteAdvt = + supressRouteAdvt.toString().toLowerCase() === "true" ? + "Enabled" : "Disabled"; + } else { + supressRouteAdvt = "-"; + } + return supressRouteAdvt; + }; + + /* * addressFamiliesFormatter */ diff --git a/webroot/config/services/bgpasaservice/ui/js/models/bgpAsAServiceModel.js b/webroot/config/services/bgpasaservice/ui/js/models/bgpAsAServiceModel.js index 032b137c7..d471f7170 100644 --- a/webroot/config/services/bgpasaservice/ui/js/models/bgpAsAServiceModel.js +++ b/webroot/config/services/bgpasaservice/ui/js/models/bgpAsAServiceModel.js @@ -17,10 +17,9 @@ define([ "autonomous_system": null, "bgpaas_session_attributes": { "admin_down": false, - /*"passive": true, - "auth_data": null,*/ + "as_override": false, "hold_time": null, - /*"loop_count": null,*/ + "loop_count": null, "address_families": { "family": [] }/*, @@ -30,6 +29,8 @@ define([ "user_created_virtual_machine_interface": null, /*"user_created_auth_key_type": "none", "user_created_auth_key": null*/ + "bgpaas_ipv4_mapped_ipv6_nexthop": false, + "bgpaas_suppress_route_advertisement": false }, formatModelConfig : function(modelConfig) { @@ -213,11 +214,11 @@ define([ newBGPAsAServiceData["bgpaas_session_attributes"]["hold_time"] = sessionAttrs.hold_time ? Number(sessionAttrs.hold_time) : 0; - /* //loop count + //loop count newBGPAsAServiceData["bgpaas_session_attributes"]["loop_count"] = sessionAttrs.loop_count ? Number(sessionAttrs.loop_count) : 0; - //auth key + /*//auth key if(newBGPAsAServiceData.user_created_auth_key_type != 'none') { newBGPAsAServiceData["bgpaas_session_attributes"]["auth_data"] = { key_type : newBGPAsAServiceData.user_created_auth_key_type, @@ -328,13 +329,13 @@ define([ } } }, - /*"bgpaas_session_attributes.loop_count" : function(value, attr, finalObj) { + "bgpaas_session_attributes.loop_count" : function(value, attr, finalObj) { if(value) { if(isNaN(value) || Number(value) < 0 || Number(value) > 16) { return "Enter Loop count between 0-16" } } - }, + },/* 'user_created_auth_key' : function(value, attr, finalObj){ if (finalObj['user_created_auth_key_type'] != 'none' && (value == null || value.trim() == '')) { diff --git a/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceEditView.js b/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceEditView.js index 170aa9432..0c9f45def 100644 --- a/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceEditView.js +++ b/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceEditView.js @@ -201,38 +201,8 @@ define([ label : "IP Address", class: "span6" } - }, - { - elementId: "hold_time", - view: "FormInputView", - viewConfig: { - placeholder: "Enter Hold Time", - label: "Hold Time", - dataBindValue: "bgpaas_session_attributes().hold_time", - path: "bgpaas_session_attributes.hold_time", - class: "span6" - } } ]},{ - columns: [{ - elementId: "admin_down", - view: "FormCheckboxView", - viewConfig: { - label: "Admin State", - dataBindValue: "bgpaas_session_attributes().admin_down", - path: "bgpaas_session_attributes.admin_down", - class: "span6", - } - }/*,{ - elementId: "passive", - view: "FormCheckboxView", - viewConfig: { - label: "Passive", - dataBindValue: "bgpaas_session_attributes().passive", - path: "bgpaas_session_attributes.passive", - class: "span6", - } - }*/]}/*,{ columns: [{ elementId: "hold_time", view: "FormInputView", @@ -254,6 +224,48 @@ define([ class: "span6" } }]},{ + columns: [{ + elementId: "admin_down", + view: "FormCheckboxView", + viewConfig: { + label: "Admin State", + templateId: cowc.TMPL_CHECKBOX_LABEL_RIGHT_VIEW, + dataBindValue: "bgpaas_session_attributes().admin_down", + path: "bgpaas_session_attributes.admin_down", + class: "span6", + } + },{ + elementId: "as_override", + view: "FormCheckboxView", + viewConfig: { + label: "AS Override", + templateId: cowc.TMPL_CHECKBOX_LABEL_RIGHT_VIEW, + dataBindValue: "bgpaas_session_attributes().as_override", + path: "bgpaas_session_attributes.as_override", + class: "span6", + } + }]},{ + columns: [{ + elementId: "bgpaas_ipv4_mapped_ipv6_nexthop", + view: "FormCheckboxView", + viewConfig: { + label: "Use IPv4-mapped IPv6 Nexthop", + templateId: cowc.TMPL_CHECKBOX_LABEL_RIGHT_VIEW, + dataBindValue: "bgpaas_ipv4_mapped_ipv6_nexthop", + path: "bgpaas_ipv4_mapped_ipv6_nexthop", + class: "span6", + } + },{ + elementId: "bgpaas_suppress_route_advertisement", + view: "FormCheckboxView", + viewConfig: { + label: "Suppress Route Advertisement", + templateId: cowc.TMPL_CHECKBOX_LABEL_RIGHT_VIEW, + dataBindValue: "bgpaas_suppress_route_advertisement", + path: "bgpaas_suppress_route_advertisement", + class: "span6", + } + }]}/*,{ columns : [{ elementId: 'user_created_auth_key_type', view: 'FormDropdownView', diff --git a/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceGridView.js b/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceGridView.js index 9ae65ff97..103785ac3 100644 --- a/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceGridView.js +++ b/webroot/config/services/bgpasaservice/ui/js/views/bgpAsAServiceGridView.js @@ -267,13 +267,6 @@ define([ key: "uuid", templateGenerator: "TextGenerator", label: "UUID" - },{ - key: "bgpaas_ip_address", - templateGenerator: "TextGenerator", - label: "IP Address", - templateGeneratorConfig: { - formatter: "IPAddressFormatter" - } },{ key: "autonomous_system", templateGenerator: "TextGenerator", @@ -285,6 +278,13 @@ define([ templateGeneratorConfig: { formatter: "VMIFormatter" } + },{ + key: "bgpaas_ip_address", + templateGenerator: "TextGenerator", + label: "IP Address", + templateGeneratorConfig: { + formatter: "IPAddressFormatter" + } },{ key: "bgpaas_session_attributes.address_families", templateGenerator: "TextGenerator", @@ -292,6 +292,20 @@ define([ templateGeneratorConfig: { formatter: "AddressFamiliesFormatter" } + },{ + key: "bgpaas_session_attributes.hold_time", + templateGenerator: "TextGenerator", + label: "Hold Time", + templateGeneratorConfig: { + formatter: "HoldTimeFormatter" + } + },{ + key: "bgpaas_session_attributes.loop_count", + templateGenerator: "TextGenerator", + label: "Loop Count", + templateGeneratorConfig: { + formatter: "LoopCountFormatter" + } },{ key: 'bgpaas_session_attributes.admin_down', templateGenerator: 'TextGenerator', @@ -299,6 +313,13 @@ define([ templateGeneratorConfig: { formatter: "AdminStateFormatter" } + },{ + key: 'bgpaas_session_attributes.as_override', + templateGenerator: 'TextGenerator', + label: 'AS Override', + templateGeneratorConfig: { + formatter: "ASOverrideFormatter" + } },{ key: "bgpaas_session_attributes.passive", templateGenerator: "TextGenerator", @@ -307,18 +328,18 @@ define([ formatter: "PassiveFormatter" } },{ - key: "bgpaas_session_attributes.hold_time", - templateGenerator: "TextGenerator", - label: "Hold Time", + key: 'bgpaas_ipv4_mapped_ipv6_nexthop', + templateGenerator: 'TextGenerator', + label: 'Use IPv4-mapped IPv6 Nexthop', templateGeneratorConfig: { - formatter: "HoldTimeFormatter" + formatter: "IPv4MappedIPv6NexthopFormatter" } },{ - key: "bgpaas_session_attributes.loop_count", - templateGenerator: "TextGenerator", - label: "Loop Count", + key: 'bgpaas_suppress_route_advertisement', + templateGenerator: 'TextGenerator', + label: 'Suppress Route Advertisement', templateGeneratorConfig: { - formatter: "LoopCountFormatter" + formatter: "SuppressRouteAdvtFormatter" } },{ key: "bgpaas_session_attributes.auth_data", @@ -353,6 +374,10 @@ define([ this.AdminStateFormatter = function(v, dc) { return bgpAsAServiceFormatter.adminStateFormatter("", "", v, "", dc); }; + this.ASOverrideFormatter = function(v, dc) { + return bgpAsAServiceFormatter. + bgpaasASOverrideFormatter("", "", v, "", dc); + }; this.PassiveFormatter = function(v, dc) { return bgpAsAServiceFormatter.passiveFormatter("", "", v, "", dc); }; @@ -362,6 +387,14 @@ define([ this.LoopCountFormatter = function(v, dc) { return bgpAsAServiceFormatter.loopCountFormatter("", "", v, "", dc); }; + this.IPv4MappedIPv6NexthopFormatter = function(v, dc) { + return bgpAsAServiceFormatter. + ipV4MappedIPv6NexthopFormatter("", "", v, "", dc); + }; + this.SuppressRouteAdvtFormatter = function(v, dc) { + return bgpAsAServiceFormatter. + suppressRouteAdvtFormatter("", "", v, "", dc); + }; this.AddressFamiliesFormatter = function(v, dc) { return bgpAsAServiceFormatter.addressFamiliesFormatter("", "", v, "", dc); };