{"id":27570,"date":"2024-05-28T10:17:26","date_gmt":"2024-05-28T10:17:26","guid":{"rendered":"https:\/\/cloud-cod.com\/?p=27570"},"modified":"2025-08-05T10:16:37","modified_gmt":"2025-08-05T10:16:37","slug":"route-approval-cidrs-list-validation-using-script","status":"publish","type":"post","link":"https:\/\/cloud-cod.com\/index.php\/2024\/05\/28\/route-approval-cidrs-list-validation-using-script\/","title":{"rendered":"Route Approval CIDRs List validation using script"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"27570\" class=\"elementor elementor-27570\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4b5ed255 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4b5ed255\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-68895347\" data-id=\"68895347\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7df5960 elementor-widget elementor-widget-image\" data-id=\"7df5960\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 01-11-2023 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"467\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_image-768x467.png\" class=\"attachment-medium_large size-medium_large wp-image-27607\" alt=\"route_approval_image\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_image-768x467.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_image-300x183.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_image-1024x623.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_image-1536x935.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_image.png 2013w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4778ba elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"b4778ba\" data-element_type=\"widget\" data-settings=\"{&quot;exclude_headings_by_selector&quot;:[],&quot;marker_view&quot;:&quot;bullets&quot;,&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-circle&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor-pro - v3.17.0 - 01-11-2023 *\/\n.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#9da5ae);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:flex;align-items:center;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#9da5ae)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#babfc5;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-left:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:flex;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-right:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-right:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,\".\") \". \"}<\/style>\t\t<div class=\"elementor-toc__header\">\n\t\t\t<h4 class=\"elementor-toc__header-title\">\n\t\t\t\tSITEMAP\t\t\t<\/h4>\n\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__b4778ba\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><i aria-hidden=\"true\" class=\"fas fa-chevron-down\"><\/i><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__b4778ba\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><i aria-hidden=\"true\" class=\"fas fa-chevron-up\"><\/i><\/div>\n\t\t\t\t\t<\/div>\n\t\t<div id=\"elementor-toc__b4778ba\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<i class=\"elementor-toc__spinner eicon-animation-spin eicon-loading\" aria-hidden=\"true\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9443061 elementor-widget elementor-widget-heading\" data-id=\"9443061\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 01-11-2023 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">Introduction<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7061a5 elementor-widget elementor-widget-text-editor\" data-id=\"a7061a5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 01-11-2023 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p dir=\"auto\">There is an Aviatrix feature called &#8220;BGP Route Approval&#8221; that could be enabled on Aviatrix Gateways (<a href=\"https:\/\/docs.aviatrix.com\/documentation\/latest\/building-your-network\/transit-bgp-route-approval.html?expand=true\" rel=\"nofollow\">Aviatrix Docs &#8211; BGP Route Approval<\/a>). According to the Aviatrix documentation:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-44a379f elementor-blockquote--skin-boxed elementor-blockquote--button-color-official elementor-widget elementor-widget-blockquote\" data-id=\"44a379f\" data-element_type=\"widget\" data-widget_type=\"blockquote.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor-pro - v3.17.0 - 01-11-2023 *\/\n@charset \"UTF-8\";.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#3f444b}.elementor-widget-blockquote blockquote .e-q-footer:after,.elementor-widget-blockquote blockquote .e-q-footer:before,.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before{content:none}.elementor-blockquote{transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote .e-q-footer{margin-top:12px;display:flex;justify-content:space-between}.elementor-blockquote__tweet-button{display:flex;transition:.3s;color:#1da1f2;align-self:flex-end;line-height:1;position:relative;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-left:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:\"\";border:.5em solid transparent;border-right-color:#1da1f2;position:absolute;left:-.8em;top:50%;transform:translateY(-50%) scaleY(.65);transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#f9fafa;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#f9fafa;border-left:7px #f9fafa;border-style:solid;padding-left:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:\"\u201c\";font-size:100px;color:#f9fafa;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote .e-q-footer{flex-direction:row}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote .e-q-footer{flex-direction:row-reverse}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote .e-q-footer,.elementor-blockquote--align-center .elementor-blockquote__author{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}<\/style>\t\t<blockquote class=\"elementor-blockquote\">\n\t\t\t<p class=\"elementor-blockquote__content\">\n\t\t\t\tThe Aviatrix Transit Gateway, BGP-enable Spoke Gateway, and Edge Gateway dynamically learns BGP routes from remote sites. These learned routes are reported to the Aviatrix Controller which propagates and programs the route entries of a Spoke VPC or VNet route table.\n\nThere are scenarios where you may require an approval process before learned CIDRs are propagated to the Spoke VPC or VNet.\t\t\t<\/p>\n\t\t\t\t\t<\/blockquote>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c3aee5 elementor-widget elementor-widget-text-editor\" data-id=\"7c3aee5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">The Route Approval feature maintains two lists of CIDRs: &#8220;Approved CIDR&#8221; list and &#8220;Pending CIDR&#8221; list:<\/p>\n<ul dir=\"auto\">\n<li>&#8220;Pending CIDR&#8221;- is a list of CIDRs that remote BGP Peer advertises to us but we do not have them installed\/accepted on Aviatrix Gateway yet,<\/li>\n<li>&#8220;Approved CIDR&#8221; &#8211; is a list of CIDRs that remote BGP Peer advertises to us nad we have accepted\/installed on Aviatrix Gateway.<\/li>\n<\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0754aa2 elementor-widget elementor-widget-text-editor\" data-id=\"0754aa2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>The Route Approval feature could operate in two Modes (it must be set up per Gateway):<br \/>&#8211; &#8220;Gateway Mode&#8221;, in this mode &#8220;Approved CIDR&#8221; and &#8220;Pending CIDR&#8221; lists are maintaned for all connections established by Gateway,<br \/>&#8211; &#8220;Connection Mode&#8221;, in this mode &#8220;Approved CIDR&#8221; and &#8220;Pending CIDR&#8221; lists are maintened separately for each connection established by Gateway.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4c26ee elementor-widget elementor-widget-text-editor\" data-id=\"c4c26ee\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>This blog article presents two scripts that validate Approved CIDRs and notifies the admin whenever the change is detected between the baseline and the current state.<\/p>\n<p>There are two versions of the script that checks and notify about the changes related to &#8220;different things&#8221;:<\/p>\n<ul>\n<li>Version 1 (&#8220;today vs yesterday&#8221;) of the script is meant to be scheduled every day. The script checks the current results (from &#8220;today&#8221;) and compares to the results generated &#8220;yesterday&#8221;. The script prints the differences in the command line and sends a notification e-mail. V1 supports only &#8220;Connection Mode&#8221; Route Approval feature.<\/li>\n<li>Version 2 (&#8220;golden list&#8221;) of the script leverages &#8220;golden list&#8221; files that store the desired list of approved CIDRs. The script (v2) compares the current results to the information taken from &#8220;golden list&#8221; files. The script (v2) prints the differences in the command line and sends a notification e-mail. V2 supports both &#8220;Connection Mode&#8221; and &#8220;Gateway Mode&#8221; Route Approval feature.<\/li>\n<\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26830b8 elementor-widget elementor-widget-image\" data-id=\"26830b8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_flow.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_flow\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwMjQsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfZmxvdy5wbmcifQ%3D%3D\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"276\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_flow-300x276.png\" class=\"attachment-medium size-medium wp-image-28024\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_flow-300x276.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_flow-1024x940.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_flow-768x705.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_flow.png 1373w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2258753 elementor-widget elementor-widget-heading\" data-id=\"2258753\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Script - version 1 (\"yesterday vs today\")<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51c6756 elementor-widget elementor-widget-text-editor\" data-id=\"51c6756\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Repo (version 1):\u00a0<a href=\"https:\/\/github.com\/JakubD-AVX\/aviatrix-route-approval-check-python-script\/\">https:\/\/github.com\/JakubD-AVX\/aviatrix-route-approval-check-python-script\/<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb9882f elementor-widget elementor-widget-image\" data-id=\"bb9882f\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-scaled.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v1\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwMjUsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjEtc2NhbGVkLnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"487\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-768x487.png\" class=\"attachment-medium_large size-medium_large wp-image-28025\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-768x487.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-300x190.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-1024x650.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-1536x975.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1-2048x1300.png 2048w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-060f7a2 elementor-widget elementor-widget-text-editor\" data-id=\"060f7a2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">The script creates the following 4 files for each BGP connection:<\/p>\n<ul dir=\"auto\">\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_approved_cidr_list_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep a list of all approved CIDRs.<\/li>\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_pending_cidr_list_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep a list of all pending CIDRs.<\/li>\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_total_approved_cidr_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep the total number of approved CIDRs.<\/li>\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_total_pending_cidr_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep the total number of approved CIDRs.<\/li>\n<\/ul>\n<p dir=\"auto\">Additionaly, the script also generates some outputs and sends notification e-mails. The script generates the outputs that show the following pieces of information:<\/p>\n<ul dir=\"auto\">\n<li>name of the Aviatrix Transit Gateway that has been checked<\/li>\n<li>name of each connection<\/li>\n<li>for each connection: number of approved CIDRs for today and yesterday<\/li>\n<li>for each connection: number of pending CIDRs for today and yesterday<\/li>\n<\/ul>\n<p dir=\"auto\">In case the number of CIDRs (either approved or pending) between today and yesterday is not equal -&gt; script sends a notification e-mail(s).<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-122c81b elementor-widget elementor-widget-text-editor\" data-id=\"122c81b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Example of notification e-mails:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38528a0 elementor-widget elementor-widget-image\" data-id=\"38528a0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email1.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v1_email1\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwMjcsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjFfZW1haWwxLnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"156\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email1-300x156.png\" class=\"attachment-medium size-medium wp-image-28027\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email1-300x156.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email1-1024x531.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email1-768x399.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email1.png 1291w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c17f7e8 elementor-widget elementor-widget-image\" data-id=\"c17f7e8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email2.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v1_email2\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwMjgsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjFfZW1haWwyLnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"162\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email2-300x162.png\" class=\"attachment-medium size-medium wp-image-28028\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email2-300x162.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email2-1024x554.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email2-768x416.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v1_email2.png 1352w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a3a6ab elementor-widget elementor-widget-heading\" data-id=\"6a3a6ab\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Script - version 2 (\"golden list\")<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f5f450 elementor-widget elementor-widget-text-editor\" data-id=\"8f5f450\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Repo (version 2): <a href=\"https:\/\/github.com\/JakubD-AVX\/aviatrix-route-approval-check-python-script-v2\">https:\/\/github.com\/JakubD-AVX\/aviatrix-route-approval-check-python-script-v2<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-361c9e7 elementor-widget elementor-widget-image\" data-id=\"361c9e7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v2\" data-elementor-lightbox-description=\"route_approval_v2\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6Mjc2MTUsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjItMS5wbmcifQ%3D%3D\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"693\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1-768x693.png\" class=\"attachment-medium_large size-medium_large wp-image-27615\" alt=\"route_approval_v2\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1-768x693.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1-300x271.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1-1024x923.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1-1536x1385.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2-1-2048x1847.png 2048w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f77e71a elementor-widget elementor-widget-text-editor\" data-id=\"f77e71a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">The &#8220;golden list CIDRs&#8221; are kept in\u00a0<strong>golden_list<\/strong> folder.<\/p>\n<ul>\n<li>For Gateway that operates in &#8220;Connection Mode&#8221;:<br \/>there is 1 file required per each BGP connection and this file must be created before running the script:<\/li>\n<\/ul>\n<p><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_approved_cidr_list_golden_list.csv<\/p>\n<ul>\n<li>For Gateway that operates in &#8220;Gateway Mode&#8221;:<br \/>there is 1 file required per Gateway and this file must be created before running the script:<\/li>\n<\/ul>\n<p><em>transit-gw-name<\/em>_Gateway-Mode_approved_cidr_list_golden_list.csv<\/p>\n<p>The purpose of the golden file is to keep a list of all approved CIDRs.<\/p>\n<p dir=\"auto\">During the script execution the following 4 files are created in\u00a0<strong>temp_files<\/strong>\u00a0folder for each BGP connection:<\/p>\n<ul dir=\"auto\">\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_approved_cidr_list_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep a list of all approved CIDRs.<\/li>\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_pending_cidr_list_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep a list of all pending CIDRs.<\/li>\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_total_approved_cidr_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep the total number of approved CIDRs.<\/li>\n<li><em>transit-gw-name<\/em>_connection_<em>connection-name<\/em>_total_pending_cidr_date_<em>yyyy-mm-dd<\/em>.csv The purpose of the file is to keep the total number of approved CIDRs.<\/li>\n<\/ul>\n<p dir=\"auto\">Please notice that if a gateway operates in &#8220;Gateway Mode&#8221; the filenames will contain &#8220;Gateway-Mode&#8221; instead of &#8220;connection_<em>connection-name<\/em>&#8220;.<\/p>\n<p dir=\"auto\">Besides the files that are created by the script, the script also generates some outputs and sends notification e-mails. The script generates the outputs that show the following pieces of information:<\/p>\n<ul dir=\"auto\">\n<li>name of the Aviatrix Transit Gateway that has been checked<\/li>\n<li>name of each connection<\/li>\n<li>for each connection (in case &#8220;Connection Mode&#8221; is used): a full list of CIDRs that are present in the &#8220;golden list&#8221; but are not approved by Route Approval Feature<\/li>\n<li>for each connection (in case &#8220;Connection Mode&#8221; is used): a full list of CIDRs that are approved by Route Approval Feature but are not present in the &#8220;golden list&#8221;<\/li>\n<li>for each gateway (in case &#8220;Gateway Mode&#8221; is used): a full list of CIDRs that are present in the &#8220;golden list&#8221; but are not approved by Route Approval Feature<\/li>\n<li>for each gateway (in case &#8220;Gateway Mode&#8221; is used): a full list of CIDRs that are approved by Route Approval Feature but are not present in the &#8220;golden list&#8221;<\/li>\n<\/ul>\n<p dir=\"auto\">In case the list of CIDRs (either approved or pending) between current check and &#8220;golden list&#8221; is not equal -&gt; script sends a notification e-mail(s).<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-074089e elementor-widget elementor-widget-text-editor\" data-id=\"074089e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Example of notification e-mails:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4d5861 elementor-widget elementor-widget-image\" data-id=\"b4d5861\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email1.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v2_email1\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwMjksInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjJfZW1haWwxLnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"166\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email1-300x166.png\" class=\"attachment-medium size-medium wp-image-28029\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email1-300x166.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email1-1024x568.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email1-768x426.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email1.png 1307w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e69cbbe elementor-widget elementor-widget-text-editor\" data-id=\"e69cbbe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<!-- wp:paragraph -->\n<p> <\/p>\n<!-- \/wp:paragraph -->\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3773093 elementor-widget elementor-widget-image\" data-id=\"3773093\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email2.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v2_email2\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwMzAsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjJfZW1haWwyLnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"152\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email2-300x152.png\" class=\"attachment-medium size-medium wp-image-28030\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email2-300x152.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email2-1024x517.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email2-768x388.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email2.png 1498w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afcf693 elementor-widget elementor-widget-image\" data-id=\"afcf693\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email3.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v2_email3\" data-elementor-lightbox-description=\"route_approval_v2_email3\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6Mjc2MTcsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjJfZW1haWwzLnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"150\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email3-300x150.png\" class=\"attachment-medium size-medium wp-image-27617\" alt=\"route_approval_v2_email3\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email3-300x150.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email3-1024x512.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email3-768x384.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email3.png 1102w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f7dd5b elementor-widget elementor-widget-image\" data-id=\"5f7dd5b\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email4.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"route_approval_v2_email4\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6Mjc2MTgsInVybCI6Imh0dHBzOlwvXC9jbG91ZC1jb2QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvcm91dGVfYXBwcm92YWxfdjJfZW1haWw0LnBuZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"143\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email4-300x143.png\" class=\"attachment-medium size-medium wp-image-27618\" alt=\"\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email4-300x143.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email4-1024x489.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email4-768x367.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/route_approval_v2_email4.png 1169w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-02304f7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"02304f7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0cb562d\" data-id=\"0cb562d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>This blog article presents two scripts that validate Approved CIDRs (Aviatrix Route Approval feature) and notifies the admin whenever the change is detected between the baseline and the current state.<\/p>\n","protected":false},"author":2,"featured_media":27605,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[14,19,26,9],"tags":[],"class_list":["post-27570","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aviatrix","category-monitoring","category-python","category-route-control"],"uagb_featured_image_src":{"full":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17.png",2013,1428,false],"thumbnail":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-150x150.png",150,150,true],"medium":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-300x213.png",300,213,true],"medium_large":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-768x545.png",768,545,true],"large":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-1024x726.png",800,567,true],"1536x1536":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-1536x1090.png",1536,1090,true],"2048x2048":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17.png",2013,1428,false],"onepress-blog-small":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-300x150.png",300,150,true],"onepress-small":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-480x300.png",480,300,true],"onepress-medium":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2024\/05\/blog_post17-640x400.png",640,400,true]},"uagb_author_info":{"display_name":"Jakub","author_link":"https:\/\/cloud-cod.com\/index.php\/author\/jakub\/"},"uagb_comment_info":265,"uagb_excerpt":"This blog article presents two scripts that validate Approved CIDRs (Aviatrix Route Approval feature) and notifies the admin whenever the change is detected between the baseline and the current state.","_links":{"self":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts\/27570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/comments?post=27570"}],"version-history":[{"count":36,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts\/27570\/revisions"}],"predecessor-version":[{"id":28033,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts\/27570\/revisions\/28033"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/media\/27605"}],"wp:attachment":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/media?parent=27570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/categories?post=27570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/tags?post=27570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}