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.pyc

�
�Udac@s4idd6dgd6dd6ZdZdZdZd	d
lZd	dlmZd	dlmZm	Z	m
Z
d
ZdZdZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd�Zd �Z d!�Z!d"e"fd#��YZ#d$�Z$e%d%kr0e$�nd
S(&s1.1tmetadata_versiontpreviewtstatust	communitytsupported_bysn
---
module: ce_bgp
version_added: "2.4"
short_description: Manages BGP configuration on HUAWEI CloudEngine switches.
description:
    - Manages BGP 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:
    state:
        description:
            - Specify desired state of the resource.
        default: present
        choices: ['present','absent']
    as_number:
        description:
            - Local AS number.
              The value is a string of 1 to 11 characters.
    graceful_restart:
        description:
            - Enable GR of the BGP speaker in the specified address family, peer address, or peer group.
        default: no_use
        choices: ['no_use','true','false']
    time_wait_for_rib:
        description:
            - Period of waiting for the End-Of-RIB flag.
              The value is an integer ranging from 3 to 3000. The default value is 600.
    as_path_limit:
        description:
            - Maximum number of AS numbers in the AS_Path attribute. The default value is 255.
    check_first_as:
        description:
            - Check the first AS in the AS_Path of the update messages from EBGP peers.
        default: no_use
        choices: ['no_use','true','false']
    confed_id_number:
        description:
            - Confederation ID.
              The value is a string of 1 to 11 characters.
    confed_nonstanded:
        description:
            - Configure the device to be compatible with devices in a nonstandard confederation.
        default: no_use
        choices: ['no_use','true','false']
    bgp_rid_auto_sel:
        description:
            - The function to automatically select router IDs for all VPN BGP instances is enabled.
        default: no_use
        choices: ['no_use','true','false']
    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']
    memory_limit:
        description:
            - Support BGP RIB memory protection.
        default: no_use
        choices: ['no_use','true','false']
    gr_peer_reset:
        description:
            - Peer disconnection through GR.
        default: no_use
        choices: ['no_use','true','false']
    is_shutdown:
        description:
            - Interrupt BGP all neighbor.
        default: no_use
        choices: ['no_use','true','false']
    suppress_interval:
        description:
            - Suppress interval.
    hold_interval:
        description:
            - Hold interval.
    clear_interval:
        description:
            - Clear interval.
    confed_peer_as_num:
        description:
            - Confederation AS number, in two-byte or four-byte format.
              The value is a string of 1 to 11 characters.
    vrf_name:
        description:
            - Name of a BGP instance. The name is a case-sensitive string of characters.
    vrf_rid_auto_sel:
        description:
            - If the value is true, VPN BGP instances are enabled to automatically select router IDs.
              If the value is false, VPN BGP instances are disabled from automatically selecting router IDs.
        default: no_use
        choices: ['no_use','true','false']
    router_id:
        description:
            - ID of a router that is in IPv4 address format.
    keepalive_time:
        description:
            - If the value of a timer changes, the BGP peer relationship between the routers is disconnected.
              The value is an integer ranging from 0 to 21845. The default value is 60.
    hold_time:
        description:
            - Hold time, in seconds. The value of the hold time can be 0 or range from 3 to 65535.
    min_hold_time:
        description:
            - Min hold time, in seconds. The value of the hold time can be 0 or range from 20 to 65535.
    conn_retry_time:
        description:
            - ConnectRetry interval. The value is an integer, in seconds. The default value is 32s.
    ebgp_if_sensitive:
        description:
            - If the value is true, After the fast EBGP interface awareness function is enabled, EBGP sessions on
              an interface are deleted immediately when the interface goes Down.
              If the value is  false, After the fast EBGP interface awareness function is enabled, EBGP sessions
              on an interface are not deleted immediately when the interface goes Down.
        default: no_use
        choices: ['no_use','true','false']
    default_af_type:
        description:
            - Type of a created address family, which can be IPv4 unicast or IPv6 unicast.
              The default type is IPv4 unicast.
        choices: ['ipv4uni','ipv6uni']
s�

- name: CloudEngine BGP 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: "Enable BGP"
    ce_bgp:
      state: present
      as_number: 100
      confed_id_number: 250
      provider: "{{ cli }}"

  - name: "Disable BGP"
    ce_bgp:
      state: absent
      as_number: 100
      confed_id_number: 250
      provider: "{{ cli }}"

  - name: "Create confederation peer AS num"
    ce_bgp:
      state: present
      confed_peer_as_num: 260
      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: {"as_number": "100", state": "present"}
existing:
    description: k/v pairs of existing aaa server
    returned: always
    type: dict
    sample: {"bgp_enable": [["100"], ["true"]]}
end_state:
    description: k/v pairs of aaa params after module execution
    returned: always
    type: dict
    sample: {"bgp_enable": [["100"], ["true"]]}
updates:
    description: command sent to the device
    returned: always
    type: list
    sample: ["bgp 100"]
i����N(t
AnsibleModule(t
get_nc_configt
set_nc_configtce_argument_spectsuccesstfaileds-
    <filter type="subtree">
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpSite>
            <bgpEnable></bgpEnable>
            <asNumber></asNumber>
          </bgpSite>
        </bgpcomm>
      </bgp>
    </filter>
s�
    <filter type="subtree">
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpSite>
sD
          </bgpSite>
        </bgpcomm>
      </bgp>
    </filter>
s�
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpSite operation="merge">
sD
          </bgpSite>
        </bgpcomm>
      </bgp>
    </config>
sh
    <filter type="subtree">
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpConfedPeerAss>
            <bgpConfedPeerAs>
              <confedPeerAsNum></confedPeerAsNum>
            </bgpConfedPeerAs>
          </bgpConfedPeerAss>
        </bgpcomm>
      </bgp>
    </filter>
sm
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpConfedPeerAss>
            <bgpConfedPeerAs operation="merge">
              <confedPeerAsNum>%s</confedPeerAsNum>
            </bgpConfedPeerAs>
          </bgpConfedPeerAss>
        </bgpcomm>
      </bgp>
    </config>
sn
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpConfedPeerAss>
            <bgpConfedPeerAs operation="create">
              <confedPeerAsNum>%s</confedPeerAsNum>
            </bgpConfedPeerAs>
          </bgpConfedPeerAss>
        </bgpcomm>
      </bgp>
    </config>
sn
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpConfedPeerAss>
            <bgpConfedPeerAs operation="delete">
              <confedPeerAsNum>%s</confedPeerAsNum>
            </bgpConfedPeerAs>
          </bgpConfedPeerAss>
        </bgpcomm>
      </bgp>
    </config>
s4
    <filter type="subtree">
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf>
              <vrfName></vrfName>
            </bgpVrf>
          </bgpVrfs>
        </bgpcomm>
      </bgp>
    </filter>
s�
    <filter type="subtree">
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf>
sZ
            </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 operation="merge">
sZ
            </bgpVrf>
          </bgpVrfs>
        </bgpcomm>
      </bgp>
    </config>
s�
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf operation="create">
s�
    <config>
      <bgp xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
        <bgpcomm>
          <bgpVrfs>
            <bgpVrf operation="delete">
cKs�|d}|j�jd�}t|�dkr5tSxOtd�D]A}t||�||<||dkr||dkrqBtSqBWtS(s check_ip_addr tipaddrt.ii�i(tstriptsplittlentFAILEDtrangetinttSUCCESS(tkwargsRtaddrti((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pyt
check_ip_addr�s
 cKsk|d}t}|jd}|rgt|�dksGt|�dkr^|jdd|�qgt}n|S(s check_bgp_enable_args tmodulet	as_numberiitmsgs2Error: The len of as_number %s is out of [1 - 11].(tFalsetparamsRt	fail_jsontTrue(RRtneed_cfgR((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcheck_bgp_enable_args�s

$		cKsk|d}t}|jd}|rgt|�dksGt|�dkr^|jdd|�qgt}n|S(s check_bgp_confed_args Rtconfed_peer_as_numiiRs;Error: The len of confed_peer_as_num %s is out of [1 - 11].(RRRRR(RRRR!((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcheck_bgp_confed_args�s

$		tBgpcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(s Manages BGP configuration cKs'|d}|d}t||�}|S(s netconf_get_config Rtconf_str(R(tselfRRR$txml_str((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytnetconf_get_config�s

cKs'|d}|d}t||�}|S(s netconf_set_config RR$(R(R%RRR$R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytnetconf_set_config�s

cKsw|d}|jd}t�}t}|jd}|dkr�tdt}|jd|d|�}d|krzt}q�tjd|�}	|	r�|	|d<|	d	|kr�t}q�q�t}n|jd
}
|
r�t	|
�dks�t	|
�dkr|j
d
d|
�q�tdt}|jd|d|�}|dkr�d|krVt}q�tjd|�}	|	r�|	|d
<|	d	|
kr�t}q�q�t}q�d|kr�q�tjd|�}	|	r�|	|d
<|	d	|
kr�t}q�q�n|jd}|rt	|�dks$t	|�dkr;|j
d
d|�qtdt}|jd|d|�}|dkr�d|kr�t}qtjd|�}	|	r�|	|d<|	d	|kr�t}q�qt}qd|kr�qtjd|�}	|	r|	|d<|	d	|krt}qqn|jd}|dkr�tdt}|jd|d|�}d|krmt}q�tjd|�}	|	r�|	|d<|	d	|kr�t}q�q�t}n|jd}
|
r�t|
�dks�t|
�d	kr|j
d
d|
�q�tdt}|jd|d|�}|dkr�d|krIt}q�tjd|�}	|	r�|	|d<|	d	|
kr�t}q�q�t}q�d|kr�q�tjd|�}	|	r�|	|d<|	d	|
kr�t}q�q�n|jd }|dkr{td!t}|jd|d|�}d|kr4t}q{tjd"|�}	|	rr|	|d <|	d	|krxt}qxq{t}n|jd#}|dkrtd$t}|jd|d|�}d|kr�t}qtjd%|�}	|	r
|	|d#<|	d	|krt}qqt}n|jd&}|dkr�td't}|jd|d|�}d|krjt}q�tjd(|�}	|	r�|	|d&<|	d	|kr�t}q�q�t}n|jd)}|dkrLtd*t}|jd|d|�}d|krt}qLtjd+|�}	|	rC|	|d)<|	d	|krIt}qIqLt}n|jd,}|dkr�td-t}|jd|d|�}d|kr�t}q�tjd.|�}	|	r�|	|d,<|	d	|kr�t}q�q�t}n|jd/}|dkr�td0t}|jd|d|�}d|kr;t}q�tjd1|�}	|	ry|	|d/<|	d	|krt}qq�t}n|jd2}|jd3}|jd4}|r�	|s�|r�|j
d
d5�nt	|�d6ks�t	|�dkr	|j
d
d7|�q�	td8t}|jd|d|�}|dkr�	d|krR	t}q�	tjd9|�}	|	r�	|	|d2<|	d	|kr�	t}q�	q�	t}q�	d|kr�	q�	tjd9|�}	|	r�	|	|d2<|	d	|kr�	t}q�	q�	n|r)|s�	|r
|j
d
d5�nt	|�d6ks4
t	|�dkrK
|j
d
d:|�q)td;t}|jd|d|�}|dkr�
d|kr�
t}q&tjd<|�}	|	r�
|	|d3<|	d	|kr�
t}q�
q&t}q)d|kr�
q)tjd<|�}	|	r)|	|d3<|	d	|kr&t}q&q)n|ri|s=|rP|j
d
d5�nt	|�d6kstt	|�dkr�|j
d
d=|�qitd>t}|jd|d|�}|dkrd|kr�t}qftjd?|�}	|	r|	|d4<|	d	|krt}qqft}qid|kr(qitjd?|�}	|	ri|	|d4<|	d	|krft}qfqin||d@<|S(As check_bgp_enable_other_args Rtstatetgraceful_restarttno_uses#<gracefulRestart></gracefulRestart>R$s<data/>s+.*<gracefulRestart>(.*)</gracefulRestart>.*ittime_wait_for_ribi�iRs5Error: The time_wait_for_rib %s is out of [3 - 3000].s!<timeWaitForRib></timeWaitForRib>tpresents).*<timeWaitForRib>(.*)</timeWaitForRib>.*t
as_path_limiti�is1Error: The as_path_limit %s is out of [1 - 2000].s<asPathLimit></asPathLimit>s#.*<asPathLimit>(.*)</asPathLimit>.*tcheck_first_ass<checkFirstAs></checkFirstAs>s%.*<checkFirstAs>(.*)</checkFirstAs>.*tconfed_id_numberis9Error: The len of confed_id_number %s is out of [1 - 11].s!<confedIdNumber></confedIdNumber>s).*<confedIdNumber>(.*)</confedIdNumber>.*tconfed_nonstandeds%<confedNonstanded></confedNonstanded>s-.*<confedNonstanded>(.*)</confedNonstanded>.*tbgp_rid_auto_sels<bgpRidAutoSel></bgpRidAutoSel>s'.*<bgpRidAutoSel>(.*)</bgpRidAutoSel>.*tkeep_all_routess<keepAllRoutes></keepAllRoutes>s'.*<keepAllRoutes>(.*)</keepAllRoutes>.*tmemory_limits<memoryLimit></memoryLimit>s#.*<memoryLimit>(.*)</memoryLimit>.*t
gr_peer_resets<grPeerReset></grPeerReset>s#.*<grPeerReset>(.*)</grPeerReset>.*tis_shutdowns<isShutdown></isShutdown>s!.*<isShutdown>(.*)</isShutdown>.*tsuppress_intervalt
hold_intervaltclear_intervalsTError: Please input suppress_interval hold_interval clear_interval at the same time.i��s6Error: The suppress_interval %s is out of [1 - 65535].s%<suppressInterval></suppressInterval>s-.*<suppressInterval>(.*)</suppressInterval>.*s2Error: The hold_interval %s is out of [1 - 65535].s<holdInterval></holdInterval>s%.*<holdInterval>(.*)</holdInterval>.*s3Error: The clear_interval %s is out of [1 - 65535].s<clearInterval></clearInterval>s'.*<clearInterval>(.*)</clearInterval>.*R(RtdictRtCE_GET_BGP_ENABLE_HEADERtCE_GET_BGP_ENABLE_TAILR'RtretfindallRRR(R%RRR)tresultRR*R$trecv_xmltre_findR,R.R/R0R1R2R3R4R5R6R7R8R9((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcheck_bgp_enable_other_args�s&

	
	
	
$			
	

$			
	

	
	
$			
	

	
	
	
	
	
	
	
	
	
	
	
	


	
$			
	
	
$			
	
	
$			
	

c
Ks7|d}|jd}t}|jd}|r3t|�dksTt|�dkrk|jdd|�ntdt}|jd|d	|�}|}|d
kr�d|kr�t}q0tj	d|�}	|	r�||	kr�t}q�q0t}q3d|krq3tj	d|�}	|	r3||	kr0t}q0q3n|S(
s check_bgp_instance_args RR)tvrf_nameiiRs*the len of vrf_name %s is out of [1 - 31].s<vrfName></vrfName>R$R-s<data/>s.*<vrfName>(.*)</vrfName>.*(
RRRRtCE_GET_BGP_INSTANCE_HEADERtCE_GET_BGP_INSTANCE_TAILR'RR=R>(
R%RRR)RRCR$R@tcheck_vrf_nameRA((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcheck_bgp_instance_argsss8


$			c
Ks�	|d}|jd}t�}t}|jd}|jd}|rq|s_|jdd�ntd|�tkr�|jdd|�ntd	|d
t}|jd|d|�}	|dkr!d
|	kr�t	}qnt
jd|	�}
|
r|
|d<|
d|krt	}qqnt	}qqd
|	kr0qqt
jd|	�}
|
rq|
|d<|
d|krnt	}qnqqn|jd}|dkr<|s�|jdd�ntd	|dt}|jd|d|�}	|dkr<d
|	kr�t	}q9t
jd|	�}
|
r0|
|d<|
d|kr6t	}q6q9t	}q<n|jd}|r�|sh|jdd�nt|�dks�t|�dkr�|jdd|�q�td	|dt}|jd|d|�}	|dkr9d
|	kr�t	}q�t
jd|	�}
|
r0|
|d<|
d|kr6t	}q6q�t	}q�d
|	krHq�t
jd|	�}
|
r�|
|d<|
d|kr�t	}q�q�n|jd}
|
r�|s�|jdd�nt|
�dks�t|
�dkr�|jdd|
�q�td	|dt}|jd|d|�}	|dkr�d
|	kr?t	}q�t
jd|	�}
|
r}|
|d<|
d|
kr�t	}q�q�t	}q�d
|	kr�q�t
jd|	�}
|
r�|
|d<|
d|
kr�t	}q�q�n|jd}|r5|s|jdd�nt|�dkrOt|�dks8t|�d krO|jdd!|�q5td	|d"t}|jd|d|�}	|dkr�d
|	kr�t	}q2t
jd#|	�}
|
r�|
|d<|
d|kr�t	}q�q2t	}q5d
|	kr�q5t
jd#|	�}
|
r5|
|d<|
d|kr2t	}q2q5n|jd$}|r�|sa|jdd�nt|�dks�t|�d%kr�|jdd&|�q�td	|d't}|jd|d|�}	|dkr2d
|	kr�t	}qt
jd(|	�}
|
r)|
|d$<|
d|kr/t	}q/qt	}q�d
|	krAq�t
jd(|	�}
|
r�|
|d$<|
d|krt	}qq�n|jd)}|dkr�|s�|jdd�ntd	|d*t}|jd|d|�}	|dkrJd
|	krt	}q�t
jd+|	�}
|
rA|
|d)<|
d|krGt	}qGq�t	}q�d
|	krYq�t
jd+|	�}
|
r�|
|d)<|
d|kr�t	}q�q�n|jd,}|r�	|s�|jdd�ntd	|d-t}|jd|d|�}	|dkr\	d
|	kr	t	}q�	t
jd.|	�}
|
rS	|
|d,<|
d|krY	t	}qY	q�	t	}q�	d
|	krk	q�	t
jd.|	�}
|
r�	|
|d,<|
d|kr�	t	}q�	q�	n||d/<|S(0s check_bgp_instance_other_args RR)RCt	router_idRsError: Please input vrf_name.Rs#Error: The router_id %s is invalid.s<vrfName>%s</vrfName>s<routerId></routerId>R$R-s<data/>s.*<routerId>(.*)</routerId>.*itvrf_rid_auto_selR+s<vrfRidAutoSel></vrfRidAutoSel>s'.*<vrfRidAutoSel>(.*)</vrfRidAutoSel>.*tkeepalive_timeiUUs(keepalive_time %s is out of [0 - 21845].s<keepaliveTime></keepaliveTime>s'.*<keepaliveTime>(.*)</keepaliveTime>.*t	hold_timei��is#hold_time %s is out of [3 - 65535].s<holdTime></holdTime>s.*<holdTime>(.*)</holdTime>.*t
min_hold_timeis.min_hold_time %s is out of [0, or 20 - 65535].s<minHoldTime></minHoldTime>s#.*<minHoldTime>(.*)</minHoldTime>.*tconn_retry_timeis)conn_retry_time %s is out of [1 - 65535].s<connRetryTime></connRetryTime>s'.*<connRetryTime>(.*)</connRetryTime>.*tebgp_if_sensitives#<ebgpIfSensitive></ebgpIfSensitive>s+.*<ebgpIfSensitive>(.*)</ebgpIfSensitive>.*tdefault_af_types<defaultAfType></defaultAfType>s'.*<defaultAfType>(.*)</defaultAfType>.*R(
RR:RRRRRDRER'RR=R>R(R%RRR)R?RRCRHR$R@RARIRJRKRLRMRNRO((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcheck_bgp_instance_other_args�s�

	

	
		
	

	
	

	
$			
	

	
$			
	

	
6			
	

	
$			
	

	
	
	

	
	
	

