Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/cloudengine/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pyo

�
�Udac@s�idd6dgd6dd6ZdZdZdZd	d
lZd	dlmZd	dlmZm	Z	m
Z
mZd
ZdZ
dZdZdZdZdefd��YZd�Zedkr�e�nd
S(s1.1tmetadata_versiontpreviewtstatust	communitytsupported_bysl6
---
module: ce_bgp_neighbor_af
version_added: "2.4"
short_description: Manages BGP neighbor Address-family configuration on HUAWEI CloudEngine switches.
description:
    - Manages BGP neighbor Address-family configurations on HUAWEI CloudEngine switches.
author:
    - wangdezhuang (@QijunPan)
notes:
    - This module requires the netconf system service be enabled on the remote device being managed.
    - Recommended connection is C(netconf).
    - This module also works with C(local) connections for legacy playbooks.
options:
    vrf_name:
        description:
            - Name of a BGP instance. The name is a case-sensitive string of characters.
              The BGP instance can be used only after the corresponding VPN instance is created.
        required: true
    af_type:
        description:
            - Address family type of a BGP instance.
        required: true
        choices: ['ipv4uni', 'ipv4multi', 'ipv4vpn', 'ipv6uni', 'ipv6vpn', 'evpn']
    remote_address:
        description:
            - IPv4 or IPv6 peer connection address.
        required: true
    advertise_irb:
        description:
            - If the value is true, advertised IRB routes are distinguished.
              If the value is false, advertised IRB routes are not distinguished.
        default: no_use
        choices: ['no_use','true','false']
    advertise_arp:
        description:
            - If the value is true, advertised ARP routes are distinguished.
              If the value is false, advertised ARP routes are not distinguished.
        default: no_use
        choices: ['no_use','true','false']
    advertise_remote_nexthop:
        description:
            - If the value is true, the remote next-hop attribute is advertised to peers.
              If the value is false, the remote next-hop attribute is not advertised to any peers.
        default: no_use
        choices: ['no_use','true','false']
    advertise_community:
        description:
            - If the value is true, the community attribute is advertised to peers.
              If the value is false, the community attribute is not advertised to peers.
        default: no_use
        choices: ['no_use','true','false']
    advertise_ext_community:
        description:
            - If the value is true, the extended community attribute is advertised to peers.
              If the value is false, the extended community attribute is not advertised to peers.
        default: no_use
        choices: ['no_use','true','false']
    discard_ext_community:
        description:
            - If the value is true, the extended community attribute in the peer route information is discarded.
              If the value is false, the extended community attribute in the peer route information is not discarded.
        default: no_use
        choices: ['no_use','true','false']
    allow_as_loop_enable:
        description:
            - If the value is true, repetitive local AS numbers are allowed.
              If the value is false, repetitive local AS numbers are not allowed.
        default: no_use
        choices: ['no_use','true','false']
    allow_as_loop_limit:
        description:
            - Set the maximum number of repetitive local AS number.
              The value is an integer ranging from 1 to 10.
    keep_all_routes:
        description:
            - If the value is true, the system stores all route update messages received from all peers (groups)
              after BGP connection setup.
              If the value is false, the system stores only BGP update messages that are received from peers
              and pass the configured import policy.
        default: no_use
        choices: ['no_use','true','false']
    nexthop_configure:
        description:
            - null, The next hop is not changed.
              local, The next hop is changed to the local IP address.
              invariable, Prevent the device from changing the next hop of each imported IGP route
              when advertising it to its BGP peers.
        choices: ['null', 'local', 'invariable']
    preferred_value:
        description:
            - Assign a preferred value for the routes learned from a specified peer.
              The value is an integer ranging from 0 to 65535.
    public_as_only:
        description:
            - If the value is true, sent BGP update messages carry only the public AS number but do not carry
              private AS numbers.
              If the value is false, sent BGP update messages can carry private AS numbers.
        default: no_use
        choices: ['no_use','true','false']
    public_as_only_force:
        description:
            - If the value is true, sent BGP update messages carry only the public AS number but do not carry
              private AS numbers.
              If the value is false, sent BGP update messages can carry private AS numbers.
        default: no_use
        choices: ['no_use','true','false']
    public_as_only_limited:
        description:
            - Limited use public as number.
        default: no_use
        choices: ['no_use','true','false']
    public_as_only_replace:
        description:
            - Private as replaced by public as number.
        default: no_use
        choices: ['no_use','true','false']
    public_as_only_skip_peer_as:
        description:
            - Public as only skip peer as.
        default: no_use
        choices: ['no_use','true','false']
    route_limit:
        description:
            - Configure the maximum number of routes that can be accepted from a peer.
              The value is an integer ranging from 1 to 4294967295.
    route_limit_percent:
        description:
            - Specify the percentage of routes when a router starts to generate an alarm.
              The value is an integer ranging from 1 to 100.
    route_limit_type:
        description:
            - Noparameter, After the number of received routes exceeds the threshold and the timeout
              timer expires,no action.
              AlertOnly, An alarm is generated and no additional routes will be accepted if the maximum
              number of routes allowed have been received.
              IdleForever, The connection that is interrupted is not automatically re-established if the
              maximum number of routes allowed have been received.
              IdleTimeout, After the number of received routes exceeds the threshold and the timeout timer
              expires, the connection that is interrupted is automatically re-established.
        choices: ['noparameter', 'alertOnly', 'idleForever', 'idleTimeout']
    route_limit_idle_timeout:
        description:
            - Specify the value of the idle-timeout timer to automatically reestablish the connections after
              they are cut off when the number of routes exceeds the set threshold.
              The value is an integer ranging from 1 to 1200.
    rt_updt_interval:
        description:
            - Specify the minimum interval at which Update packets are sent. The value is an integer, in seconds.
              The value is an integer ranging from 0 to 600.
    redirect_ip:
        description:
            - Redirect ip.
        default: no_use
        choices: ['no_use','true','false']
    redirect_ip_vaildation:
        description:
            - Redirect ip vaildation.
        default: no_use
        choices: ['no_use','true','false']
    reflect_client:
        description:
            - If the value is true, the local device functions as the route reflector and a peer functions
              as a client of the route reflector.
              If the value is false, the route reflector and client functions are not configured.
        default: no_use
        choices: ['no_use','true','false']
    substitute_as_enable:
        description:
            - If the value is true, the function to replace a specified peer's AS number in the AS-Path attribute with
              the local AS number is enabled.
              If the value is false, the function to replace a specified peer's AS number in the AS-Path attribute with
              the local AS number is disabled.
        default: no_use
        choices: ['no_use','true','false']
    import_rt_policy_name:
        description:
            - Specify the filtering policy applied to the routes learned from a peer.
              The value is a string of 1 to 40 characters.
    export_rt_policy_name:
        description:
            - Specify the filtering policy applied to the routes to be advertised to a peer.
              The value is a string of 1 to 40 characters.
    import_pref_filt_name:
        description:
            - Specify the IPv4 filtering policy applied to the routes received from a specified peer.
              The value is a string of 1 to 169 characters.
    export_pref_filt_name:
        description:
            - Specify the IPv4 filtering policy applied to the routes to be advertised to a specified peer.
              The value is a string of 1 to 169 characters.
    import_as_path_filter:
        description:
            - Apply an AS_Path-based filtering policy to the routes received from a specified peer.
              The value is an integer ranging from 1 to 256.
    export_as_path_filter:
        description:
            - Apply an AS_Path-based filtering policy to the routes to be advertised to a specified peer.
              The value is an integer ranging from 1 to 256.
    import_as_path_name_or_num:
        description:
            - A routing strategy based on the AS path list for routing received by a designated peer.
    export_as_path_name_or_num:
        description:
            - Application of a AS path list based filtering policy to the routing of a specified peer.
    import_acl_name_or_num:
        description:
            - Apply an IPv4 ACL-based filtering policy to the routes received from a specified peer.
              The value is a string of 1 to 32 characters.
    export_acl_name_or_num:
        description:
            - Apply an IPv4 ACL-based filtering policy to the routes to be advertised to a specified peer.
              The value is a string of 1 to 32 characters.
    ipprefix_orf_enable:
        description:
            - If the value is true, the address prefix-based Outbound Route Filter (ORF) capability is
              enabled for peers.
              If the value is false, the address prefix-based Outbound Route Filter (ORF) capability is
              disabled for peers.
        default: no_use
        choices: ['no_use','true','false']
    is_nonstd_ipprefix_mod:
        description:
            - If the value is true, Non-standard capability codes are used during capability negotiation.
              If the value is false, RFC-defined standard ORF capability codes are used during capability negotiation.
        default: no_use
        choices: ['no_use','true','false']
    orftype:
        description:
            - ORF Type.
              The value is an integer ranging from 0 to 65535.
    orf_mode:
        description:
            - ORF mode.
              null, Default value.
              receive, ORF for incoming packets.
              send, ORF for outgoing packets.
              both, ORF for incoming and outgoing packets.
        choices: ['null', 'receive', 'send', 'both']
    soostring:
        description:
            - Configure the Site-of-Origin (SoO) extended community attribute.
              The value is a string of 3 to 21 characters.
    default_rt_adv_enable:
        description:
            - If the value is true, the function to advertise default routes to peers is enabled.
              If the value is false, the function to advertise default routes to peers is disabled.
        default: no_use
        choices: ['no_use','true', 'false']
    default_rt_adv_policy:
        description:
            - Specify the name of a used policy. The value is a string.
              The value is a string of 1 to 40 characters.
    default_rt_match_mode:
        description:
            - null, Null.
              matchall, Advertise the default route if all matching conditions are met.
              matchany, Advertise the default route if any matching condition is met.
        choices: ['null', 'matchall', 'matchany']
    add_path_mode:
        description:
            - null, Null.
              receive, Support receiving Add-Path routes.
              send, Support sending Add-Path routes.
              both, Support receiving and sending Add-Path routes.
        choices: ['null', 'receive', 'send', 'both']
    adv_add_path_num:
        description:
            - The number of addPath advertise route.
              The value is an integer ranging from 2 to 64.
    origin_as_valid:
        description:
            - If the value is true, Application results of route announcement.
              If the value is false, Routing application results are not notified.
        default: no_use
        choices: ['no_use','true', 'false']
    vpls_enable:
        description:
            - If the value is true, vpls enable.
              If the value is false, vpls disable.
        default: no_use
        choices: ['no_use','true', 'false']
    vpls_ad_disable:
        description:
            - If the value is true, enable vpls-ad.
              If the value is false, disable vpls-ad.
        default: no_use
        choices: ['no_use','true', 'false']
    update_pkt_standard_compatible:
        description:
            - If the value is true, When the vpnv4 multicast neighbor receives and updates the message,
              the message has no label.
              If the value is false, When the vpnv4 multicast neighbor receives and updates the message,
              the message has label.
        default: no_use
        choices: ['no_use','true', 'false']
s�

- name: CloudEngine BGP neighbor address family test
  hosts: cloudengine
  connection: local
  gather_facts: no
  vars:
    cli:
      host: "{{ inventory_hostname }}"
      port: "{{ ansible_ssh_port }}"
      username: "{{ username }}"
      password: "{{ password }}"
      transport: cli

  tasks:

  - name: "Config BGP peer Address_Family"
    ce_bgp_neighbor_af:
      state: present
      vrf_name: js
      af_type: ipv4uni
      remote_address: 192.168.10.10
      nexthop_configure: local
      provider: "{{ cli }}"

  - name: "Undo BGP peer Address_Family"
    ce_bgp_neighbor_af:
      state: absent
      vrf_name: js
      af_type: ipv4uni
      remote_address: 192.168.10.10
      nexthop_configure: local
      provider: "{{ cli }}"
s#
changed:
    description: check to see if a change was made on the device
    returned: always
    type: bool
    sample: true
proposed:
    description: k/v pairs of parameters passed into module
    returned: always
    type: dict
    sample: {"af_type": "ipv4uni", "nexthop_configure": "local",
             "remote_address": "192.168.10.10",
             "state": "present", "vrf_name": "js"}
existing:
    description: k/v pairs of existing aaa server
    returned: always
    type: dict
    sample: {"bgp neighbor af": {"af_type": "ipv4uni", "remote_address": "192.168.10.10",
                                 "vrf_name": "js"},
             "bgp neighbor af other": {"af_type": "ipv4uni", "nexthop_configure": "null",
                                  "vrf_name": "js"}}
end_state:
    description: k/v pairs of aaa params after module execution
    returned: always
    type: dict
    sample: {"bgp neighbor af": {"af_type": "ipv4uni", "remote_address": "192.168.10.10",
                                 "vrf_name": "js"},
             "bgp neighbor af other": {"af_type": "ipv4uni", "nexthop_configure": "local",
                                  "vrf_name": "js"}}
updates:
    description: command sent to the device
    returned: always
    type: list
    sample: ["peer 192.168.10.10 next-hop-local"]
i����N(t
AnsibleModule(t
get_nc_configt
set_nc_configtce_argument_spect
check_ip_addrs�
    <filter type="subtree">
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf>
              <vrfName>%s</vrfName>
              <bgpVrfAFs>
                <bgpVrfAF>
                  <afType>%s</afType>
                  <peerAFs>
                    <peerAF>
                      <remoteAddress>%s</remoteAddress>
s�
                    </peerAF>
                  </peerAFs>
                </bgpVrfAF>
              </bgpVrfAFs>
            </bgpVrf>
          </bgpVrfs>
        </bgpcomm>
      </bgp>
    </filter>
s�
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf>
              <vrfName>%s</vrfName>
              <bgpVrfAFs>
                <bgpVrfAF>
                  <afType>%s</afType>
                  <peerAFs>
                    <peerAF operation="merge">
                      <remoteAddress>%s</remoteAddress>
s�
                    </peerAF>
                  </peerAFs>
                </bgpVrfAF>
              </bgpVrfAFs>
            </bgpVrf>
          </bgpVrfs>
        </bgpcomm>
      </bgp>
    </config>
sx
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf>
              <vrfName>%s</vrfName>
              <bgpVrfAFs>
                <bgpVrfAF>
                  <afType>%s</afType>
                  <peerAFs>
                    <peerAF operation="create">
                      <remoteAddress>%s</remoteAddress>
                    </peerAF>
                  </peerAFs>
                </bgpVrfAF>
              </bgpVrfAFs>
            </bgpVrf>
          </bgpVrfs>
        </bgpcomm>
      </bgp>
    </config>
sx
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf>
              <vrfName>%s</vrfName>
              <bgpVrfAFs>
                <bgpVrfAF>
                  <afType>%s</afType>
                  <peerAFs>
                    <peerAF operation="delete">
                      <remoteAddress>%s</remoteAddress>
                    </peerAF>
                  </peerAFs>
                </bgpVrfAF>
              </bgpVrfAFs>
            </bgpVrf>
          </bgpVrfs>
        </bgpcomm>
      </bgp>
    </config>
t
BgpNeighborAfcBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s3 Manages BGP neighbor Address-family configuration cKs'|d}|d}t||�}|S(s netconf_get_config tmoduletconf_str(R(tselftkwargsRRtxml_str((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytnetconf_get_config�s

cKs'|d}|d}t||�}|S(s netconf_set_config RR(R(R
RRRR((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytnetconf_set_configs

cKs�|d}t�}t}|jd}|rjt|�dksPt|�dkrj|jdd|�qjn|jd}|jd}|jd	}td
|�s�|jdd|�nt|||ft}	|jd|d|	�}
|d
kr^d|
krt	}q�t
jd|
�}|rU||d	<||d<||d<||kr[t	}q[q�t	}nad|
krmnRt
jd|
�}|r�||d	<||d<||d<|d|kr�t	}q�n||d<|S(s check_bgp_neighbor_af_args Rtvrf_nameiitmsgs1Error: The len of vrf_name %s is out of [1 - 31].tstatetaf_typetremote_addresstipaddrs(Error: The remote_address %s is invalid.Rtpresents<data/>s'.*<remoteAddress>(.*)</remoteAddress>.*tneed_cfg(tdicttFalsetparamstlent	fail_jsonR	tCE_GET_BGP_PEER_AF_HEADERtCE_GET_BGP_PEER_AF_TAILRtTruetretfindall(R
RRtresultRRRRRRtrecv_xmltre_find((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytcheck_bgp_neighbor_af_argssR
	
$	


		


	



c=Ks�(|d}t�}t}|jd}|jd}|jd}|jd}|dkrg||d<|S|jd}	|	d	kr't|||fd
t}
|jd|d|
�}d|kr�t}q'tjd
||�}|r||d<||d<||d<|d|	kr$t}q$q't}n|jd}
|
d	kr�t|||fdt}
|jd|d|
�}d|kr�t}q�tjd||�}|r�||d<||d<||d<|d|
kr�t}q�q�t}n|jd}|d	kr�t|||fdt}
|jd|d|
�}d|krHt}q�tjd|�}|r�||d<||d<||d<|d|kr�t}q�q�t}n|jd}|d	kr_t|||fdt}
|jd|d|
�}d|krt}q_tjd|�}|rV||d<||d<||d<|d|kr\t}q\q_t}n|jd}|d	krt|||fdt}
|jd|d|
�}d|kr�t}qtjd|�}|r||d<||d<||d<|d|krt}qqt}n|jd}|d	kr�t|||fdt}
|jd|d|
�}d|kr|t}q�tjd|�}|r�||d<||d<||d<|d|kr�t}q�q�t}n|jd}|d	kr�t|||fdt}
|jd|d|
�}d|kr8t}q�tjd |�}|r�||d<||d<||d<|d|kr�t}q�q�t}n|jd!}|r�t	|�d"ks�t	|�d#kr�|j
d$d%|�nt|||fd&t}
|jd|d|
�}d|kr)t}q�tjd'|�}|r{||d!<||d<||d<|d|kr�t}q�q�t}n|jd(}|d	kr@t|||fd)t}
|jd|d|
�}d|kr�t}q@tjd*|�}|r7||d(<||d<||d<|d|kr=t}q=q@t}n|jd+}|rt|||fd,t}
|jd|d|
�}d-|_d|kr�t}qtjd.|�}|r|d|_||d+<||d<||d<|d|kr	t}q	qt}n|jd/}|r�t	|�d0ksCt	|�dkrZ|j
d$d1|�nt|||fd2t}
|jd|d|
�}d|kr�t}q�tjd3|�}|r�||d/<||d<||d<|d|kr�t}q�q�t}n|jd4}|d	kr�	t|||fd5t}
|jd|d|
�}d|kr^	t}q�	tjd6|�}|r�	||d4<||d<||d<|d|kr�	t}q�	q�	t}n|jd7}|d	kru
t|||fd8t}
|jd|d|
�}d|kr
t}qu
tjd9|�}|rl
||d7<||d<||d<|d|krr
t}qr
qu
t}n|jd:}|d	kr1t|||fd;t}
|jd|d|
�}d|kr�
t}q1tjd<|�}|r(||d:<||d<||d<|d|kr.t}q.q1t}n|jd=}|d	kr�t|||fd>t}
|jd|d|
�}d|kr�t}q�tjd?|�}|r�||d=<||d<||d<|d|kr�t}q�q�t}n|jd@}|d	kr�t|||fdAt}
|jd|d|
�}d|krNt}q�tjdB|�}|r�||d@<||d<||d<|d|kr�t}q�q�t}n|jdC}|r�
t	|�d#kr�|j
d$dD|�nt|||fdEt}
|jd|d|
�}d|kr-
t}q�
tjdF|�}|r
||dC<||d<||d<|d|kr�
t}q�
q�
t}n|jdG}|ryt	|�d#ks�
t	|�dHkr�
|j
d$dI|�nt|||fdJt}
|jd|d|
�}d|krt}qytjdK|�}|rp||dG<||d<||d<|d|krvt}qvqyt}n|jdL}|r/t|||fdMt}
|jd|d|
�}d|kr�t}q/tjdN|�}|r&||dL<||d<||d<|d|kr,t}q,q/t}n|jdO}|r t	|�d#ksft	|�dPkr}|j
d$dQ|�nt|||fdRt}
|jd|d|
�}d|kr�t}q tjdS|�}|r||dO<||d<||d<|d|krt}qq t}n|jdT} | rt	| �dksWt	| �dUkrn|j
d$dV| �nt|||fdWt}
|jd|d|
�}d|kr�t}qtjdX|�}|r||dT<||d<||d<|d| krt}qqt}n|jdY}!|!d	kr�t|||fdZt}
|jd|d|
�}d|krrt}q�tjd[|�}|r�||dY<||d<||d<|d|!kr�t}q�q�t}n|jd\}"|"d	kr�t|||fd]t}
|jd|d|
�}d|kr.t}q�tjd^|�}|r�||d\<||d<||d<|d|"kr�t}q�q�t}n|jd_}#|#d	krEt|||fd`t}
|jd|d|
�}d|kr�t}qEtjda|�}|r<||d_<||d<||d<|d|#krBt}qBqEt}n|jdb}$|$d	krt|||fdct}
|jd|d|
�}d|kr�t}qtjdd|�}|r�||db<||d<||d<|d|$kr�t}q�qt}n|jde}%|%r�t|%�d#ks8t|%�dfkrO|j
d$dg|%�nt|||fdht}
|jd|d|
�}d|kr�t}q�tjdi|�}|r�||de<||d<||d<|d|%kr�t}q�q�t}n|jdj}&|&r�t|&�d#ks)t|&�dfkr@|j
d$dk|&�nt|||fdlt}
|jd|d|
�}d|kr�t}q�tjdm|�}|r�||dj<||d<||d<|d|&kr�t}q�q�t}n|jdn}'|'r�t|'�d#kst|'�dokr1|j
d$dp|'�nt|||fdqt}
|jd|d|
�}d|kryt}q�tjdr|�}|r�||dn<||d<||d<|d|'kr�t}q�q�t}n|jds}(|(r�t|(�d#kst|(�dokr"|j
d$dt|(�nt|||fdut}
|jd|d|
�}d|krjt}q�tjdv|�}|r�||ds<||d<||d<|d|(kr�t}q�q�t}n|jdw})|)r�t	|)�d#ks�t	|)�dxkr|j
d$dy|)�nt|||fdzt}
|jd|d|
�}d|kr[t}q�tjd{|�}|r�||dw<||d<||d<|d|)kr�t}q�q�t}n|jd|}*|*r�t	|*�d#ks�t	|*�dxkr|j
d$d}|*�nt|||fd~t}
|jd|d|
�}d|krLt}q�tjd|�}|r�||d|<||d<||d<|d|*kr�t}q�q�t}n|jd�}+|+r�t|+�d#ks�t|+�d�kr�|j
d$d�|+�nt|||fd�t}
|jd|d|
�}d|kr=t}q�tjd�|�}|r�||d�<||d<||d<|d|+kr�t}q�q�t}n|jd�},|,r�t|,�d#ks�t|,�d�kr�|j
d$d�|,�nt|||fd�t}
|jd|d|
�}d|kr.t}q�tjd�|�}|r�||d�<||d<||d<|d|,kr�t}q�q�t}n|jd�}-|-rzt|-�d#ks�t|-�d�kr�|j
d$d�|-�nt|||fd�t}
|jd|d|
�}d|krt}qztjd�|�}|rq||d�<||d<||d<|d|-krwt}qwqzt}n|jd�}.|.rkt|.�d#ks�t|.�d�kr�|j
d$d�|.�nt|||fd�t}
|jd|d|
�}d|krt}qktjd�|�}|rb||d�<||d<||d<|d|.krht}qhqkt}n|jd�}/|/d	kr't|||fd�t}
|jd|d|
�}d|kr�t}q'tjd�|�}|r||d�<||d<||d<|d|/kr$t}q$q't}n|jd�}0|0d	kr�t|||fd�t}
|jd|d|
�}d|kr�t}q�tjd�|�}|r�||d�<||d<||d<|d|0kr�t}q�q�t}n|jd�}1|1r�t	|1�dkst	|1�d0kr1|j
d$d�|1�nt|||fd�t}
|jd|d|
�}d|kryt}q�tjd�|�}|r�||d�<||d<||d<|d|1kr�t}q�q�t}n|jd�}2|2r� t|||fd�t}
|jd|d|
�}d|kr/ t}q� tjd�|�}|r� ||d�<||d<||d<|d|2kr� t}q� q� t}n|jd�}3|3r{!t|3�d�ks� t|3�d�kr� |j
d$d�|3�nt|||fd�t}
|jd|d|
�}d|kr !t}q{!tjd�|�}|rr!||d�<||d<||d<|d|3krx!t}qx!q{!t}n|jd�}4|4d	kr7"t|||fd�t}
|jd|d|
�}d|kr�!t}q7"tjd�|�}|r."||d�<||d<||d<|d|4kr4"t}q4"q7"t}n|jd�}5|5r(#t|5�d#ksn"t|5�dfkr�"|j
d$d�|5�nt|||fd�t}
|jd|d|
�}d|kr�"t}q(#tjd�|�}|r#||d�<||d<||d<|d|5kr%#t}q%#q(#t}n|jd�}6|6r�#t|||fd�t}
|jd|d|
�}d|kr�#t}q�#tjd�|�}|r�#||d�<||d<||d<|d|6kr�#t}q�#q�#t}n|jd�}7|7r�$t|||fd�t}
|jd|d|
�}d|kr9$t}q�$tjd�|�}|r�$||d�<||d<||d<|d|7kr�$t}q�$q�$t}n|jd�}8|8r�%t	|8�d�ks�$t	|8�d�kr�$|j
d$d�|8�nt|||fd�t}
|jd|d|
�}d|kr*%t}q�%tjd�|�}|r|%||d�<||d<||d<|d|8kr�%t}q�%q�%t}n|jd�}9|9d	krA&t|||fd�t}
|jd|d|
�}d|kr�%t}qA&tjd�|�}|r8&||d�<||d<||d<|d|9kr>&t}q>&qA&t}n|jd�}:|:d	kr�&t|||fd�t}
|jd|d|
�}d|kr�&t}q�&tjd�|�}|r�&||d�<||d<||d<|d|:kr�&t}q�&q�&t}n|jd�};|;d	kr�'t|||fd�t}
|jd|d|
�}d|kr^'t}q�'tjd�|�}|r�'||d�<||d<||d<|d|;kr�'t}q�'q�'t}n|jd�}<|<d	kru(t|||fd�t}
|jd|d|
�}d|kr(t}qu(tjd�|�}|rl(||d�<||d<||d<|d|<krr(t}qr(qu(t}n||d<|S(�s check_bgp_neighbor_af_other RRRRRtabsentRt
advertise_irbtno_uses<advertiseIrb></advertiseIrb>Rs<data/>sI.*<remoteAddress>%s</remoteAddress>\s*<advertiseIrb>(.*)</advertiseIrb>.*it
advertise_arps<advertiseArp></advertiseArp>sK.*<remoteAddress>%s</remoteAddress>\s*.*<advertiseArp>(.*)</advertiseArp>.*tadvertise_remote_nexthops1<advertiseRemoteNexthop></advertiseRemoteNexthop>s9.*<advertiseRemoteNexthop>(.*)</advertiseRemoteNexthop>.*tadvertise_communitys)<advertiseCommunity></advertiseCommunity>s1.*<advertiseCommunity>(.*)</advertiseCommunity>.*tadvertise_ext_communitys/<advertiseExtCommunity></advertiseExtCommunity>s7.*<advertiseExtCommunity>(.*)</advertiseExtCommunity>.*tdiscard_ext_communitys+<discardExtCommunity></discardExtCommunity>s3.*<discardExtCommunity>(.*)</discardExtCommunity>.*tallow_as_loop_enables'<allowAsLoopEnable></allowAsLoopEnable>s/.*<allowAsLoopEnable>(.*)</allowAsLoopEnable>.*tallow_as_loop_limiti
iRs7the value of allow_as_loop_limit %s is out of [1 - 10].s%<allowAsLoopLimit></allowAsLoopLimit>s-.*<allowAsLoopLimit>(.*)</allowAsLoopLimit>.*tkeep_all_routess<keepAllRoutes></keepAllRoutes>s'.*<keepAllRoutes>(.*)</keepAllRoutes>.*tnexthop_configures%<nextHopConfigure></nextHopConfigure>tnulls-.*<nextHopConfigure>(.*)</nextHopConfigure>.*tpreferred_valuei��s6the value of preferred_value %s is out of [0 - 65535].s!<preferredValue></preferredValue>s).*<preferredValue>(.*)</preferredValue>.*tpublic_as_onlys<publicAsOnly></publicAsOnly>s%.*<publicAsOnly>(.*)</publicAsOnly>.*tpublic_as_only_forces'<publicAsOnlyForce></publicAsOnlyForce>s/.*<publicAsOnlyForce>(.*)</publicAsOnlyForce>.*tpublic_as_only_limiteds+<publicAsOnlyLimited></publicAsOnlyLimited>s3.*<publicAsOnlyLimited>(.*)</publicAsOnlyLimited>.*tpublic_as_only_replaces+<publicAsOnlyReplace></publicAsOnlyReplace>s3.*<publicAsOnlyReplace>(.*)</publicAsOnlyReplace>.*tpublic_as_only_skip_peer_ass1<publicAsOnlySkipPeerAs></publicAsOnlySkipPeerAs>s9.*<publicAsOnlySkipPeerAs>(.*)</publicAsOnlySkipPeerAs>.*troute_limits7the value of route_limit %s is out of [1 - 4294967295].s<routeLimit></routeLimit>s!.*<routeLimit>(.*)</routeLimit>.*troute_limit_percentids?Error: The value of route_limit_percent %s is out of [1 - 100].s'<routeLimitPercent></routeLimitPercent>s/.*<routeLimitPercent>(.*)</routeLimitPercent>.*troute_limit_types!<routeLimitType></routeLimitType>s).*<routeLimitType>(.*)</routeLimitType>.*troute_limit_idle_timeouti�sEError: The value of route_limit_idle_timeout %s is out of [1 - 1200].s/<routeLimitIdleTimeout></routeLimitIdleTimeout>s7.*<routeLimitIdleTimeout>(.*)</routeLimitIdleTimeout>.*trt_updt_intervaliXs<Error: The value of rt_updt_interval %s is out of [0 - 600].s!<rtUpdtInterval></rtUpdtInterval>s).*<rtUpdtInterval>(.*)</rtUpdtInterval>.*tredirect_ips<redirectIP></redirectIP>s!.*<redirectIP>(.*)</redirectIP>.*tredirect_ip_vaildations-<redirectIPVaildation></redirectIPVaildation>s5.*<redirectIPVaildation>(.*)</redirectIPVaildation>.*treflect_clients<reflectClient></reflectClient>s'.*<reflectClient>(.*)</reflectClient>.*tsubstitute_as_enables)<substituteAsEnable></substituteAsEnable>s1.*<substituteAsEnable>(.*)</substituteAsEnable>.*timport_rt_policy_namei(s>Error: The len of import_rt_policy_name %s is out of [1 - 40].s)<importRtPolicyName></importRtPolicyName>s1.*<importRtPolicyName>(.*)</importRtPolicyName>.*texport_rt_policy_names>Error: The len of export_rt_policy_name %s is out of [1 - 40].s)<exportRtPolicyName></exportRtPolicyName>s1.*<exportRtPolicyName>(.*)</exportRtPolicyName>.*timport_pref_filt_namei�s?Error: The len of import_pref_filt_name %s is out of [1 - 169].s)<importPrefFiltName></importPrefFiltName>s1.*<importPrefFiltName>(.*)</importPrefFiltName>.*texport_pref_filt_names?Error: The len of export_pref_filt_name %s is out of [1 - 169].s)<exportPrefFiltName></exportPrefFiltName>s1.*<exportPrefFiltName>(.*)</exportPrefFiltName>.*timport_as_path_filterisAError: The value of import_as_path_filter %s is out of [1 - 256].s)<importAsPathFilter></importAsPathFilter>s1.*<importAsPathFilter>(.*)</importAsPathFilter>.*texport_as_path_filtersAError: The value of export_as_path_filter %s is out of [1 - 256].s)<exportAsPathFilter></exportAsPathFilter>s1.*<exportAsPathFilter>(.*)</exportAsPathFilter>.*timport_as_path_name_or_numi3sCError: The len of import_as_path_name_or_num %s is out of [1 - 51].s/<importAsPathNameOrNum></importAsPathNameOrNum>s7.*<importAsPathNameOrNum>(.*)</importAsPathNameOrNum>.*texport_as_path_name_or_numsCError: The len of export_as_path_name_or_num %s is out of [1 - 51].s/<exportAsPathNameOrNum></exportAsPathNameOrNum>s7.*<exportAsPathNameOrNum>(.*)</exportAsPathNameOrNum>.*timport_acl_name_or_numi s?Error: The len of import_acl_name_or_num %s is out of [1 - 32].s)<importAclNameOrNum></importAclNameOrNum>s1.*<importAclNameOrNum>(.*)</importAclNameOrNum>.*texport_acl_name_or_nums?Error: The len of export_acl_name_or_num %s is out of [1 - 32].s)<exportAclNameOrNum></exportAclNameOrNum>s1.*<exportAclNameOrNum>(.*)</exportAclNameOrNum>.*tipprefix_orf_enables'<ipprefixOrfEnable></ipprefixOrfEnable>s/.*<ipprefixOrfEnable>(.*)</ipprefixOrfEnable>.*tis_nonstd_ipprefix_mods+<isNonstdIpprefixMod></isNonstdIpprefixMod>s3.*<isNonstdIpprefixMod>(.*)</isNonstdIpprefixMod>.*torftypes5Error: The value of orftype %s is out of [0 - 65535].s<orftype></orftype>s.*<orftype>(.*)</orftype>.*torf_modes<orfMode></orfMode>s.*<orfMode>(.*)</orfMode>.*t	soostringiis2Error: The len of soostring %s is out of [3 - 21].s<soostring></soostring>s.*<soostring>(.*)</soostring>.*tdefault_rt_adv_enables)<defaultRtAdvEnable></defaultRtAdvEnable>s1.*<defaultRtAdvEnable>(.*)</defaultRtAdvEnable>.*tdefault_rt_adv_policys>Error: The len of default_rt_adv_policy %s is out of [1 - 40].s)<defaultRtAdvPolicy></defaultRtAdvPolicy>s1.*<defaultRtAdvPolicy>(.*)</defaultRtAdvPolicy>.*tdefault_rt_match_modes)<defaultRtMatchMode></defaultRtMatchMode>s1.*<defaultRtMatchMode>(.*)</defaultRtMatchMode>.*t
add_path_modes<addPathMode></addPathMode>s#.*<addPathMode>(.*)</addPathMode>.*tadv_add_path_numii@s;Error: The value of adv_add_path_num %s is out of [2 - 64].s<advAddPathNum></advAddPathNum>s'.*<advAddPathNum>(.*)</advAddPathNum>.*torigin_as_valids<originAsValid></originAsValid>s'.*<originAsValid>(.*)</originAsValid>.*tvpls_enables<vplsEnable></vplsEnable>s!.*<vplsEnable>(.*)</vplsEnable>.*tvpls_ad_disables<vplsAdDisable></vplsAdDisable>s'.*<vplsAdDisable>(.*)</vplsAdDisable>.*tupdate_pkt_standard_compatibles;<updatePktStandardCompatible></updatePktStandardCompatible>sC.*<updatePktStandardCompatible>(.*)</updatePktStandardCompatible>.*(
RRRRR RR!R"R#tintRtexist_nexthop_configureR(=R
RRR$RRRRRR)RR%R&R+R,R-R.R/R0R1R2R3R5R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytcheck_bgp_neighbor_af_otherDsb
	





		



	
		



	
	


	
	


	
	


	
	


	
	


	
$		


	
	


	
		



	
$		


	
	


	
	


	
	


	
	


		


	
		


	
$		


	
	


	
$		


	
$		


	
	


	
	


	
	


	
	


	
$		


	
$		


	
$		


	
$		


	
$		


	
$		


	$		


	$		


	
