Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/module_utils/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyo

�
�Udac@s�ddlmZddlmZddlmZddlmZddlm	Z	ddl
mZddlZddl
Z
dZd	Ziid
d6dd
gd6d6idd6d6idd6d6idd6d6idd6d6id
d6d6idd6d6idd6d6id
d6d6idd6d6idd6d6idd6d6idd6d6idd6d6idd6d 6idd6d!6idd6d"6idd6d#6id
d6d$6id
d6d%6id
d6d&6Zi
ied'6d(6ied'6d)6idd6d*6idd6d+6id,d-6d,d.gd/6d06id1d6ed-6d26idd6d3d4d5gd/6d66id1d6ed-6d76idd6d8d-6d96idd6d:d-6d;6Zeje�d<�Zd=efd>��YZd?efd@��YZdS(Ai����(tdefaultdict(tVersion(tdict_transformations(tSequence(t
list_dict_str(tKubernetesRawModuleNtv1alpha3skubevirt.iotdictttypet
definitiontinlinetaliasestresource_definitiontstrtmemorytmemory_limittintt	cpu_corestlisttdiskstlabelst
interfacestmachine_typetcloud_init_nocloudt
bootloadertsmbios_uuidt	cpu_modeltheadlesst
hugepage_sizettabletst	cpu_limitt
cpu_sharestcpu_featurestaffinityt
anti_affinityt
node_affinitytrequiredtnamet	namespacethostnamet	subdomaintpresenttdefaulttabsenttchoiceststatetbooltforcetjsontmergesstrategic-merget
merge_typetwaitixtwait_timeoutit
wait_sleepcCs
tt�S(sG
    This function create dictionary, with defaults to dictionary.
    (Rtvirtdict(((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyR6GstKubeAPIVersioncBsVeZejdej�Zdd�Zd�Zd�Z	d�Z
d�Zd�ZRS(s(\d+ | [a-z]+)cCs|r|j|�ndS(N(tparse(tselftvstring((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt__init__QscCs%||_g|jj|�D]}|r|^q}xBt|�D]4\}}yt|�||<WqAtk
rtqAXqAWdj|�}|}t|�d
ks�|ddks�t|dt�r�t|��nt|�dkr|ddks	t|d	t�rt|��n||_	dS(NsFversion '{0}' does not conform to kubernetes api versioning guidelinesiiitvitalphatbetai(ii(R=R>(
R:tcomponent_retsplitt	enumerateRt
ValueErrortformattlent
isinstancetversion(R9R:txt
componentstitobjterrmsgtc((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyR8Us	+
66cCs|jS(N(R:(R9((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt__str__hscCsdjt|��S(NsKubeAPIVersion ('{0}')(RCR
(R9((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt__repr__kscCs�t|t�rt|�}n|j}|j}x<||fD].}t|�dkr=|jddg�q=q=W||krdS||kr�dS||kr�dSdS(Nitzetai'ii����i(RER
R7RFRDtextend(R9tothertmyvertothervertver((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt_cmpns		cCs
|j|�S(N(RU(R9RQ((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt__cmp__�sN(
t__name__t
__module__tretcompiletVERBOSER?tNoneR;R8RMRNRURV(((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyR7Ns				tKubeVirtRawModulecBs�eZd�Zed��Zd�Zd�Zd�Zd�Zd�Z	d�Z
dd�Zdd	�Z
d
�Zd�ZRS(
cOstt|�j||�dS(N(tsuperR]R;(R9targstkwargs((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyR;�scCsr|sif}nt|t�s-|f}ni}x&t|�D]}tj||�}q@Wtj||�}|S(sYThis function merges a base dictionary with one or more other dictionaries.
        The base dictionary takes precedence when there is a key collision.
        merging_dicts can be a dict or a list or tuple of dicts.  In the latter case, the
        dictionaries at the front of the list have higher precedence over the ones at the end.
        (RERtreversedRt
dict_merge(t	base_dictt
merging_dictstnew_dicttd((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pytmerge_dicts�scCs@y"|jd|jd|j�}Wntk
r;d}nX|S(NR%R&(tgetR%R&t	ExceptionR\(R9tresourcetexisting((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pytget_resource�s
"

cCs�|s
dSg|d<x�|D]�}t�}|jd�|dd<i|jd�jd�d6ii|jd�jd�d6d6d	6|d
d<|jd�|d
d<|dj|�|dd
d
dds�g|dd
d
dd<n|dd
d
ddji|jd�d6|jdidd6�d6�|dd
ds`g|dd
d<n|dd
djii|jd�d6d6|jd�d6�qWdS(s�
        Takes datavoulmes parameter of Ansible and create kubevirt API datavolumesTemplateSpec
        structure from it
        NtdataVolumeTemplatesR%tmetadatatpvctaccessModeststoragetrequestst	resourcestspectsourcettemplatetdomaintdevicesRtdisktvirtiotbustvolumest
dataVolume(R6Rhtappend(R9tdatavolumesRttdvtdvt((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt_define_datavolumes�s4

	,cCs�|r�|dsg|d<n|dddsDg|ddd<n|djidd6|d6�|dddjidd6idd	6d
6�ndS(s�
        Takes the user's cloud_init_nocloud parameter and fill it in kubevirt
        API strucuture. The name for disk is hardcoded to ansiblecloudinitdisk.
        R|RwRxRtansiblecloudinitdiskR%tcloudInitNoCloudRzR{RyN(R~(R9Rt
template_spec((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt_define_cloud_init�s

c	Csa|rR|rRd|krRtj|d�}x#|D]}|dd|d<q3Wn|r]g}xA|D]9}|j|jtd�|j�D��|d��qeWd|ddkr�g|ddd<n|dddj|�g}xC|D];}|d}|d|d<|j|j||d��q�Wd|krIg|d<n|dj|�nd	S(
s�
        Takes interfaces parameter of Ansible and create kubevirt API interfaces
        and networks strucutre out from it.
        Rtnetworksitnetworkcss-|]#\}}|dkr||fVqdS(R�N((t.0tkR<((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pys	<genexpr>�sRwRxR%N(tcopytdeepcopyR~RgRtitemsRP(	R9RR�tdefaultsRftspec_interfacesRIt
spec_networkstnet((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt_define_interfaces�s(

1

!
cCsa|rR|rRd|krRtj|d�}x#|D]}|dd|d<q3Wn|r]g}xA|D]9}|j|jtd�|j�D��|d��qeWd|ddkr�g|ddd<n|dddj|�g}xC|D];}|d}|d|d<|j|j||d��q�Wd|krIg|d<n|dj|�nd	S(
s{
        Takes disks parameter of Ansible and create kubevirt API disks and
        volumes strucutre out from it.
        RR|itvolumecss-|]#\}}|dkr||fVqdS(R�N((R�R�R<((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pys	<genexpr>sRwRxR%N(R�R�R~RgRR�RP(R9RR�R�Rft
spec_diskstspec_volumesR�((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt
_define_diskss(

1

!
cCs�|jjjd|dt�}|s@|jdj|t��nt|dd�dt�}x-|D]%}t|j	�tt
�krb|SqbW|jdjtg|D]}|j	^q��tt
��dS(Ntkindtgroups"Failed to find resource {0} in {1}tkeycSs
t|j�S(N(R7tapi_version(tr((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt<lambda>)streverses:API versions {0} are too recent. Max supported is {1}/{2}.(tclientRstsearcht	API_GROUPtfailRCtsortedtTrueR7R�tMAX_SUPPORTED_API_VERSIONR
(R9R�tresultstsrR�((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pytfind_supported_resource%s
c"	CsK|j�|_|jdg�}|jd�}|jd�}|jd�}	|jd�}
|jd�}|jd�}|jd�}
|jd	�}|jd
�}|jd�}|jd�}|jd
�}|jd�}|jd�}|jd�}|jd�}|jd�}|jd�}|jd�}|jd�}|jd�}|jd�}|d}|r�||dddd<n|r�||dddd<n|r�||dddd<n|rx|D]}d|d<q�W||dd d!<n|r'||dddd<n|dk	rL||ddd"d#<n|dk	rm||ddd$<n|	dk	r�|	|ddd%<n|
r�|
|ddd&<n|r�|j||d'd�|d'd<n|r�||dd(d<n|rii|6|dd)d
<n|r,||dd)d*<n|dk	rN||dd d+<n|sZ|r�|pc|}|rrd,nd-} x�|jd.g�D]�}!|d| d/s�g|d| d/<n|d| d/ji|!jd0�d06ii|!jd1�jd2�d36d46|!jd5�d66d76�q�Wx�|jd8g�D]v}!|d| d9s\g|d| d9<n|d| d9jii|!jd1�jd2�d36d46|!jd5�d66�q/Wn|r�x�|jd.g�D]v}!|dd:d/s�g|dd:d/<n|dd:d/ji|!jd0�d06i|!jd1�jd2�d36d;6�q�Wx�|jd8g�D]k}!|dd:d9d<s�g|dd:d9d<<n|dd:d9d<ji|!jd1�jd2�d36�qRWn|r�||d<n|r�||d<n|j|||�|j||�|j|||�|j	|
|d�|j||j
d=�S(>NRRRRRR RRRRRRRRRRRRR#R!R"R'R(RtRwRsRrtcputlimitsttabletRRxtinputst	hugepagestpageSizetfeaturestcorestmodelRntmachinetfirmwaretuuidtautoattachGraphicsDevicetpodAffinitytpodAntiAffinitytsoftt/preferredDuringSchedulingIgnoredDuringExecutiontweightttermtmatch_expressionstmatchExpressionst
labelSelectorttopology_keyttopologyKeytpodAffinityTermthardt.requiredDuringSchedulingIgnoredDuringExecutiontnodeAffinityt
preferencetnodeSelectorTermsi(tget_api_clientR�RhR\RgR~R�R�R�R�tresource_definitions("R9R�R	RvtparamsR�RRRRRR RRRRRRRRRRRRR#tvm_affinitytvm_anti_affinityR'R(R�R�tvms_affinityt
affinity_nameR!((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt_construct_vm_definition0s�

%%$

cCsI|j||||j|�}|j|�}|j||�}||fS(N(R�R�R�tset_defaults(R9R�R	RvR�Rj((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pytconstruct_vm_definition�scCsv|j||||�}|j||ddt�}||d<|jd�|dd<|jd�|dd<||fS(Nt
apiVersionR�R�R%RnR&(R�t
find_resourceR�Rh(R9R�R	RvR�Rj((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt construct_vm_template_definition�s
cCs1|j|�}|j||�}|j||�S(s Module execution (R�R�tperform_action(R9R�R	Rj((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pytexecute_crud�sN(RWRXR;tstaticmethodRgRlR�R�R�R�R�R\R�R�R�R�(((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyR]�s			0				�	(tcollectionsRtdistutils.versionRtansible.module_utils.commonRt/ansible.module_utils.common._collections_compatRtansible.module_utils.k8s.commonRtansible.module_utils.k8s.rawRR�RYR�R�tVM_SPEC_DEF_ARG_SPECR�tFalsetVM_COMMON_ARG_SPECtupdateR6R7R](((sA/usr/lib/python2.7/site-packages/ansible/module_utils/kubevirt.pyt<module>sh
	7

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