cKse|d}t}|jd|d|�}t�}d|krA|Stjd|�}|r]|S|SdS(s get_bgp_enable RR$s<data/>s=.*<bgpEnable>(.*)</bgpEnable>.*\s*<asNumber>(.*)</asNumber>.*N(tCE_GET_BGP_ENABLER'tlistR=R>(R%RRR$R&R?RA((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytget_bgp_enable�s
	c	Ks�|d}t}|jd}|dkr6|d7}n
|d7}|jd}|rd|d|7}n|t7}|jd|d|�}d	|kr�|jd
d�ng}|dkr�d|}n
d
|}|j|�|S(s merge_bgp_enable RR)R-s<bgpEnable>true</bgpEnable>s<bgpEnable>false</bgpEnable>Rs<asNumber>%s</asNumber>R$s<ok/>RsError: Merge bgp enable failed.sbgp %ssundo bgp %s(tCE_MERGE_BGP_ENABLE_HEADERRtCE_MERGE_BGP_ENABLE_TAILR(Rtappend(	R%RRR$R)RR@tcmdstcmd((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytmerge_bgp_enable�s&








cKs(|d}t}g}|jd}|dkrh|d|7}|dkrRd}nd}|j|�n|jd}|r�|d	|7}d
|}|j|�n|jd}|r�|d|7}d
|}|j|�n|jd}	|	dkr0|d|	7}|	dkrd}nd}|j|�n|jd}
|
rk|d|
7}d|
}|j|�n|jd}|dkr�|d|7}|dkr�d}nd}|j|�n|jd}|dkr|d|7}|dkr�d}nd}|j|�n|jd}
|
dkra|d|
7}|
dkrKd}nd }|j|�n|jd!}|dkr�|d"|7}|dkr�d#}nd$}|j|�n|jd%}|dkr|d&|7}|dkr�d'}nd(}|j|�n|jd)}|dkrW|d*|7}|dkrAd+}nd,}|j|�n|jd-}|jd.}|jd/}|r�|d0|7}d1|||f}|j|�n|r�|d2|7}n|r�|d3|7}n|t7}|jd|d4|�}d5|kr$|jd6d7�n|S(8s merge_bgp_enable_other RR*R+s%<gracefulRestart>%s</gracefulRestart>ttruesgraceful-restartsundo graceful-restartR,s#<timeWaitForRib>%s</timeWaitForRib>s&graceful-restart timer wait-for-rib %sR.s<asPathLimit>%s</asPathLimit>sas-path-limit %sR/s<checkFirstAs>%s</checkFirstAs>scheck-first-assundo check-first-asR0s#<confedIdNumber>%s</confedIdNumber>sconfederation id %sR1s'<confedNonstanded>%s</confedNonstanded>sconfederation nonstandardsundo confederation nonstandardR2s!<bgpRidAutoSel>%s</bgpRidAutoSel>s"router-id vpn-instance auto-selectsundo router-idR3s!<keepAllRoutes>%s</keepAllRoutes>skeep-all-routessundo keep-all-routesR4s<memoryLimit>%s</memoryLimit>sprefix memory-limitsundo prefix memory-limitR5s<grPeerReset>%s</grPeerReset>sgraceful-restart peer-resets undo graceful-restart peer-resetR6s<isShutdown>%s</isShutdown>tshutdowns
undo shutdownR7R8R9s'<suppressInterval>%s</suppressInterval>sYnexthop recursive-lookup restrain suppress-interval %s hold-interval %s clear-interval %ss<holdInterval>%s</holdInterval>s!<clearInterval>%s</clearInterval>R$s<ok/>RsError: Merge bgp enable failed.(RTRRVRUR(R(R%RRR$RWR*RXR,R.R/R0R1R2R3R4R5R6R7R8R9R@((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytmerge_bgp_enable_others�

	




	


	
	
	
	
	
	



