+ 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 : <UUID> of the Model
+ param accepts string of <UUID> only OR `model-<UUID>`
+
+
+ """
+ model_facade = client.ModelManagerFacade()
+ model_facade.connect(self.connection)
+
+ #Generate list of args, pre-pend 'model-'
+ prependarg = list(args)
+ for index, item in enumerate(prependarg):
+ if not item.startswith('model-'):
+ prependarg[index]="model-%s" % item
+
+ #Create list of objects to pass to DestroyModels()
+ arglist = []
+ for arg in prependarg:
+ arglist.append(client.Entity(arg))
+ log.debug('Destroying Model %s', arg)
+
+ await model_facade.DestroyModels(arglist)