
    [                     R    d Z dZddlmZmZmZ ddlmZmZmZ  G d de          Z	dS )	zE
This module provides convinent fns related to ManagedMethodExecutor
zVMware, Inc.    )VmomiSupportSoapAdaptervmodl   )SoapStubAdapterBaseSerializeToUnicodeDeserializec                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )MMESoapStubAdapterz' Managed method executor stub adapter  c                 X    |j         }t          j        | |j                   || _        d S )N)version)_stubr   __init__r   mme)selfr   stubs      E/usr/lib/python3/dist-packages/pyVmomi/ManagedMethodExecutorHelper.pyr   zMMESoapStubAdapter.__init__$   s,    Yd"4>>>>dhhh    c                 X    t          j        | |           | j        dd         | _        d S )Nr   )r   ComputeVersionInfo	versionId)r   r   s     r   r   z%MMESoapStubAdapter.ComputeVersionInfo,   s+    ,T7;;;~ad+dnnnr   c                 <   d }|j         rt          j        j        j                                        }t          |j         |          D ]^\  }}|Wt          ||| j                  }t          j        j                            |j	        |          }|
                    |           _|                                }	| j        }
t          j        |j                  dz   |j	        z   }| j                            |	|
||          }|                     ||j                  S )N)valinfor   )namer   .)moidr   methodargument)paramsr   ReflectManagedMethodExecutorSoapArgumentArrayzipr   r   r   append_GetMoIdr   r   GetVmodlNametyper   ExecuteSoap_DeserializeExecutorResultresult)r   mor   args
methodArgsparamargsoapValsoapArgr   r   
methodNamer-   s                r   InvokeMethodzMMESoapStubAdapter.InvokeMethod6   s   j	 
*m9FLLNNt{D11 
* 
*ZUC+%VVVw <II7<zw J P Pw  )))[[]]dg,TY77#=	Ij x##,3+5-7 $ 9 9f ,,VT[AAAr   c                     |                                 }| j        }|j        }| j                            |||          }|                     ||j                  S )N)r   r   prop)r(   r   r   r   	FetchSoapr,   r*   )r   r.   r   r   r   r8   r-   s          r   InvokeAccessorz!MMESoapStubAdapter.InvokeAccessorU   sS    [[]]dgYd x!!tW4!HHf,,VTY???r   c                     d }|rn|j         rt          |j         ||           }nO|j        r#t          |j        j        t          |           }|d}d}t
          j                            ||          |S )N)r   z"Unexpected execute/fetchSoap errorz2execute/fetchSoap did not return response or fault)msgreason)responser	   faultfaultDetailobjectr   FaultSystemError)r   r-   
resultTypeobjr?   r<   r=   s          r   r,   z-MMESoapStubAdapter._DeserializeExecutorResultc   s    c	 BO 
BfozEEECCl 
B 8 &%)+ + +E K 7CIF+))c&)AAAjr   N)	__name__
__module____qualname____doc__r   r   r6   r:   r,    r   r   r   r      sk        00  , , ,B B B>@ @ @    r   r   N)
rI   
__author__pyVmomir   r   r   r   r   r	   r   rJ   r   r   <module>rM      s      
 4 4 4 4 4 4 4 4 4 4 M M M M M M M M M M\ \ \ \ \, \ \ \ \ \r   