X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=docs%2Fnarrative%2Fapplication.rst;h=1565e5f3301b1c9b1ae1243ab2c6c5aa205edd98;hb=2399bdd31415f9be498cd0e6f805586d7c18015d;hp=c255a37f5cde40d1bd30fbe8f76a635217bb2585;hpb=843e6a04a7f92cc7efdcc75ae0bb4be3fb0ca027;p=osm%2FN2VC.git diff --git a/docs/narrative/application.rst b/docs/narrative/application.rst index c255a37..1565e5f 100644 --- a/docs/narrative/application.rst +++ b/docs/narrative/application.rst @@ -1,5 +1,6 @@ Applications ============ +For api docs, see :class:`juju.application.Application`. Deploying @@ -31,6 +32,26 @@ To deploy a new application, connect a model and then call its ) +Deploying a Local Charm +----------------------- +To deploy a local charm, pass the charm directory path to +`Model.deploy()`. + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + # Deploy a local charm using a path to the charm directory + await model.deploy( + '/home/tvansteenburgh/src/charms/ubuntu', + application_name='ubuntu', + series='trusty', + ) + + Adding Units ------------ To add units to a deployed application, use the @@ -39,14 +60,14 @@ added units (:class:`~juju.unit.Unit` objects) is returned. .. code:: python - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) + ubuntu_app = await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='trusty', + channel='stable', + ) - unit_a, unit_b = await ubuntu_app.add_units(count=2) + unit_a, unit_b = await ubuntu_app.add_units(count=2) Updating Config and Constraints @@ -70,3 +91,46 @@ application. The `mysql_app` object is an instance of constraints = await mysql_app.get_constraints() assert(constraints['mem'] == 512 * MB) + + +Adding and Removing Relations +----------------------------- +The :meth:`juju.application.Application.add_relation` method returns a +:class:`juju.relation.Relation` instance. + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + # Deploy mysql-master application + mysql_master = await model.deploy( + 'cs:mysql-55', + application_name='mysql-master', + series='trusty', + channel='stable', + ) + + # Deploy mysql-slave application + mysql_slave = await model.deploy( + 'cs:mysql-55', + application_name='mysql-slave', + series='trusty', + channel='stable', + ) + + # Add the master-slave relation + relation = await mysql_master.add_relation( + # Name of the relation on the local (mysql-master) side + 'master', + # Name of the app:relation on the remote side + 'mysql-slave:slave', + ) + + # Remove the relation + await mysql_master.remove_relation( + 'master', + 'mysql-slave:slave', + )