Skip to content

Commit bdb2e27

Browse files
committed
Use ModelManager.ListModelSummaries for model_uuid
just as juju/cmd does for `juju list-models`
1 parent ff3457d commit bdb2e27

1 file changed

Lines changed: 8 additions & 25 deletions

File tree

juju/controller.py

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)