$		


	
$		


	
	


	
	


	
$		


	
	


	
$		


	
	


	
$		


	
	


	
	


	
$		


	
	


	
	


	
	


		


	
c
Ks||d}|jd}|jd}|jd}t|||ft}|jd|d|�}d|kr|jdd�ng}|}	|d	kr�|d
kr�d}	q;d|}	n�|d
kr�d}	nm|dkr�|d
kr�d}	q;d|}	n?|dkrd}	n*|dkr&d}	n|dkr;d}	n|j|	�|d
krad|}	n
d|}	|j|	�|S(s merge_bgp_peer_af RRRRRs<ok/>Rs,Error: Merge bgp peer address family failed.tipv4unit_public_sipv4-family unicastsipv4-family vpn-instance %st	ipv4multisipv4-family multicasttipv6unisipv6-family unicastsipv6-family vpn-instance %stevpnsl2vpn-family evpntipv4vpnsipv4-family vpnv4tipv6vpnsipv6-family vpnv6speer %s enablespeer %s(RtCE_MERGE_BGP_PEER_AF_HEADERtCE_MERGE_BGP_PEER_AF_TAILRRtappend(
R
RRRRRRR%tcmdstcmd((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytmerge_bgp_peer_af�sB



	
		
			



c
Ksx|d}|jd}|jd}|jd}t|||f}|jd|d|�}d|kr{|jdd�ng}|}	|d	kr�|d
kr�d}	q7d|}	n�|d
kr�d}	nm|dkr�|d
kr�d}	q7d|}	n?|dkr
d}	n*|dkr"d}	n|dkr7d}	n|j|	�|d
kr]d|}	n
d|}	|j|	�|S(s create_bgp_peer_af RRRRRs<ok/>Rs-Error: Create bgp peer address family failed.R_R`sipv4-family unicastsipv4-family vpn-instance %sRasipv4-family multicastRbsipv6-family unicastsipv6-family vpn-instance %sRcsl2vpn-family evpnRdsipv4-family vpnv4Resipv6-family vpnv6speer %s enablespeer %s(RtCE_CREATE_BGP_PEER_AFRRRh(
R
RRRRRRR%RiRj((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytcreate_bgp_peer_afs@



	
		
			



c
Ksx|d}|jd}|jd}|jd}t|||f}|jd|d|�}d|kr{|jdd�ng}|}	|d	kr�|d
kr�d}	q7d|}	n�|d
kr�d}	nm|dkr�|d
kr�d}	q7d|}	n?|dkr
d}	n*|dkr"d}	n|dkr7d}	n|j|	�|d
kr]d|}	n
d|}	|j|	�|S(s delete_bgp_peer_af RRRRRs<ok/>Rs-Error: Delete bgp peer address family failed.R_R`sipv4-family unicastsipv4-family vpn-instance %sRasipv4-family multicastRbsipv6-family unicastsipv6-family vpn-instance %sRcsl2vpn-family evpnRdsipv4-family vpnv4Resipv6-family vpnv6sundo peer %s enablesundo peer %s(RtCE_DELETE_BGP_PEER_AFRRRh(
R
RRRRRRR%RiRj((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytdelete_bgp_peer_af<s@



	
		
			



c<Ks|d}|jd}|jd}|jd}t|||f}g}|jd}|dkr�|d|7}|dkr�d	|}	n
d
|}	|j|	�n|jd}
|
dkr�|d|
7}|
dkr�d
|}	n
d|}	|j|	�n|jd}|dkrX|d|7}|dkr>d|}	n
d|}	|j|	�n|jd}|dkr�|d|7}|dkr�d|}	n
d|}	|j|	�n|jd}
|
dkr|d|
7}|
dkr�d|}	n
d|}	|j|	�n|jd}|dkrf|d|7}|dkrLd|}	n
d|}	|j|	�n|jd}|dkr�|d |7}|dkr�d!|}	n
d"|}	|j|	�n|jd#}|r|d$|7}|dkrd%||f}	n
d"|}	|j|	�n|jd&}|dkrt|d'|7}|dkrZd(|}	n
d)|}	|j|	�n|jd*}|rH|d+|7}|d,kr�d-|}	|j|	�qH|d.kr�d/|}	|j|	�qH|jd0krH|jd,krd1|}	|j|	�qE|jd.krEd2|}	|j|	�qEqHn|jd3}|r�|d4|7}d5||f}	|j|	�n|jd6}|dkr�|d7|7}|dkr�d8|}	n
d9|}	|j|	�n|jd:}|dkr=|d;|7}|dkr#d<|}	n
d=|}	|j|	�n|jd>}|dkr�|d?|7}|dkr}d@|}	n
dA|}	|j|	�n|jdB}|dkrA|dC|7}|dkr�|dkr�dD|}	n|dkr1dE|}	q1n2|dkrdF|}	n|dkr1dG|}	n|j|	�n|jdH}|dkr�|dI|7}|dkr�|dkr�dJ|}	n|dkr�dK|}	q�n2|dkr�dL|}	n|dkr�dM|}	n|j|	�ndN}|dOkrdP}n|jdQ}|rJ|dR|7}dS|||f}	|j|	�n|jdT}|r�|dU|7}dV||||f}	|j|	�n|jdW}|rK|dX|7}|dYkr�dZ||||f}	|j|	�qK|d[krd\||||f}	|j|	�qK|d]krKd^||||f}	|j|	�qKn|jd_}|r�|d`|7}da|||||f}	|j|	�n|jdb}|r�|dc|7}dd||f}	|j|	�n|jde}|dkr	|df|7}n|jdg} | dkr*	|dh| 7}n|jdi}!|!dkr�	|dj|!7}|!dkrj	dk|}	n
dl|}	|j|	�n|jdm}"|"dkr�	|dn|"7}|"dkr�	do|}	n
dp|}	|j|	�n|jdq}#|#r
|dr|#7}ds||#f}	|j|	�n|jdt}$|$r`
|du|$7}dv||$f}	|j|	�n|jdw}%|%r�
|dx|%7}dy||%f}	|j|	�n|jdz}&|&r�
|d{|&7}d|||&f}	|j|	�n|jd}}'|'r#|d~|'7}d||'f}	|j|	�n|jd�}(|(rd|d�|(7}d�||(f}	|j|	�n|jd�})|)r�|d�|)7}d||)f}	|j|	�n|jd�}*|*r�|d�|*7}d�||*f}	|j|	�n|jd�}+|+rF|d�|+7}|+j�r&d�||+f}	nd�||+f}	|j|	�n|jd�},|,r�|d�|,7}|,j�r�d�||,f}	nd�||,f}	|j|	�n|jd�}-|-dkr
|d�|-7}|-dkr�d�|}	n
d�|}	|j|	�n|jd�}.|.dkr�
|d�|.7}|.dkrf
|-dkrL
d�|}	n
d�|}	|j|	�q�
|-dkr
d�|}	n
d�|}	|j|	�n|jd�}/|/r�
|d�|/7}n|jd�}0|0r|d�|07}|-dkr�
d�||0f}	nd�||0f}	|j|	�n|jd�}1|1r^|d�|17}d�||1f}	|j|	�nd�}	|jd�}2|2dkr�|d�|27}|2dkr�|	d�|7}	q�|	d�|7}	n|jd�}3|3r�|d�|37}|	d�|37}	n|jd�}4|4rA|d�|47}|4d�kr%|	d�7}	qA|4d�krA|	d�7}	qAn|	rW|j|	�n|jd�}5|5r�|d�|57}|5d�kr�d�|}	n2|5d�kr�d�|}	n|5d�kr�d�|}	n|j|	�n|jd�}6|6r|d�|67}d�||6f}	|j|	�n|jd�}7|7dkr>|d�|77}n|jd�}8|8dkrh|d�|87}n|jd�}9|9dkr�|d�|97}n|jd�}:|:dkr�|d�|:7}n|t7}|jd|d�|�};d�|;kr�|jd�d��n|S(�s merge_bgp_peer_af_other RRRRR)R*s<advertiseIrb>%s</advertiseIrb>ttruespeer %s advertise irbsundo peer %s advertise irbR+s<advertiseArp>%s</advertiseArp>speer %s advertise arpsundo peer %s advertise arpR,s3<advertiseRemoteNexthop>%s</advertiseRemoteNexthop>s peer %s advertise remote-nexthops%undo peer %s advertise remote-nexthopR-s+<advertiseCommunity>%s</advertiseCommunity>speer %s advertise-communitys undo peer %s advertise-communityR.s1<advertiseExtCommunity>%s</advertiseExtCommunity>speer %s advertise-ext-communitys$undo peer %s advertise-ext-communityR/s-<discardExtCommunity>%s</discardExtCommunity>speer %s discard-ext-communitys"undo peer %s discard-ext-communityR0s)<allowAsLoopEnable>%s</allowAsLoopEnable>speer %s allow-as-loopsundo peer %s allow-as-loopR1s'<allowAsLoopLimit>%s</allowAsLoopLimit>speer %s allow-as-loop %sR2s!<keepAllRoutes>%s</keepAllRoutes>speer %s keep-all-routessundo peer %s keep-all-routesR3s'<nextHopConfigure>%s</nextHopConfigure>tlocalspeer %s next-hop-localt
invariablespeer %s next-hop-invariableR4sundo peer %s next-hop-locals undo peer %s next-hop-invariableR5s#<preferredValue>%s</preferredValue>speer %s preferred-value %sR6s<publicAsOnly>%s</publicAsOnly>speer %s public-as-onlysundo peer %s public-as-onlyR7s)<publicAsOnlyForce>%s</publicAsOnlyForce>speer %s public-as-only forces!undo peer %s public-as-only forceR8s-<publicAsOnlyLimited>%s</publicAsOnlyLimited>speer %s public-as-only limiteds#undo peer %s public-as-only limitedR9s-<publicAsOnlyReplace>%s</publicAsOnlyReplace>s$peer %s public-as-only force replaces&peer %s public-as-only limited replaces)undo peer %s public-as-only force replaces+undo peer %s public-as-only limited replaceR:s3<publicAsOnlySkipPeerAs>%s</publicAsOnlySkipPeerAs>s,peer %s public-as-only force include-peer-ass.peer %s public-as-only limited include-peer-ass1undo peer %s public-as-only force include-peer-ass3undo peer %s public-as-only limited include-peer-assroute-limitRcs	mac-limitR;s<routeLimit>%s</routeLimit>s
peer %s %s %sR<s)<routeLimitPercent>%s</routeLimitPercent>speer %s %s %s %sR=s#<routeLimitType>%s</routeLimitType>t	alertOnlyspeer %s %s %s %s alert-onlytidleForeverspeer %s %s %s %s idle-forevertidleTimeoutspeer %s %s %s %s idle-timeoutR>s1<routeLimitIdleTimeout>%s</routeLimitIdleTimeout>s peer %s %s %s %s idle-timeout %sR?s#<rtUpdtInterval>%s</rtUpdtInterval>s peer %s route-update-interval %sR@s<redirectIP>%s</redirectIP>RAs/<redirectIPVaildation>%s</redirectIPVaildation>RBs!<reflectClient>%s</reflectClient>speer %s reflect-clientsundo peer %s reflect-clientRCs+<substituteAsEnable>%s</substituteAsEnable>speer %s substitute-assundo peer %s substitute-asRDs+<importRtPolicyName>%s</importRtPolicyName>speer %s route-policy %s importREs+<exportRtPolicyName>%s</exportRtPolicyName>speer %s route-policy %s exportRFs+<importPrefFiltName>%s</importPrefFiltName>speer %s ip-prefix %s importRGs+<exportPrefFiltName>%s</exportPrefFiltName>speer %s ip-prefix %s exportRHs+<importAsPathFilter>%s</importAsPathFilter>s peer %s as-path-filter %s importRIs+<exportAsPathFilter>%s</exportAsPathFilter>s peer %s as-path-filter %s exportRJs1<importAsPathNameOrNum>%s</importAsPathNameOrNum>RKs1<exportAsPathNameOrNum>%s</exportAsPathNameOrNum>RLs+<importAclNameOrNum>%s</importAclNameOrNum>speer %s filter-policy %s imports(peer %s filter-policy acl-name %s importRMs+<exportAclNameOrNum>%s</exportAclNameOrNum>speer %s filter-policy %s exports(peer %s filter-policy acl-name %s exportRNs)<ipprefixOrfEnable>%s</ipprefixOrfEnable>s*peer %s capability-advertise orf ip-prefixs/undo peer %s capability-advertise orf ip-prefixROs-<isNonstdIpprefixMod>%s</isNonstdIpprefixMod>s8peer %s capability-advertise orf non-standard-compatibles=undo peer %s capability-advertise orf non-standard-compatibles peer %s capability-advertise orfs%undo peer %s capability-advertise orfRPs<orftype>%s</orftype>RQs<orfMode>%s</orfMode>s-peer %s capability-advertise orf ip-prefix %ss2undo peer %s capability-advertise orf ip-prefix %sRRs<soostring>%s</soostring>speer %s soo %stRSs+<defaultRtAdvEnable>%s</defaultRtAdvEnable>speer %s default-route-advertises$undo peer %s default-route-advertiseRTs+<defaultRtAdvPolicy>%s</defaultRtAdvPolicy>s route-policy %sRUs+<defaultRtMatchMode>%s</defaultRtMatchMode>tmatchalls conditional-route-match-alltmatchanys conditional-route-match-anyRVs<addPathMode>%s</addPathMode>treceives-peer %s capability-advertise add-path receivetsends*peer %s capability-advertise add-path sendtboths*peer %s capability-advertise add-path bothRWs!<advAddPathNum>%s</advAddPathNum>s)peer %s advertise add-path path-number %sRXs!<originAsValid>%s</originAsValid>RYs<vplsEnable>%s</vplsEnable>RZs!<vplsAdDisable>%s</vplsAdDisable>R[s=<updatePktStandardCompatible>%s</updatePktStandardCompatible>Rs<ok/>Rs2Error: Merge bgp peer address family other failed.(RRfRhR]tisdigitRgRR(<R
RRRRRRRiR)RjR+R,R-R.R/R0R1R2R3R5R6R7R8R9R:troute_limit_signR;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R%((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytmerge_bgp_peer_af_otheris�



















































	












































(t__name__t
__module__t__doc__RRR'R^RkRmRoR~(((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pyR
�s	
	
	8	�����	.	-	-cDsCstdtdddgdd�dtddd	t�d
tdddd
dddgd	t�dtddd	t�dtddddddddg�dtddddddddg�dtddddddddg�dtddddddddg�dtddddddddg�dtddddddddg�dtddddddddg�dtdd�dtddddddddg�dtddd d!g�d"tdd�d#tddddddddg�d$tddddddddg�d%tddddddddg�d&tddddddddg�d'tddddddddg�d(tdd�d)tdd�d*tdd+d,d-d.g�d/tdd�d0tdd�d1tddddddddg�d2tddddddddg�d3tddddddddg�d4tddddddddg�d5tdd�d6tdd�d7tdd�d8tdd�d9tdd�d:tdd�d;tdd�d<tdd�d=tdd�d>tdd�d?tddddddddg�d@tddddddddg�dAtdd�dBtdddCdDdEg�dFtdd�dGtddddddddg�dHtdd�dItdddJdKg�dLtdddCdDdEg�dMtdd�dNtddddddddg�dOtddddddddg�dPtddddddddg�dQtddddddddg��5}|jt�tdR|dSt�}t}t�}t�}t�}g}|jd}|jd}|jd
}	|jd}
|jd}|jd}|jd}
|jd}|jd}|jd}|jd}|jd}|jd}|jd}|jd"}|jd#}|jd$}|jd%}|jd&}|jd'}|jd(}|jd)}|jd*}|jd/}|jd0}|jd1} |jd2}!|jd3}"|jd4}#|jd5}$|jd6}%|jd7}&|jd8}'|jd9}(|jd:})|jd;}*|jd<}+|jd=},|jd>}-|jd?}.|jd@}/|jdA}0|jdB}1|jdF}2|jdG}3|jdH}4|jdI}5|jdL}6|jdM}7|jdN}8|jdO}9|jdP}:|jdQ};t�}<||d<|r�||d<n|	r�|	|d
<n|
r�|
|d<n|dkr�||d<n|dkr�||d<n|
dkr	|
|d<n|dkr,	||d<n|dkrE	||d<n|dkr^	||d<n|dkrw	||d<n|r�	||d<n|dkr�	||d<n|r�	||d<n|r�	||d"<n|dkr�	||d#<n|dkr�	||d$<n|dkr
||d%<n|dkr-
||d&<n|dkrF
||d'<n|rY
||d(<n|rl
||d)<n|r
||d*<n|r�
||d/<n|r�
||d0<n| dkr�
| |d1<n|!dkr�
|!|d2<n|"dkr�
|"|d3<n|#dkr	|#|d4<n|$r|$|d5<n|%r/|%|d6<n|&rB|&|d7<n|'rU|'|d8<n|(rh|(|d9<n|)r{|)|d:<n|*r�|*|d;<n|+r�|+|d<<n|,r�|,|d=<n|-r�|-|d><n|.dkr�|.|d?<n|/dkr�|/|d@<n|0r|0|dA<n|1r|1|dB<n|2r2|2|dF<n|3dkrK|3|dG<n|4r^|4|dH<n|5rq|5|dI<n|6r�|6|dL<n|7r�|7|dM<n|8dkr�|8|dN<n|9dkr�|9|dO<n|:dkr�|:|dP<n|;dkr�|;|dQ<n|<s
|jdTdU�n|<j	dV|�}=|<j
dV|�}>t�}?x+|=D]#}@|@dWkrH
|=|@|?|@<qH
qH
W|?r�
|?|dX<nt�}?x+|>D]#}@|@dWkr�
|>|@|?|@<q�
q�
W|?r�
|?|dY<n|dkr�|=dWrfd|=j�kr-|<jdV|�}At}xT|AD]}@|j
|@�qWqf|<jdV|�}At}x|AD]}@|j
|@�qLWn|>dWr�|<jdV|�}At}x|AD]}@|j
|@�q�Wq�nP|=dWr�|<jdV|�}At}x|AD]}@|j
|@�q�Wn|>dWr�n|<j	dV|�}=t�}Bx+|=D]#}@|@dWkr|=|@|B|@<qqW|BrX|B|dX<n|<j
dV|�}>t�}Bx+|>D]#}@|@dWkrz|>|@|B|@<qzqzW|Br�|B|dY<n||kr�t}t�}nt�}C||CdZ<||Cd[<||Cd\<||Cd]<||Cd^<|j|C�d_S(`s main RtchoicesRR(tdefaultRttypetstrtrequiredRR_RaRdRbReRcRR)R*RptfalseR+R,R-R.R/R0R1R2R3R4RqRrR5R6R7R8R9R:R;R<R=tnoparameterRsRtRuR>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRyRzR{RRRSRTRURwRxRVRWRXRYRZR[t
argument_spectsupports_check_modeRsError: Init module failed.RRsbgp neighbor afsbgp neighbor af othertproposedtexistingtchangedt	end_statetupdatesN(RR!tupdateRRRRR
RR'R^tkeysRkRhRmR~Rotlistt	exit_json(DR�RR�R�R�R�R�RRRRR)R+R,R-R.R/R0R1R2R3R5R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[tce_bgp_peer_af_objtbgp_peer_af_rsttbgp_peer_af_other_rstt	exist_tmptitemRjtend_tmptresults((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pytmain4	sD$$$$$$$$$$$$$$$$$$$$$$$'
			



















































	




















































					

	









			

			

	




t__main__(tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNR"tansible.module_utils.basicRt+ansible.module_utils.network.cloudengine.ceRRRR	RR RfRgRlRntobjectR
R�R(((sZ/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp_neighbor_af.pyt<module>s6


�+#$"�������F	�>

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]