cKs|d}t}g}|jd}|dkrh|d|7}|dkrRd}nd}|j|�n|jd}|r�|d	7}d
}|j|�n|jd}|r�|d7}d
}|j|�n|jd}	|	dkr |d|	7}|	dkr
d}nd}|j|�n|jd}
|jd}|
rg|rg|d7}d}|j|�n|jd}|dkr�|d|7}|dkr�d}nd}|j|�n|jd}
|
dkr|d|
7}|
dkr�d}nd}|j|�n|jd}|dkr]|d|7}|dkrGd }nd!}|j|�n|jd"}|dkr�|d#|7}|dkr�d$}nd%}|j|�n|jd&}|dkr|d'|7}|dkr�d(}nd)}|j|�n|jd*}|dkrS|d+|7}|dkr=d,}nd-}|j|�n|jd.}|jd/}|jd0}|r�|d17}d2}|j|�n|r�|d37}n|r�|d47}n|t7}|jd|d5|�}d6|kr|jd7d8�n|S(9s delete bgp enable other args RR*R+s%<gracefulRestart>%s</gracefulRestart>RZsgraceful-restartsundo graceful-restartR,s$<timeWaitForRib>600</timeWaitForRib>s(undo graceful-restart timer wait-for-ribR.s<asPathLimit>255</asPathLimit>sundo as-path-limitR/s<checkFirstAs>%s</checkFirstAs>scheck-first-assundo check-first-asR0R!s!<confedIdNumber></confedIdNumber>sundo confederation idR1s'<confedNonstanded>%s</confedNonstanded>sconfederation nonstandardsundo confederation nonstandardR2s!<bgpRidAutoSel>%s</bgpRidAutoSel>s"router-id vpn-instance auto-selectsundo router-idR3s!<keepAllRoutes>%s</keepAllRoutes>skeep-all-routessundo keep-all-routesR4s<memoryLimit>%s</memoryLimit>sprefix memory-limitsundo prefix memory-limitR5s<grPeerReset>%s</grPeerReset>sgraceful-restart peer-resets undo graceful-restart peer-resetR6s<isShutdown>%s</isShutdown>R[s
undo shutdownR7R8R9s'<suppressInterval>60</suppressInterval>sUundo nexthop recursive-lookup restrain suppress-interval hold-interval clear-intervals <holdInterval>120</holdInterval>s"<clearInterval>600</clearInterval>R$s<ok/>Rs Error: Delete bgp enable failed.(RTRRVRUR(R(R%RRR$RWR*RXR,R.R/R0R!R1R2R3R4R5R6R7R8R9R@((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytdelete_bgp_enable_other�s�

	




	




	
	
	
	
	
	






cKse|d}t}|jd|d|�}t�}d|krA|Stjd|�}|r]|S|SdS(s get_bgp_confed_peer_as RR$s<data/>s+.*<confedPeerAsNum>(.*)</confedPeerAsNum>.*N(tCE_GET_BGP_CONFED_PEER_ASR'RRR=R>(R%RRR$R&R?RA((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytget_bgp_confed_peer_as!s
	cKsy|d}|jd}t|}|jd|d|�}d|krX|jdd�ng}d|}|j|�|S(s merge_bgp_confed_peer_as RR!R$s<ok/>Rs'Error: Merge bgp confed peer as failed.sconfederation peer-as %s(RtCE_MERGE_BGP_CONFED_PEER_ASR(RRV(R%RRR!R$R@RWRX((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytmerge_bgp_confed_peer_as6s




cKsy|d}|jd}t|}|jd|d|�}d|krX|jdd�ng}d|}|j|�|S(s create_bgp_confed_peer_as RR!R$s<ok/>Rs(Error: Create bgp confed peer as failed.sconfederation peer-as %s(RtCE_CREATE_BGP_CONFED_PEER_ASR(RRV(R%RRR!R$R@RWRX((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcreate_bgp_confed_peer_asIs




cKsy|d}|jd}t|}|jd|d|�}d|krX|jdd�ng}d|}|j|�|S(s delete_bgp_confed_peer_as RR!R$s<ok/>Rs(Error: Delete bgp confed peer as failed.sundo confederation peer-as %s(RtCE_DELETE_BGP_CONFED_PEER_ASR(RRV(R%RRR!R$R@RWRX((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytdelete_bgp_confed_peer_as\s




cKse|d}t}|jd|d|�}t�}d|krA|Stjd|�}|r]|S|SdS(s get_bgp_instance RR$s<data/>s.*<vrfName>(.*)</vrfName>.*N(tCE_GET_BGP_INSTANCER'RRR=R>(R%RRR$R&R?RA((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytget_bgp_instanceos
	cKs�|d}t}|jd}|d|7}|t7}|jd|d|�}d|krl|jdd�ng}|dkr�d	|}|j|�n|S(
s merge_bgp_instance RRCs<vrfName>%s</vrfName>R$s<ok/>Rs!Error: Merge bgp instance failed.t_public_sipv4-family vpn-instance %s(tCE_MERGE_BGP_INSTANCE_HEADERRtCE_MERGE_BGP_INSTANCE_TAILR(RRV(R%RRR$RCR@RWRX((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytmerge_bgp_instance�s



cKs�|d}t}g}|jd}|rJ|dkr9|S|d|7}n|t7}|jd|d|�}d|kr�|jdd�n|dkr�d	|}|j|�n|S(
s create_bgp_instance RRCRhs<vrfName>%s</vrfName>R$s<ok/>Rs"Error: Create bgp instance failed.sipv4-family vpn-instance %s(tCE_CREATE_BGP_INSTANCE_HEADERRtCE_CREATE_BGP_INSTANCE_TAILR(RRV(R%RRR$RWRCR@RX((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytcreate_bgp_instance�s 



cKs�|d}t}|jd}|r4|d|7}n|t7}|jd|d|�}d|kru|jdd�ng}|dkr�d	|}|j|�n|S(
s delete_bgp_instance RRCs<vrfName>%s</vrfName>R$s<ok/>Rs"Error: Delete bgp instance failed.Rhs undo ipv4-family vpn-instance %s(tCE_DELETE_BGP_INSTANCE_HEADERRtCE_DELETE_BGP_INSTANCE_TAILR(RRV(R%RRR$RCR@RWRX((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytdelete_bgp_instance�s



cKs�|d}t}|jd}|d|7}g}|jd}|r�|d|7}|dkr�|dkr�d|}|j|�q�q�n|jd	}|d
kr�|d|7}|dkr�d
}nd}|j|�n|jd}	|	r|d|	7}d|	}|j|�n|jd}
|
rR|d|
7}d|
}|j|�n|jd}|r�|d|7}d|}|j|�n|jd}|r�|d|7}d|}|j|�n|jd}
|
r|d|
7}d|
}|j|�n|jd}|d
krU|d|7}|dkr?d }nd!}|j|�n|t7}|jd|d"|�}d#|kr�|jd$d%�n|S(&s merge_bgp_instance_other RRCs<vrfName>%s</vrfName>ROs!<defaultAfType>%s</defaultAfType>Rhtipv6unisipv6-family vpn-instance %sRIR+s!<vrfRidAutoSel>%s</vrfRidAutoSel>RZsrouter-id auto-selectsundo router-id auto-selectRHs<routerId>%s</routerId>srouter-id %sRJs!<keepaliveTime>%s</keepaliveTime>stimer keepalive %sRKs<holdTime>%s</holdTime>s
timer hold %sRLs<minHoldTime>%s</minHoldTime>stimer min-holdtime %sRMs!<connRetryTime>%s</connRetryTime>stimer connect-retry %sRNs%<ebgpIfSensitive>%s</ebgpIfSensitive>sebgp-interface-sensitivesundo ebgp-interface-sensitiveR$s<ok/>Rs'Error: Merge bgp instance other failed.(RiRRVRjR(R(R%RRR$RCRWRORXRIRHRJRKRLRMRNR@((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytmerge_bgp_instance_other�sp




	










	
cKs�|d}t}|jd}|d|7}g}|jd}|rh|d|7}d}|j|�n|jd}|dkr�|d	|7}d
}|j|�n|jd}	|	r�|d|	7}d
}|j|�n|jd}
|
r|d|
7}d}|j|�n|jd}|rJ|d|7}d}|j|�n|jd}|r�|d|7}d}|j|�n|jd}
|
dkr�|d|
7}d}|j|�n|jd}|r.|d|7}|dkrT|dkrd|}|j|�q+d|}|j|�qTn&|dkrTd|}|j|�n|t7}|jd|d |�}d!|kr�|jd"d#�n|S($s  delete_bgp_instance_other_comm RRCs<vrfName>%s</vrfName>RHs<routerId>%s</routerId>sundo router-idRIR+s!<vrfRidAutoSel>%s</vrfRidAutoSel>s'undo router-id vpn-instance auto-selectRJs!<keepaliveTime>%s</keepaliveTime>sundo timer keepaliveRKs<holdTime>%s</holdTime>sundo timer holdRLs<minHoldTime>%s</minHoldTime>sundo timer min-holdtimeRMs!<connRetryTime>%s</connRetryTime>sundo timer connect-retryRNs%<ebgpIfSensitive>%s</ebgpIfSensitive>sundo ebgp-interface-sensitiveROs!<defaultAfType>%s</defaultAfType>RhRrs undo ipv6-family vpn-instance %ss undo ipv4-family vpn-instance %sR$s<ok/>Rs8Error: Delete common vpn bgp instance other args failed.(RoRRVRpR(R(R%RRR$RCRWRHRXRIRJRKRLRMRNROR@((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytdelete_bgp_instance_other_comm!st













	
cKs�|d}t}|jd}|d|7}g}|jd}|rd|d7}d}|j|�n|jd}|dkr�|d	d
7}d}|j|�n|jd}	|	r�|d
d7}d}|j|�n|jd}
|
r|dd7}d}|j|�n|jd}|rF|dd7}d}|j|�n|jd}|r}|dd7}d}|j|�n|jd}
|
dkr�|dd7}d}|j|�n|jd }|r*|d!d"7}|d#krP|d$kr
d%|}|j|�q'd&|}|j|�qPn&|d#krPd&|}|j|�n|t7}|jd|d'|�}d(|kr�|jd)d*�n|S(+s delete_instance_other_public RRCs<vrfName>%s</vrfName>RHs<routerId></routerId>sundo router-idRIR+s!<vrfRidAutoSel>%s</vrfRidAutoSel>tfalses'undo router-id vpn-instance auto-selectRJs!<keepaliveTime>%s</keepaliveTime>t60sundo timer keepaliveRKs<holdTime>%s</holdTime>t180sundo timer holdRLs<minHoldTime>%s</minHoldTime>t0sundo timer min-holdtimeRMs!<connRetryTime>%s</connRetryTime>t32sundo timer connect-retryRNs%<ebgpIfSensitive>%s</ebgpIfSensitive>RZsebgp-interface-sensitiveROs!<defaultAfType>%s</defaultAfType>tipv4uniRhRrs undo ipv6-family vpn-instance %ss undo ipv4-family vpn-instance %sR$s<ok/>Rs9Error: Delete default vpn bgp instance other args failed.(RiRRVRjR(R(R%RRR$RCRWRHRXRIRJRKRLRMRNROR@((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytdelete_instance_other_publicwst














	
(t__name__t
__module__t__doc__R'R(RBRGRPRSRYR\R]R_RaRcReRgRkRnRqRsRtR{(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pyR#�s.	
	
	��	+	�B		!	�	�									T	Vc7;Cs�
tdtdddgdd�dtdd�d	tdddd
dd
ddg�d
tdd�dtdd�dtdddd
dd
ddg�dtdd�dtdddd
dd
ddg�dtdddd
dd
ddg�dtdddd
dd
ddg�dtdddd
dd
ddg�dtdddd
dd
ddg�dtdddd
dd
ddg�dtdd�dtdd�dtdd�dtdd�dtdd�dtdddd
dd
ddg�dtdd�dtdd�dtdd�d tdd�d!tdd�d"tdddd
dd
ddg�d#tdddd$d%g��}|jt�td&|d't�}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!}|jd"}|jd#} t�}!|!s6|jd(d)�n||d<|rS||d<n|	d
krl|	|d	<n|
r|
|d
<n|r�||d<n|d
kr�||d<n|
r�|
|d<n|d
kr�||d<n|d
kr�||d<n|d
kr	||d<n|d
kr"||d<n|d
kr;||d<n|d
krT||d<n|rg||d<n|rz||d<n|r�||d<n|r�||d<n|r�||d<n|r�||d<n|d
kr�||d<n|r�||d<n|r||d<n|r||d <n|r+||d!<n|d
krD||d"<n| rW| |d#<nt	d*|�}"|!j
d*|�}#td*|�}$|!jd*|�}%|!j
d*|�}&|!jd*|�}'|'|d+<|"r_|!jd*|�}(|(|d,<|(r|(d-d.})|(d-d-}*nd:})d:}*|dkr�d|f}+|+|(krAq@|*dkrp|)|krp|jd(d/|)�q@|!jd*|�},t}x�|,D]}-|j|-�q�Wn�|#d0s@|$s@|&d0s@|%r�nt|*dkr�ne|*dkr,|)|kr,|!jd*|�},t}x2|,D]}-|j|-�qWn|jd(d/|)�|!jd*|�}.|.|d,<nt�}/x+|#D]#}-|-d0kro|#|-|/|-<qoqoW|/r�|/|d1<n|#d0r1	|dkr�|!jd*|�},t}xT|,D]}-|j|-�q�Wq1	|!jd*|�},t}x|,D]}-|j|-�q	Wn|!j
d*|�}#t�}0x+|#D]#}-|-d0krS	|#|-|0|-<qS	qS	W|0r�	|0|d1<n|$r�
|!jd*|�}1|1|d2<|}2|dkrT
t|1�d-kr
|!jd*|�},t}xc|,D]}-|j|-�q�	Wq�
|2|1kr�
|!jd*|�},t}x|,D]}-|j|-�q7
Wq�
nZt|1�d-kri
nE|2|1krx
n6|!jd*|�},t}x|,D]}-|j|-�q�
W|!jd*|�}3|3|d2<n|%r�| d%kr�|}4|dkrbt|'�d-kr+|!jd*|�},t}|j|,�q�|4|'kr�|!jd*|�},t}|j|,�q�q�|&d0s�|d3kr�t|'�d-kr�q�|4|'kr�q�|!jd*|�},t}x|,D]}-|j|-�q�Wq�q�nt�}/x+|&D]#}-|-d0kr�|&|-|/|-<q�q�W|/r%|/|d4<n|&d0r�|dkrt|!jd*|�},t}x�|,D]}-|j|-�qZWq�|d3kr�|!jd*|�},t}xT|,D]}-|j|-�q�Wq�|!j d*|�},t}x|,D]}-|j|-�q�Wn|!j
d*|�}&|!jd*|�}5|5|d+<t�}0x+|&D]#}-|-d0kr0
|&|-|0|-<q0
q0
W|0rj
|0|d4<n||kr�
t}t!�}nt�}6||6d5<||6d6<||6d7<||6d8<||6d9<|j"|6�d:S(;s main R)tchoicesR-tabsenttdefaultRttypetstrR*R+RZRuR,R.R/R0R1R2R3R4R5R6R7R8R9R!RCRIRHRJRKRLRMRNRORzRrt
argument_spectsupports_check_modeRsError: Init module failed.Rsbgp instances
bgp enableiis,Error: BGP is already running. The AS is %s.Rsbgp enable othersconfederation peer asRhsbgp instance othertproposedtexistingtchangedt	end_statetupdatesN(#R:tupdateRRRRRR#RR RBR"RGRPRgRStNoneRYRVR\R]R_RRcRaReRntextendRkRqRsR{RtRRt	exit_json(7R�RR�R�R�R�R�R)RR*R,R.R/R0R1R2R3R4R5R6R7R8R9R!RHRCRIRJRKRLRMRNROt
ce_bgp_objtneed_bgp_enabletneed_bgp_enable_other_rsttneed_bgp_confedtneed_bgp_instancetneed_bgp_instance_other_rsttrouter_id_existtbgp_enable_existtasnumber_existtbgpenable_existtbgp_enable_newRXtitemtbgp_enable_endt	exist_tmptend_tmptconfed_existt
confed_newt
confed_endt
router_id_newt
router_id_endtresults((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pytmain�s$$$$$$$$$$
			

























	

























				

	

	
	




			








	



		

		
	

	




t__main__(&tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNR=tansible.module_utils.basicRt+ansible.module_utils.network.cloudengine.ceRRRRRRQR;R<RTRUR^R`RbRdRfRDRERiRjRlRmRoRpRR R"tobjectR#R�R|(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/cloudengine/ce_bgp.pyt<module>sT


�%							������	�K

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