b%dZGddeZGddeZGddeZGddeZGd d eZGd d eZGd deZGddeZ GddeZ GddeZ GddeZ Gdde Z Gdde ZGdde ZGdde ZGdd e ZGd!d"eeZGd#d$eZGd%d&eZGd'd(e ZGd)d*eZGd+d,eZGd-d.ee ZGd/d0e ZGd1d2e ZGd3d4e ZGd5d6eZGd7d8eZGd9d:eZy;) ASK error ask dst node > ASKING command dst node: IMPORTING from src node asking command only affects next command any op will be allowed after asking command c|f|_||_|jd\}}|jdd\}}t ||_|t |fx|_\|_|_y)z#should only redirect to master node :N) r>r?splitrsplitintslot_id node_addrhostport)r@rArMnew_noderOrPs r rBzAskError.__init__s`G   JJsO__S!, d7| 04c$i?-DIr NrCrr r rErEs  @r rEceZdZdZdZy) TryAgainErrorz Error indicated TRYAGAIN error received from cluster. Operations on keys that don't exist or are - during resharding - split between the source and destination nodes, will generate a -TRYAGAIN error. cyr=r)r@r>kwargss r rBzTryAgainError.__init__s r NrCrr r rSrSs   r rSceZdZdZdZy)ClusterCrossSlotErrorz Error indicated CROSSSLOT error received from cluster. A CROSSSLOT error is generated when keys in a request don't hash to the same slot. z+Keys in request don't hash to the same slotN)rrrr-r?rr r rWrWs r`sl,   j  :  /      j  J    *    M  ]  M    -  J    9  =  I  :  |]  @}@2 M