a mi%"@sddlmZddlmZddlZddlZz ddlZWneyRddlmZYn0Gddde Z Gddde Z Gdd d e Z dS) ) rpcServer) up2dateErrorsNc@s0eZdZdZddZddZddZdd Zd S) _DoCallWrapperze A callable object that will handle multiple levels of attributes, and catch exceptions. cCs||_||_dSN)_server _method_name)selfZserver method_namer |jdkrt|j}n$|jdkrt|j}n |jdkrt|j}n|jd krt|j}n|jd krt |j}n|jd kr"t |j}nt |jd krBt |j}n~t |jd krbt |j}n^t |jdkr~t}nBt |jdkrt|j}n"|jdkrt|j}nt |jdkrt |j}n|jdkrt|j}n|jdkr t|j}n|jdkr&t|j}n|jdkr@t|j}n|jdksX|jdkrft|j}nZ|jdkrt|j}n@|jdkrt|j}n&|jdkrt|j}n t|j}|S)Niiiiiiii1<Jic[iiiii/iDiCi)Z faultCoderZ$AuthenticationOrAccountCreationErrorZ faultStringZUnknownMethodExceptionZLoginMinLengthErrorZPasswordMinLengthErrorZValidationErrorZNoBaseChannelErrorZInsuffMgmntEntsErrorZ PasswordErrorabsZ AbuseErrorZAuthenticationTicketErrorZRegistrationDeniedErrorZRhnUuidUniquenessErrorZ DelayErrorZInvalidRegistrationNumberErrorZNotEntitlingErrorZPasswordMaxLengthErrorZActivationKeyUsageLimitErrorZUnableToCreateUserZCommunicationError)rZfault exceptionr r r Z__exception_from_faultRs|                     z%_DoCallWrapper.__exception_from_faultN)__name__ __module__ __qualname____doc__r rr$rr r r r r+s rc@s*eZdZdZd ddZddZdd ZdS) RhnServerz` An rpc server object that calls doCall for you, and catches lower level exceptions NFcCs&|durtj|||d|_n||_dS)N)serverOverridetimeout registration)rZ getServerr)rr6r7rpcServerOverrider8r r r r s zRhnServer.__init__cCs|j||dSr)r add_header)rkeyvaluer r r r:szRhnServer.add_headercCs t|j|S)z6Return a callable object that will do the work for us.)rrr r r r rszRhnServer.__getattr__)NNNF)r1r2r3r4r r:rr r r r r5s r5cs"eZdZdZdfdd ZZS)RegistrationRhnServerz A specialized RhnServer subclass for handling registration-related calls. Intended to be used as a shorthand for registration tasks instead of the plain RhnServer. Ncstt|j|||dddS)NT)r6r7r9r8)superr=r )rr6r7r9 __class__r r r s  zRegistrationRhnServer.__init__)NNN)r1r2r3r4r __classcell__r r r?r r=sr=) Zup2date_clientrrrrr ImportErrorZ xmlrpc.clientZclientobjectrr5r=r r r r !s    u