errors.py (7811B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\ships\skins\errors.py 2 from eveProto.generated.eve_public.cosmetic.ship.skin.thirdparty.sequencing.job.job_pb2 import Failure 3 from itertoolsext.Enum import Enum 4 5 @Enum 6 7 class GenericError(object): 8 UNKNOWN = 'UNKNOWN' 9 TIMEOUT = 'TIMEOUT' 10 11 12 @Enum 13 14 class SequencingJobError(object): 15 INVALID_DESIGN = 'INVALID_DESIGN' 16 INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS' 17 INSUFFICIENT_COMPONENT_LICENSES = 'INSUFFICIENT_COMPONENT_LICENSES' 18 INSUFFICIENT_SEQUENCE_BINDERS = 'INSUFFICIENT_SEQUENCE_BINDERS' 19 INSUFFICIENT_SKILLS_FOR_SHIP_TYPE = 'INSUFFICIENT_SKILLS_FOR_SHIP_TYPE' 20 MASS_SEQUENCING_LIMIT_REACHED = 'MASS_SEQUENCING_LIMIT_REACHED' 21 MAX_CONCURRENT_SEQUENCING_JOBS_REACHED = 'MAX_CONCURRENT_SEQUENCING_JOBS_REACHED' 22 SKIN_NAME_MISSING = 'SKIN_NAME_MISSING' 23 INTERNAL_ERROR = 'INTERNAL_ERROR' 24 25 26 STATUS_CODE_TO_INITIATE_SEQUENCING_ERROR = {400: SequencingJobError.INVALID_DESIGN, 27 490: SequencingJobError.MAX_CONCURRENT_SEQUENCING_JOBS_REACHED, 28 491: SequencingJobError.INSUFFICIENT_COMPONENT_LICENSES, 29 492: SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS, 30 493: SequencingJobError.INSUFFICIENT_SKILLS_FOR_SHIP_TYPE, 31 494: SequencingJobError.INSUFFICIENT_FUNDS, 32 495: SequencingJobError.MASS_SEQUENCING_LIMIT_REACHED, 33 500: SequencingJobError.INTERNAL_ERROR} 34 STATUS_CODE_TO_EXPEDITE_SEQUENCING_ERROR = {403: SequencingJobError.INSUFFICIENT_FUNDS} 35 36 def convert_sequencing_error_from_proto(proto_error): 37 if proto_error in [Failure.FAILURE_UNSPECIFIED, Failure.FAILURE_INTERNAL_SERVER_ERROR]: 38 return GenericError.UNKNOWN 39 if proto_error == Failure.FAILURE_MISSING_FUNDS: 40 return SequencingJobError.INSUFFICIENT_FUNDS 41 if proto_error == Failure.FAILURE_MISSING_RESOURCES: 42 return SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS 43 44 45 def convert_sequencing_error_to_proto(error): 46 if error == SequencingJobError.INSUFFICIENT_FUNDS: 47 return Failure.FAILURE_MISSING_FUNDS 48 if error == SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS: 49 return Failure.FAILURE_MISSING_RESOURCES 50 return Failure.FAILURE_UNSPECIFIED 51 52 53 @Enum 54 55 class SkinDesignManagementError(object): 56 MAX_SAVED_DESIGNS_LIMIT_REACHED = 'MAX_SAVED_DESIGNS_LIMIT_REACHED' 57 INVALID_DESIGN = 'INVALID_DESIGN' 58 SKIN_NAME_MISSING = 'SKIN_NAME_MISSING' 59 60 61 @Enum 62 63 class SkinDesignSharingError(object): 64 DESIGN_NOT_FOUND = 'DESIGN_NOT_FOUND' 65 66 67 class NoTimeRemainingException(Exception): 68 pass 69 70 71 class ConsumeComponentItemFailed(Exception): 72 pass 73 74 75 class ConsumeComponentItemConflict(Exception): 76 pass 77 78 79 @Enum 80 81 class ListingError(object): 82 INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS' 83 INVALID_LOCATION = 'INVALID_LOCATION' 84 INVALID_LISTING = 'INVALID_LISTING' 85 LISTING_NOT_FOUND = 'LISTING_NOT_FOUND' 86 INSUFFICIENT_LICENSES = 'INSUFFICIENT_LICENSES' 87 FEATURE_FLAG_OFF = 'FEATURE_FLAG_OFF' 88 INVALID_VERSION = 'INVALID_VERSION' 89 NO_RIGHT_TO_VIEW = 'NO_RIGHT_TO_VIEW' 90 UNAUTHORIZED_PURCHASE = 'UNAUTHORIZED_PURCHASE' 91 MAX_LISTING_LIMIT_REACHED = 'MAX_LISTING_LIMIT_REACHED' 92 UNKNOWN = 'UNKNOWN' 93 94 95 STATUS_CODE_TO_LISTING_OPERATION_ERROR = {400: ListingError.INVALID_LISTING, 96 401: ListingError.INVALID_LISTING, 97 403: ListingError.INVALID_LISTING, 98 404: ListingError.LISTING_NOT_FOUND, 99 409: ListingError.INVALID_VERSION, 100 412: ListingError.INSUFFICIENT_LICENSES, 101 423: ListingError.NO_RIGHT_TO_VIEW} 102 STATUS_CODE_TO_LISTING_PURCHASE_OPERATION_ERROR = {400: ListingError.INVALID_LISTING, 103 401: ListingError.INVALID_LISTING, 104 403: ListingError.INSUFFICIENT_FUNDS, 105 404: ListingError.LISTING_NOT_FOUND, 106 409: ListingError.INVALID_VERSION, 107 412: ListingError.INSUFFICIENT_LICENSES, 108 423: ListingError.UNAUTHORIZED_PURCHASE} 109 DESIGN_ERROR_TEXT_BY_CODE = {SkinDesignManagementError.INVALID_DESIGN: 'UI/Personalization/ShipSkins/SKINR/Studio/DesignErrors/InvalidDesign', 110 SkinDesignManagementError.MAX_SAVED_DESIGNS_LIMIT_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/DesignErrors/SaveLimitReached', 111 SkinDesignManagementError.SKIN_NAME_MISSING: 'UI/Personalization/ShipSkins/SKINR/Studio/DesignErrors/SkinNameMissing'} 112 SEQUENCING_ERROR_TEXT_BY_CODE = {SequencingJobError.INVALID_DESIGN: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InvalidDesign', 113 SequencingJobError.INSUFFICIENT_FUNDS: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientPLEXFunds', 114 SequencingJobError.INSUFFICIENT_COMPONENT_LICENSES: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientComponentLicenses', 115 SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientSequenceBinders', 116 SequencingJobError.INSUFFICIENT_SKILLS_FOR_SHIP_TYPE: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientSkillsForShipType', 117 SequencingJobError.MASS_SEQUENCING_LIMIT_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/MaxSequencingLimitReached', 118 SequencingJobError.MAX_CONCURRENT_SEQUENCING_JOBS_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/MaxConcurrentSequencingJobsReached', 119 SequencingJobError.SKIN_NAME_MISSING: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/SkinNameMissing', 120 SequencingJobError.INTERNAL_ERROR: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InternalError', 121 GenericError.TIMEOUT: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InternalError', 122 GenericError.UNKNOWN: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InternalError'} 123 124 def get_sequencing_error_text(error_code): 125 if error_code in SEQUENCING_ERROR_TEXT_BY_CODE: 126 return SEQUENCING_ERROR_TEXT_BY_CODE[error_code] 127 return SEQUENCING_ERROR_TEXT_BY_CODE[GenericError.UNKNOWN] 128 129 130 SEQUENCE_FAILURE_REASON_TO_ERROR = {0: SequencingJobError.INTERNAL_ERROR, 131 1: SequencingJobError.INSUFFICIENT_FUNDS, 132 3: SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS, 133 4: SequencingJobError.INTERNAL_ERROR} 134 LISTING_ERROR_TEXT_BY_CODE = {ListingError.INSUFFICIENT_FUNDS: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InsufficientFunds', 135 ListingError.INVALID_LOCATION: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InvalidLocation', 136 ListingError.INVALID_LISTING: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InvalidListing', 137 ListingError.LISTING_NOT_FOUND: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/ListingNotFound', 138 ListingError.INSUFFICIENT_LICENSES: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError', 139 ListingError.NO_RIGHT_TO_VIEW: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/NoRightToView', 140 ListingError.UNAUTHORIZED_PURCHASE: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/UnauthorizedPurchase', 141 ListingError.MAX_LISTING_LIMIT_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/MaxListingLimitReached', 142 ListingError.FEATURE_FLAG_OFF: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError', 143 ListingError.UNKNOWN: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError', 144 GenericError.TIMEOUT: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError'} 145 146 def get_listing_error_text(error_code): 147 if error_code in LISTING_ERROR_TEXT_BY_CODE: 148 return LISTING_ERROR_TEXT_BY_CODE[error_code] 149 return LISTING_ERROR_TEXT_BY_CODE[ListingError.UNKNOWN] 150 151 152 class GetSkinLicensesFailed(Exception): 153 154 def __init__(self, error_list, opt = ''): 155 self._msg = 'Failed to load licenses:\n' 156 for license_id, error_msg in error_list: 157 self._msg += '%s: %s\n' % (license_id, error_msg) 158 159 Exception.__init__(self, self._msg, opt) 160 161 def __str__(self): 162 return self._msg