X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fmodel.py;h=4db711b479b68ebbb79bc783303a1e5dad92b0a5;hb=13d73a3515008c5797f83bcaef0adfb6627395d3;hp=4430dad77fe806dd8f54d12cfd6d45f3c8adb165;hpb=cad065c39e8e69696357f872b55d9c5c8919a0b3;p=osm%2FN2VC.git diff --git a/juju/model.py b/juju/model.py index 4430dad..4db711b 100644 --- a/juju/model.py +++ b/juju/model.py @@ -76,6 +76,9 @@ class _Observer(object): class ModelObserver(object): + """ + Base class for creating observers that react to changes in a model. + """ async def __call__(self, delta, old, new, model): handler_name = 'on_{}_{}'.format(delta.entity, delta.type) method = getattr(self, handler_name, self.on_change) @@ -84,6 +87,8 @@ class ModelObserver(object): async def on_change(self, delta, old, new, model): """Generic model-change handler. + This should be overridden in a subclass. + :param delta: :class:`juju.client.overrides.Delta` :param old: :class:`juju.model.ModelEntity` :param new: :class:`juju.model.ModelEntity` @@ -374,6 +379,9 @@ class ModelEntity(object): class Model(object): + """ + The main API for interacting with a Juju model. + """ def __init__(self, loop=None): """Instantiate a new connected Model. @@ -994,7 +1002,7 @@ class Model(object): :param dict bind: : pairs :param dict budget: : pairs :param str channel: Charm store channel from which to retrieve - the charm or bundle, e.g. 'development' + the charm or bundle, e.g. 'edge' :param dict config: Charm configuration dictionary :param constraints: Service constraints :type constraints: :class:`juju.Constraints` @@ -1032,7 +1040,7 @@ class Model(object): if is_local: entity_id = entity_url.replace('local:', '') else: - entity = await self.charmstore.entity(entity_url) + entity = await self.charmstore.entity(entity_url, channel=channel) entity_id = entity['Id'] client_facade = client.ClientFacade.from_connection(self.connection) @@ -1064,8 +1072,6 @@ class Model(object): application_name = entity['Meta']['charm-metadata']['Name'] if not series: series = self._get_series(entity_url, entity) - if not channel: - channel = 'stable' await client_facade.AddCharm(channel, entity_id) # XXX: we're dropping local resources here, but we don't # actually support them yet anyway @@ -1890,6 +1896,12 @@ class CharmStore(object): class CharmArchiveGenerator(object): + """ + Create a Zip archive of a local charm directory for upload to a controller. + + This is used automatically by + `Model.add_local_charm_dir <#juju.model.Model.add_local_charm_dir>`_. + """ def __init__(self, path): self.path = os.path.abspath(os.path.expanduser(path))