[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.129.70.153: ~ $
�
xdcc@s�ddlZddlZddlZddlZddlZddlZdZdZd�Zd�Z	d�Z
d�Zdefd	��YZ
ed
kr�e�j�Ze
dejdejd
ejdejdej�Zej�Zeje�ndS(i����Ns
/etc/netplan/s90-vz-cCs�tjd�}|jdddddd�|jd
ddd�|jdddddt�|jdddd�|jdddddd�|S(su
	Init argparse
		- "device" is mandatory for all commands.
		- "ip" is used for gateway \ route related operations
	sNetplan configuration editors-as--actiontactiontstoretchoicestget_dhcptrestarttset_dhcptset_gatewaytset_ipt	set_routes-is--ips-ds--devicetrequireds-ps--protos-os	--optionstdefaultt(RRRRRR(targparsetArgumentParsertadd_argumenttTrue(tparser((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pytgetArgParserscCsbd}t|�dkr-dt|�k}n't|�dkrTdt|�k}n|r^tStS(Nit.it:(tNonetinttlistRtFalse(taddrtprototres((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pytis_ip_proto%scCs�d}d}tjd|j��}|j�dkrIt|d�}ntjd|d�}|j�dkr~|d}n|d}|||fS(sz
	Split route string into elemenets
	 "X.X.X.X/Z=X.X.X.Ym100" -> "X.X.X.X/Z X.X.X.Y 100"
	Return tuple (to, via, metric)
	s0.0.0.0Rtmiit=i(tretsplittstript__len__R(troutetviatmetricRtto((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pytsplit_route0s

cCs;tg|jd�D]!}tt|��jd�^q�S(sF
	Convert netmask to CIDR notation. Netplan does not accept netmasks
	Rt1(tsumRtbinRtcount(tnetmasktx((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pytnetmask_to_cidrBstnpConfigcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(cKsm|d|_|d|_|d|_|d|_|d|_i}tt|jd|_|j�dS(NtdeviceRtipRtoptionss.yaml(	t_ifnamet_actiont_ipt_protot_optionstNETPLAN_CFG_DIRtNETPLAN_CFG_PREFIXtfilenamet_npConfig__load(tselftkwargstconfig((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__init__Is




cCs,iidd6ii|j6d6d6|_dS(s
		Generate skeleton config
		itversiont	ethernetstnetworkN(R2R=(R;((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__generate_skeleton_configUscCsWd|jdd|jkr=g|jdd|jd<n|jdd|jdS(s+
		Retrieve pointer to the route subtree
		troutesRAR@(R=R2(R;((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__get_route_tree[scCsP|jdd|j}xB|jj�D]1}d|kr(d|krY|jd�qYq(q(Wx�|jj�D]�}d|kr�qmn|j�}|jd�r�i|d6dd6d	d
6}||kr|j|�qn(d}t|d�r�d
}n|||<|dkrmidd
6dd6dd6}||krH|j|�qHqmqmWdS(s:
		set_gateway action implementation for netplan config
		RAR@tremoveRCsdefault-routesR#ttrueson-linkR
R%tgateway4itgateway6s169.254.0.1s0.0.0.0tlinktscopeN(	R=R2R4Rtpopt_npConfig__get_route_treet_npConfig__checkFeaturetappendR(R;tifcfgR0t
route_treeR"tgw_proto((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt
__set_gatewayfs*	
cCsr|j�|jdd|j}xIt|j�D]8}|dkrQd|d<n|dkr2d|d<q2q2WdS(	s�
		set_dhcp action implementation for netplan config
		TODO: its necessary to decide what to do with this function.
		Original shell script removes configuration entirely and rewrites it
		when dhcp is set. While it should be reasonable just to remove relevant
		protocol (ipv4/ipv6) configuration and set dhcp.
		For the sake of compatibility, function replicates existing behavior,
		wipes configuration file and just sets dhcp.
		RAR@t4tyestdhcp4t6tdhcp6N(t#_npConfig__generate_skeleton_configR=R2RR5(R;ROR((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt
__set_dhcp�s


cCs!|j�}x|jj�D]�}|dkrex�|D])}t|dd�r5|j|�q5q5Wq|dkr�x�|D])}t|dd�rx|j|�qxqxWqt|�\}}}i|d6|d6}|r�||d<n|dkr�d	|d
<n||kr|j|�qqWdS(s8
		set_route action implementation for netplan config
		RER%itremove6iR#R$s169.254.0.1RIRJN(RLR4RRRER&RN(R;RPR0R"R%R#R$((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__set_route�s$



cCs|j�|jdd|j}x�|jj�D]�}|jdks2|jdkr\q2nd|krug|d<ndt|�kr�t|d�r�|d7}q|d	7}nVt|d�r|jd�\}}d
|krt|�}|dt|�}qn|dj	|�q2Wt
|d<t
|d<xI|jj�D]8}|d
kr^t|d<n|dkr?tt
d<q?q?WdS(s�
		set_ip action implementation for netplan config
		IMPORTANT: on each use old config is flushed. That is to ensure
		backward-compatibility. prl_nettool supplies full list of IPs on each
		set_ip invocation
		RAR@RERZt	addressest/is/32s/64RRURWtdhcpN(RXR=R2R4RRRR-tstrRNRR6Rtfcfg(R;ROR0RR+topt((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__set_ip�s0






cCs�tjdj�dtjdtj�}|j�}|jrid|jt|d�t|d�fGHtS|t|d�kr�tStS(sI
		check if current version of netplan supports default-routes feature
		snetplan infotstdouttstderrs.netplan info failed [%d].
stdout:%s
stderr:%s
ii(	t
subprocesstPopenRtPIPEtcommunicatet
returncodeR_RR(R;tfeaturetptout((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__checkFeature�s'	&cCsotjdj�dtjdtj�}|j�}|jrhd|jt|d�t|d�fGHn|jS(s6
		restart action implementation for netplan config
		s
netplan applyRcRds/netplan apply failed [%d].
stdout:%s
stderr:%s
ii(ReRfRRgRhRiR_(R;RkRl((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt	__restart�s'	)cCsotjdj�dtjdtj�}|j�}|jrhd|jt|d�t|d�fGHn|jS(s6
		restart action implementation for netplan config
		snetplan generateRcRds2netplan generate failed [%d].
stdout:%s
stderr:%s
ii(ReRfRRgRhRiR_(R;RkRl((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt
__generate�s'	)cCs_|jdd|j}|jdkr0d}nd}||krW||rPdSdSndSd	S(
s7
		get_dhcp action implementation for netplan config
		RAR@iRWRUiiiN(R=R2R5(R;ROtdhcpvp((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt
__get_dhcps	
cCs_tjj|j�rQt|j��(}tj|j�dtj�|_	WdQXn
|j
�dS(sU
		Read configuration file from disk. If it is missing - construct skeleton config
		tLoaderN(tostpathtexistsR9topentyamltloadtreadt
SafeLoaderR=RX(R;tf((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__loads*c	Cs�t|jdd��&}|jtj|jdt��WdQXtjj	|j�rptj
|j|jd�ntj
|jd|j�dS(s
		Write config to the disk
		s.tmptwtdefault_flow_styleNs.bkp(RvR9twriteRwtdumpR=RRsRtRutrename(R;R{((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt__save)s
%cCs�|jdkr|j�S|jdkr2|j�S|jdkrN|j�nT|jdkrj|j�n8|jdkr�|j�n|jdkr�|j�n|j�|j�dS(s)
		Perform action over the config file
		RRRRRRi(	R3t_npConfig__get_dhcpt_npConfig__restartt_npConfig__set_dhcpt_npConfig__set_routet_npConfig__set_ipt_npConfig__set_gatewayt_npConfig__savet_npConfig__generate(R;((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pytperform_action3s







(t__name__t
__module__R>RXRLR�R�R�R�RMR�R�R�R:R�R�(((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyR.Hs				#			(		
	
		
	
t__main__RR/R0RR1(RRwRsRRetsysR7R8RRR&R-tobjectR.R�t
parse_argstargsRR/R0RR1tnpcfgR�Rtexit(((s./usr/lib/vz-tools/tools/scripts/netplan-cfg.pyt<module>s&				�

Filemanager

Name Type Size Permission Actions
debian-get_dhcp.sh File 1.32 KB 0755
debian-netplan_restart.sh File 439 B 0755
debian-restart.sh File 1.34 KB 0755
debian-set_dhcp.sh File 1.62 KB 0755
debian-set_gateway.sh File 1.85 KB 0755
debian-set_ip.sh File 4.35 KB 0755
debian-set_route.sh File 2.06 KB 0755
functions File 20.34 KB 0755
netplan-cfg.py File 8.63 KB 0755
netplan-cfg.pyc File 10.45 KB 0644
netplan-cfg.pyo File 10.45 KB 0644
nm-get_dhcp.sh File 834 B 0755
nm-restart.sh File 488 B 0755
nm-set_dhcp.sh File 1.23 KB 0755
nm-set_dns.sh File 1.71 KB 0755
nm-set_gateway.sh File 1.11 KB 0755
nm-set_ip.sh File 3.02 KB 0755
nm-set_route.sh File 1.12 KB 0755
redhat-get_dhcp.sh File 1.58 KB 0755
redhat-restart.sh File 429 B 0755
redhat-set_dhcp.sh File 2 KB 0755
redhat-set_gateway.sh File 1.54 KB 0755
redhat-set_ip.sh File 5.36 KB 0755
redhat-set_route.sh File 1.33 KB 0755
set_dns.sh File 4.03 KB 0755
suse-get_dhcp.sh File 1 KB 0755
suse-restart.sh File 255 B 0755
suse-set_dhcp.sh File 1.7 KB 0755
suse-set_gateway.sh File 970 B 0755
suse-set_ip.sh File 3.01 KB 0755
suse-set_route.sh File 1.12 KB 0755