+++ /dev/null
-Controllers
-===========
-A Juju controller provides websocket endpoints for itself and each of its
-models. In order to do anything useful, the juju lib must connect to one of
-these endpoints.
-
-Connecting to the controller endpoint is useful if you want to programmatically
-create a new model. If the model you want to use already exists, you can
-connect directly to it (see py:doc:`model`).
-
-For API docs, see py:class:`juju.controller.Controller`.
-
-
-Connecting to the Current Controller
-------------------------------------
-Connect to the currently active Juju controller (the one returned by
-`juju switch`). This only works if you have the Juju CLI client installed.
-
-.. code:: python
-
- from juju.controller import Controller
-
- controller = Controller()
- await controller.connect()
-
-
-Connecting to a Named Controller
---------------------------------
-Connect to a controller by name.
-
-.. code:: python
-
- from juju.controller import Controller
-
- controller = Controller()
- await controller.connect('mycontroller')
-
-
-Connecting with Authentication
-------------------------------
-You can control what user you are connecting with by specifying either a
-username/password pair, or a macaroon or bakery client that can provide
-a macaroon.
-
-
-.. code:: python
-
- controller = Controller()
- await controller.connect(username='admin',
- password='f53f08cfc32a2e257fe5393271d89d62')
-
- # or with a macaroon
- await controller.connect(macaroons=[
- {
- "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df",
- "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==",
- "Domain": "10.130.48.27",
- "Path": "/auth",
- "Secure": false,
- "HostOnly": true,
- "Expires": "2018-03-07T22:07:23Z",
- },
- ])
-
- # or with a bakery client
- from macaroonbakery.httpbakery import Client
- from http.cookiejar import FileCookieJar
-
- bakery_client=Client()
- bakery_client.cookies = FileCookieJar('cookies.txt')
- controller = Controller()
- await controller.connect(bakery_client=bakery_client)
-
-
-
-Connecting with an Explicit Endpoint
-------------------------------------
-The most flexible, but also most verbose, way to connect is using the API
-endpoint url and credentials directly. This method does NOT require the
-Juju CLI client to be installed.
-
-.. code:: python
-
- controller = Controller()
- await controller.connect(
- endpoint='10.0.4.171:17070',
- username='admin',
- password='f53f08cfc32a2e257fe5393271d89d62',
- cacert=None, # Left out for brevity, but if you have a cert string you
- # should pass it in. You can get the cert from the output
- # of The `juju show-controller` command.
- )