Hcf{CJ ddlmZmZmZddlmZGddeZGddeZGddeZ Gd d eZ Gd d e Z Gd deZ e ZGdde ZGdde ZGdde ZGdde ZGdde ZGdde ZGdde ZGdde ZGdd e ZGd!d"e ZGd#d$e ZGd%d&e ZGd'd(e ZGd)d*e ZGd+d,e ZGd-d.e ZGd/d0e ZGd1d2e Z Gd3d4e Z!Gd5d6e Z"Gd7d8e Z#Gd9d:e Z$Gd;de%Z&Gd?d@e%Z'GdAdBe Z(GdCdDe e Z)e)Z*GdEdFe Z+GdGdHe Z,GdIdJe Z-GdKdLe Z.GdMdNe Z/GdOdPe Z0GdQdRe Z1GdSdTe Z2GdUdVe Z3GdWdXe Z4GdYdZe Z5Gd[d\e Z6Gd]d^e Z7Gd_d`e Z8Gdadbe Z9Gdcdde Z:Gdedfe Z;Gdgdhe Z<Gdidje Z=Gdkdle Z>Gdmdne Z?Gdodpe Z@Gdqdre ZAGdsdte?ZBGdudve?ZCGdwdxe ZDGdydze ZEGd{d|e ZFGd}d~e ZGGdde ZHGdde ZIGdde ZJGdde ZKGdde ZLGdde ZMGdde ZNGdde ZOGddeOZPGdde ZQGdde ZRGddeRZSGddeRZTGddeRZUGdde ZVGdde ZWGdde ZXGdde ZYGdde ZZGdde Z[Gdde Z\Gdde Z]Gdde Z^Gdde Z_Gdde Z`Gdde ZaGdde ZbGdde ZcGdde ZdGdde ZeGdde ZfGdde ZgGdde ZhGdde ZiGdÄde ZjGdńde ZkGdDŽde ZlGdɄde ZmGd˄de ZnGd̈́de ZoGdτde ZpGdфde ZqGdӄde ZrGdՄde Zsy))ListOptionalTuple)messagesc eZdZy)InPlaceUpgradeNotSupportedErrorN__name__ __module__ __qualname__5/usr/lib/python3/dist-packages/uaclient/exceptions.pyrrrrc eZdZy)IsProLicensePresentErrorNr r rrrr rrrc eZdZy)CancelProLicensePollingNr r rrrrrrrc eZdZy)DelayProLicensePollingNr r rrrrrrrc BeZdZ ddedeedededdf fd ZxZS) ProcessExecutionErrorNcmd exit_codestdoutstderrreturnc||_||_||_|s!tjj |}n"tj j |||}t|!|y)N)r)rrr) rrrrSUBP_INVALID_COMMANDformatSUBP_COMMAND_FAILEDsuper__init__)selfrrrrmessage __class__s rr#zProcessExecutionError.__init__sg  "33::s:CG22999V:G !r)Nr')r r r strrintr# __classcell__r&s@rrrsL$( " "C=" "  "  ""rrcJeZdZdZdZdZdZddZedZ edZ dZ y) UbuntuProErrorzu Base class for all of our custom errors. All possible exceptions from our API should extend this class. Nc |j"|jjdi||_n|j|_||_|j D]\}}t |||yNr )_formatted_msgr named_msg_msgadditional_infoitemssetattr)r$kwargskeyvalues rr#zUbuntuProError.__init__5sj    *7T0077DN"YYDN% ,,. &JC D#u % &rc.|jjSNr2msgr$s rr=zUbuntuProError.msgBs~~!!!rc.|jjSr;)r2namer>s rmsg_codezUbuntuProError.msg_codeFs~~"""rc.|jjSr;r<r>s r__str__zUbuntuProError.__str__Js~~!!!rrN) r r r __doc__r3r1rr#propertyr=rArCr rrr-r-*sJ DNI &""##"rr-c<eZdZdZdej ffd ZxZS)AnonymousUbuntuProErrorz For cases where we have a NamedMessage of an Error already but it isn't in exception form, and we need to raise it as an exception. This generally should only be used in cli-only code. r2c 2t|di|||_yr0)r"r#r2)r$r2r7r&s rr#z AnonymousUbuntuProError.__init__[s "6""r)r r r rEr NamedMessager#r*r+s@rrHrHTs #("7"7##rrHc$eZdZejZy)APTProcessConflictErrorN)r r r rE_APT_PROCESS_CONFLICTr3r rrrLrLe  * *DrrLc$eZdZejZy)APTInvalidRepoErrorN)r r r rE_APT_UPDATE_INVALID_URL_CONFIGr1r rrrPrPi ==NrrPc$eZdZejZy)APTUpdateProcessConflictErrorN)r r r rE_APT_UPDATE_PROCESS_CONFLICTr3r rrrTrTm  1 1DrrTc$eZdZejZy)APTUpdateInvalidRepoErrorN)r r r rE_APT_UPDATE_INVALID_REPOr1r rrrXrXq 77NrrXc$eZdZejZy)APTUpdateFailedN)r r r rE_APT_UPDATE_FAILEDr1r rrr\r\u 11Nrr\c$eZdZejZy)APTInstallProcessConflictErrorN)r r r rE_APT_INSTALL_PROCESS_CONFLICTr3r rrr`r`ys  2 2Drr`c$eZdZejZy)APTInstallInvalidRepoErrorN)r r r rE_APT_INSTALL_INVALID_REPOr1r rrrcrc} 88Nrrcc$eZdZejZy)APTInvalidCredentialsN)r r r rE_APT_INVALID_CREDENTIALSr1r rrrgrgrZrrgc$eZdZejZy) APTTimeoutN)r r r r E_APT_TIMEOUTr1r rrrjrj ++Nrrjc$eZdZejZy)APTUnexpectedErrorN)r r r rE_APT_UNEXPECTED_ERRORr1r rrrnrn 44Nrrnc$eZdZejZy)APTCommandTimeoutN)r r r rE_APT_COMMAND_TIMEOUTr1r rrrrrr 33Nrrrc$eZdZejZy)SnapNotInstalledErrorN)r r r rE_SNAP_NOT_INSTALLED_ERRORr1r rrrvrvrerrvc$eZdZejZy)UnexpectedSnapdAPIErrorN)r r r rE_UNEXPECTED_SNAPD_API_ERRORr1r rrryry ::Nrryc$eZdZejZy)SnapdAPIConnectionRefusedN)r r r rE_SNAPD_CONNECTION_REFUSEDr3r rrr}r}  . .Drr}c$eZdZejZy)CannotInstallSnapdErrorN)r r r rE_CANNOT_INSTALL_SNAPDr3r rrrrrNrrc$eZdZejZy)ErrorInstallingLivepatchN)r r r rE_ERROR_INSTALLING_LIVEPATCHr1r rrrrr{rrc$eZdZejZy)ProxyNotWorkingErrorN)r r r rE_NOT_SETTING_PROXY_NOT_WORKINGr1r rrrrrRrrc$eZdZejZy)ProxyInvalidUrlN)r r r rE_NOT_SETTING_PROXY_INVALID_URLr1r rrrrrRrrc$eZdZejZy)PycurlRequiredErrorN)r r r rE_PYCURL_REQUIREDr3r rrrr  % %Drrc$eZdZejZy) PycurlErrorN)r r r rE_PYCURL_ERRORr1r rrrrs ,,Nrrc$eZdZejZy)ProxyAuthenticationFailedN)r r r rE_PROXY_AUTH_FAILr3r rrrrrrrc6eZdZejZdZdZdZdZ y)ExternalAPIErrorNcddj|j|j|jS)Nz {}: [{}], {})r codeurlbodyr>s rrCzExternalAPIError.__str__s#$$TYY$))DDr) r r r rE_EXTERNAL_API_ERRORr1rrrrCr rrrrs"22N D C DErrc eZdZy)ContractAPIErrorNr r rrrrrrrc eZdZy)SecurityAPIErrorNr r rrrrrrrc8eZdZejZdfd ZxZS)PycurlCACertificatesErrorc 2t|di|||_yr0)r"r#r)r$rr7r&s rr#z"PycurlCACertificatesError.__init__s "6"rrD)r r r rE_PYCURL_CA_CERTIFICATESr3r#r*r+s@rrrs  , ,Drrc4eZdZejZdedefdZy)ConnectivityErrorcauserct|ddrtt|d}n t|}tj||tj|||||_||_y)Nreason) cause_errorr)getattrr(IOErrorr#r-rr)r$rrrs rr#zConnectivityError.__init__s` 5(D )geX67Ke*K{++3G'rN) r r r rE_CONNECTIVITY_ERRORr1 Exceptionr(r#r rrrrs$22Nrrc$eZdZejZy)ContractExpiredErrorN)r r r rE_CONTRACT_EXPIREDr3r rrrrs  & &Drrc$eZdZejZy)InvalidServiceOpErrorNr r r rE_INVALID_SERVICE_OP_FAILUREr1r rrrrr{rrc,eZdZdZdZej Zy)AlreadyAttachedErrorzDAn exception to be raised when a command needs an unattached system.N)r r r rErrE_ALREADY_ATTACHEDr1r rrrrsNI00Nrrc,eZdZdZdZej Zy) AttachErrorz@An exception to be raised when we detect a generic attach error.r.N)r r r rErrE_ATTACH_FAILUREr3r rrrr sJI  $ $Drrc$eZdZejZy)AttachInvalidConfigFileErrorN)r r r rE_ATTACH_CONFIG_READ_ERRORr1r rrrrrerrc$eZdZejZy)AttachInvalidTokenErrorN)r r r rE_ATTACH_INVALID_TOKENr3r rrrrrNrrc$eZdZejZy)AttachForbiddenExpiredN)r r r rE_ATTACH_FORBIDDEN_EXPIREDr1r rrrrrerrc$eZdZejZy)AttachForbiddenNotYetN)r r r rE_ATTACH_FORBIDDEN_NOT_YETr1r rrrrrerrc$eZdZejZy)AttachForbiddenNeverN)r r r rE_ATTACH_FORBIDDEN_NEVERr1r rrrr! 66Nrrc$eZdZejZy)AttachExpiredTokenN)r r r rE_ATTACH_EXPIRED_TOKENr3r rrrr%rNrrc$eZdZejZy) MagicAttachTokenAlreadyActivatedN)r r r r&E_MAGIC_ATTACH_TOKEN_ALREADY_ACTIVATEDr3r rrrr)s  : :Drrc$eZdZejZy)MagicAttachTokenErrorN)r r r rE_MAGIC_ATTACH_TOKEN_ERRORr3r rrrr-rrrc$eZdZejZy)MagicAttachUnavailableN)r r r rE_MAGIC_ATTACH_UNAVAILABLEr3r rrrr1rrrc$eZdZejZy)MagicAttachInvalidParamN)r r r rE_MAGIC_ATTACH_INVALID_PARAMr1r rrrr5r{rrc(eZdZdZej Zy)MissingAptURLDirectivez@An exception for when the contract server doesn't include aptURLN)r r r rErE_MISSING_APT_URL_DIRECTIVEr1r rrrr9sJ99Nrrc(eZdZdZej Zy)UnattachedErrorz>An exception to be raised when a machine needs to be attached.N)r r r rEr E_UNATTACHEDr3r rrrr?sH  Drrc$eZdZejZy)UnattachedValidServicesErrorN)r r r r"E_VALID_SERVICE_FAILURE_UNATTACHEDr1r rrrrE @@Nrrc$eZdZejZy)UnattachedMixedServicesErrorN)r r r r#E_MIXED_SERVICES_FAILURE_UNATTACHEDr1r rrrrI AANrrc$eZdZejZy)UnattachedInvalidServicesErrorNrr rrrrMr{rrc$eZdZejZy)EntitlementNotFoundErrorN)r r r rE_ENTITLEMENT_NOT_FOUNDr1r rrrrQs 55NrrcdeZdZdZej Zdeee ejfffd Z xZ S)EntitlementsNotEnabledErrorfailed_servicesc|Dcgc]%}|d|dj|djd'}}t| d|iycc}w)Nrr.)r@rtitleservices)r4)r@r=r"r#)r$rf info_dictsr&s rr#z$EntitlementsNotEnabledError.__init__Ys^ % qT1Q499qtxx @   '4   s*A) r r r rr E_ENTITLEMENTS_NOT_ENABLED_ERRORr3rrr(rJr#r*r+s@rrrUs:I  4 4D  #E#x/D/D*D$EF   rrcTeZdZejZdedejffd ZxZ S)EntitlementNotEnabledErrorservicercpt||d|j|j|jdiyNr)rrr4)rr4r"r#r@r=r4r$rrr&s rr#z#EntitlementNotEnabledError.__init__h< "KK#ZZ'-'='=  r) r r r rE_ENTITLEMENT_NOT_ENABLED_ERRORr1r(rJr#r*r+s@rrres,==N    X-B-B   rrcTeZdZejZdedejffd ZxZ S)EntitlementNotDisabledErrorrrcpt||d|j|j|jdiyrrrs rr#z$EntitlementNotDisabledError.__init__xrr) r r r r E_ENTITLEMENT_NOT_DISABLED_ERRORr1r(rJr#r*r+s@rrrus,>>N    X-B-B   rrc$eZdZejZy)AttachFailureDefaultServicesN)r r r r!E_ATTACH_FAILURE_DEFAULT_SERVICESr3r rrrrs  5 5Drrc$eZdZejZy)AttachFailureUnknownErrorN)r r r rE_ATTACH_FAILURE_UNEXPECTEDr3r rrr r   / /Drr c$eZdZejZy) RepoNoAptKeyN)r r r rE_REPO_NO_APT_KEYr1r rrrrs //Nrrc$eZdZejZy) RepoNoSuitesN)r r r rE_REPO_NO_SUITESr1r rrrrs ..Nrrc$eZdZejZy)RepoPinFailNoOriginN)r r r rE_REPO_PIN_FAIL_NO_ORIGINr1r rrrrrZrrc$eZdZejZy) InvalidContractDeltasServiceTypeN)r r r r&E_INVALID_CONTRACT_DELTAS_SERVICE_TYPEr1r rrrrs DDNrrc$eZdZejZy)%EntitlementsAPTDirectivesAreNotUniqueN)r r r r,E_ENTITLEMENTS_APT_DIRECTIVES_ARE_NOT_UNIQUEr1r rrrrs JJNrrc$eZdZejZy)RequiredServiceStopsEnableN)r r r rE_REQUIRED_SERVICE_STOPS_ENABLEr1r rrrrrRrrc$eZdZejZy)IncompatibleServiceStopsEnableN)r r r r#E_INCOMPATIBLE_SERVICE_STOPS_ENABLEr1r rrr r rrr c$eZdZejZy)DependentServiceStopsDisableN)r r r r!E_DEPENDENT_SERVICE_STOPS_DISABLEr1r rrr#r#s ??Nrr#c$eZdZejZy)LandscapeConfigFailedN)r r r rE_LANDSCAPE_CONFIG_FAILEDr3r rrr&r&  - -Drr&c$eZdZejZy)#NonInteractiveKernelPurgeDisallowedN)r r r r)E_NON_INTERACTIVE_KERNEL_PURGE_DISALLOWEDr3r rrr*r*s  = =Drr*c(eZdZejZdZy)InvalidProImageN)r r r rE_INVALID_PRO_IMAGEr1 error_msgr rrr-r-s11NIrr-c$eZdZejZy)CloudMetadataErrorN)r r r rE_CLOUD_METADATA_ERRORr1r rrr1r1rprr1c(eZdZdZej Zy)GCPServiceAccountErrorz;An exception raised when GCP service account is not enabledN)r r r rEr$E_GCP_SERVICE_ACCT_NOT_ENABLED_ERRORr1r rrr4r4sEBBNrr4c$eZdZejZy)AWSNoValidIMDSN)r r r rE_AWS_NO_VALID_IMDSr1r rrr7r7r^rr7c eZdZy)CloudFactoryErrorNr r rrr:r:rrr:c$eZdZejZy)CloudFactoryNoCloudErrorN)r r r r E_UNABLE_TO_DETERMINE_CLOUD_TYPEr3r rrr<r<  4 4Drr<c$eZdZejZy)CloudFactoryNonViableCloudErrorN)r r r rE_UNSUPPORTED_AUTO_ATTACHr3r rrr@r@r(rr@c,eZdZdZdZej Zy)NonAutoAttachImageErrorz>Raised when machine isn't running an auto-attach enabled imagerN)r r r rErr$E_UNSUPPORTED_AUTO_ATTACH_CLOUD_TYPEr1r rrrCrCsHIBBNrrCc$eZdZejZy)InvalidFileFormatErrorN)r r r rE_INVALID_FILE_FORMATr1r rrrFrFrtrrFc$eZdZejZy)ParsingErrorOnOSReleaseFileN)r r r r"E_ERROR_PARSING_VERSION_OS_RELEASEr1r rrrIrIrrrIc$eZdZejZy)MissingSeriesOnOSReleaseFileN)r r r rE_MISSING_SERIES_ON_OS_RELEASEr1r rrrLrL <r>rrc$eZdZejZy)CLIAttachTokenArgXORConfigN)r r r rE_ATTACH_TOKEN_ARG_XOR_CONFIGr3r rrrrBrVrrc$eZdZejZy)CLIAPIOptionsXORDataN)r r r r"E_API_ERROR_ARGS_AND_DATA_TOGETHERr3r rrrrFs  6 6Drrc$eZdZejZy)PromptDeniedErrorN)r r r rE_PROMPT_DENIEDr3r rrrrJs  # #Drrc,eZdZdZej ZdZy) LockHeldErrora An exception for when another pro operation is in progress :param lock_request: String of the command requesting the lock :param lock_holder: String of the command that currently holds the lock :param pid: Integer of the process id of the lock_holder N)r r r rErE_LOCK_HELD_ERRORr1pidr rrrrSs//N Crrc(eZdZdZej Zy)NonRootUserErrorz7An exception to be raised when a user needs to be root.N)r r r rErE_NONROOT_USERr3r rrrr_sA  " "Drrc(eZdZdZej Zy)SecurityAPIMetadataErrorzDAn exception raised with Security API metadata returns invalid data.N)r r r rErE_SECURITY_API_INVALID_METADATAr1r rrrresN==Nrrc$eZdZejZy)SecurityIssueNotFoundN)r r r rE_SECURITY_FIX_NOT_FOUND_ISSUEr1r rrrrkrNrrc$eZdZejZy)GPGKeyNotFoundN)r r r rE_GPG_KEY_NOT_FOUNDr1r rrrror^rrN)ttypingrrruaclientrrrrrrrrr-UserFacingErrorrHrLrPrTrXr\r`rcrgrjrnrrrvryr}rrrrrrrrrrrrUrlErrorrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrr r#r&r*r-r1r4r7r:r<r@rCrFrIrLrPrSrVrYr\r_rbrerhrkrnrqrtrwrzr}rrrrrrrrrrrr rrrs;(( i  y  6  5 "G"(!"Y!"N! #n #"+n+>.>2N2882n23^3998N8,,55449N9;n;//+n+;~;>>>>n>&.&-.-&&E~E '  ' . '>';N;1>1%.%9>9+n+9^99N97>7++;~;/N//^/;n;:^: !n! A>AB>B;^;6~6  .      .  6#>60 ;00>0/>/8.8E~EKNK>>B^B@>@.N.>.>n 55C/C 2^2  505.&7.C/C4^4A.A=>=2n22.2==A~A3N34N40N0/N/CNC;~;,N,B>B2~27~74>4->-/^//^/5N5227>7$$ N #~# >~> =N=2^2r