@@ -563,31 +563,14 @@ async def model_uuids(self, username=None, all=False):
563563
564564 :returns: {str name : str UUID}
565565 """
566-
567- if all :
568- facade = client .ControllerFacade .from_connection (
569- self .connection ())
570- else :
571- facade = client .ModelManagerFacade .from_connection (
572- self .connection ())
573- u_name = username if username else self .get_current_username ()
574- user = tag .user (u_name )
575-
576- for attempt in (1 , 2 , 3 ):
577- try :
578- if all :
579- userModelList = await facade .AllModels ()
580- else :
581- userModelList = await facade .ListModels (tag = user )
582-
583- return {um .model .name : um .model .uuid
584- for um in userModelList .user_models }
585- except errors .JujuAPIError as e :
586- # retry concurrency error until resolved in Juju
587- # see: https://bugs.launchpad.net/juju/+bug/1721786
588- if 'has been removed' not in e .message or attempt == 3 :
589- raise
590- await jasyncio .sleep (attempt )
566+ model_manager_facade = client .ModelManagerFacade .from_connection (self .connection ())
567+ u_name = username if username else self .get_current_username ()
568+ user = tag .user (u_name )
569+
570+ user_model_list = await model_manager_facade .ListModelSummaries (user_tag = user , all_ = all )
571+ model_summaries = [msr .result for msr in user_model_list .results ]
572+ return {model_summary .name : model_summary .uuid
573+ for model_summary in model_summaries }
591574
592575 async def list_models (self , username = None , all = False ):
593576 """Return list of names of the available models on this controller.
0 commit comments