@@ -38,11 +38,13 @@ def check_credentials(self, remote, force_auth=False):
3838 def upload_recipe (self , ref , files_to_upload , remote ):
3939 assert isinstance (ref , RecipeReference )
4040 assert ref .revision , "upload_recipe requires RREV"
41+ remote .invalidate_cache ()
4142 self ._call_remote (remote , "upload_recipe" , ref , files_to_upload )
4243
4344 def upload_package (self , pref , files_to_upload , remote ):
4445 assert pref .ref .revision , "upload_package requires RREV"
4546 assert pref .revision , "upload_package requires PREV"
47+ remote .invalidate_cache ()
4648 self ._call_remote (remote , "upload_package" , pref , files_to_upload )
4749
4850 def get_recipe (self , ref , remote , metadata = None ):
@@ -204,12 +206,15 @@ def search_packages(self, remote, ref):
204206 return packages
205207
206208 def remove_recipe (self , ref , remote ):
209+ remote .invalidate_cache ()
207210 return self ._call_remote (remote , "remove_recipe" , ref )
208211
209212 def remove_packages (self , prefs , remote ):
213+ remote .invalidate_cache ()
210214 return self ._call_remote (remote , "remove_packages" , prefs )
211215
212216 def remove_all_packages (self , ref , remote ):
217+ remote .invalidate_cache ()
213218 return self ._call_remote (remote , "remove_all_packages" , ref )
214219
215220 def authenticate (self , remote , name , password ):
@@ -243,10 +248,19 @@ def get_latest_package_reference(self, pref, remote, info=None) -> PkgReference:
243248
244249 cached_method = remote ._caching .setdefault ("get_latest_package_reference" , {})
245250 try :
246- return cached_method [pref ]
251+ result = cached_method [pref ]
247252 except KeyError :
248- result = self ._call_remote (remote , "get_latest_package_reference" , pref , headers = headers )
249- cached_method [pref ] = result
253+ try :
254+ result = self ._call_remote (remote , "get_latest_package_reference" , pref ,
255+ headers = headers )
256+ cached_method [pref ] = result
257+ return result
258+ except Exception as e :
259+ cached_method [pref ] = e
260+ raise e
261+ else :
262+ if isinstance (result , Exception ):
263+ raise result
250264 return result
251265
252266 def get_recipe_revision_reference (self , ref , remote ) -> bool :
0 commit comments