model_facade.connect(self.connection)
owner = owner or self.connection.info['user-info']['identity']
+ cloud_name = cloud_name or await self.get_cloud()
- # XXX: We should be able to accept a credential_name without
- # a cloud_name, and just get the cloud_name from the controller.
- if credential_name and cloud_name:
+ if credential_name:
credential = tag.credential(
cloud_name,
tag.untag('user-', owner),
else:
credential = None
-
log.debug('Creating model %s', model_name)
model_info = await model_facade.CreateModel(
"""
pass
+ async def get_cloud(self):
+ """
+ Get the name of the cloud that this controller lives on.
+ """
+ cloud_facade = client.CloudFacade()
+ cloud_facade.connect(self.connection)
+
+ result = await cloud_facade.Clouds()
+ cloud = list(result.clouds.keys())[0] # only lives on one cloud
+ return tag.untag('cloud-', cloud)
+
def get_models(self, all_=False, username=None):
"""Return list of available models on this controller.
storage=storage,
)
- await app_facade.Deploy([app])
+ result = await app_facade.Deploy([app])
+ errors = [r.error.message for r in result.results if r.error]
+ if errors:
+ raise JujuError('\n'.join(errors))
return await self._wait_for_new('application', application_name)
def destroy(self):