| Units |
| ===== |
| For api docs, see :class:`juju.unit.Unit`. |
| |
| |
| Running Commands |
| ---------------- |
| Run arbitrary commands on a unit with the |
| :meth:`juju.unit.Unit.run` method. This method blocks |
| the current coroutine until a result is available, and |
| returns a :class:`juju.action.Action` instance. |
| |
| |
| .. code:: python |
| |
| from juju.model import Model |
| |
| model = Model() |
| await model.connect_current() |
| |
| app = await model.deploy( |
| 'ubuntu', |
| application_name='ubuntu', |
| series='trusty', |
| channel='stable', |
| ) |
| |
| for unit in app.units: |
| action = await unit.run('unit-get public-address') |
| print(action.results) |
| |
| action = await unit.run('uname -a') |
| print(action.results) |
| |
| |
| Running Actions |
| --------------- |
| Run actions on a unit with the |
| :meth:`juju.unit.Unit.run_action` method. This method |
| returns a :class:`juju.action.Action` instance immediately. To block until |
| the action completes, use the :meth:`juju.action.Action.wait` method, as |
| in the example below. |
| |
| |
| .. code:: python |
| |
| from juju.model import Model |
| |
| model = Model() |
| await model.connect_current() |
| |
| app = await model.deploy( |
| 'git', |
| application_name='git', |
| series='trusty', |
| channel='stable', |
| ) |
| |
| for unit in app.units: |
| # run the 'add-repo' action, passing a 'repo' param |
| action = await unit.run_action('add-repo', repo='myrepo') |
| # wait for the action to complete |
| action = await action.wait() |
| |
| print(action.results) |