+ model_facade = client.ModelManagerFacade()
+ model_facade.connect(self.connection)
+
+ log.debug('Creating model %s', name)
+
+ model_info = await model_facade.CreateModel(
+ cloud,
+ config,
+ credential,
+ name,
+ owner or self.connection.info['user-info']['identity'],
+ region,
+ )
+
+ model = Model()
+ await model.connect(
+ self.connection.endpoint,
+ model_info.uuid,
+ self.connection.username,
+ self.connection.password,
+ self.connection.cacert,
+ self.connection.macaroons,
+ )
+
+ return model
+
+ async def destroy_models(self, *args):
+
+ """Destroy a model to this controller.
+
+ :param str : model-<UUID>
+
+ """
+ model_facade = client.ModelManagerFacade()
+ model_facade.connect(self.connection)
+
+ for arg in args:
+ log.debug('Destroying Model %s', arg)
+ await model_facade.DestroyModels([client.Entity(arg)])