X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fmodel.py;h=dafbf510182c97e556cfb247524d889585882730;hb=512628c68366642d8268b63ae96c0eb5aadfa39c;hp=a0180a06b238b3c2e5bbe179c94610394aa14f05;hpb=6a93e0d68bf3bc3f41328b2b8063c65722bc98b5;p=osm%2FN2VC.git diff --git a/juju/model.py b/juju/model.py index a0180a0..dafbf51 100644 --- a/juju/model.py +++ b/juju/model.py @@ -18,7 +18,7 @@ from .constraints import parse as parse_constraints, normalize_key from .delta import get_entity_delta from .delta import get_entity_class from .exceptions import DeadEntityException -from .errors import JujuAPIError +from .errors import JujuError, JujuAPIError log = logging.getLogger(__name__) @@ -74,6 +74,14 @@ class ModelObserver(object): await method(delta, old, new, model) async def on_change(self, delta, old, new, model): + """Generic model-change handler. + + :param delta: :class:`juju.client.overrides.Delta` + :param old: :class:`juju.model.ModelEntity` + :param new: :class:`juju.model.ModelEntity` + :param model: :class:`juju.model.Model` + + """ pass @@ -944,7 +952,7 @@ class Model(object): 's' if len(unit_names) == 1 else '', ' '.join(unit_names)) - return await app_facade.Destroy(self.name) + return await app_facade.DestroyUnits(list(unit_names)) destroy_units = destroy_unit def get_backup(self, archive_id): @@ -1324,6 +1332,9 @@ class BundleHandler(object): self.bundle = yaml.safe_load(bundle_yaml) self.plan = await self.client_facade.GetBundleChanges(bundle_yaml) + if self.plan.errors: + raise JujuError('\n'.join(self.plan.errors)) + async def execute_plan(self): for step in self.plan.changes: method = getattr(self, step.method)