From: Tim Van Steenburgh Date: Tue, 6 Dec 2016 19:23:16 +0000 (-0500) Subject: Add more connect_ methods on Controller X-Git-Tag: 0.1.0~19 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=5389f71a7619c2929d685f3bdd08a2854125c228;hp=f70f1d38723997c6f35750f5d2d17fe1b74ba40d;p=osm%2FN2VC.git Add more connect_ methods on Controller --- diff --git a/juju/controller.py b/juju/controller.py index f0ef3b9..95a4771 100644 --- a/juju/controller.py +++ b/juju/controller.py @@ -10,6 +10,26 @@ log = logging.getLogger(__name__) class Controller(object): + def __init__(self, loop=None): + """Instantiate a new Controller. + + One of the connect_* methods will need to be called before this + object can be used for anything interesting. + + :param loop: an asyncio event loop + + """ + self.loop = loop or asyncio.get_event_loop() + self.connection = None + + async def connect( + self, endpoint, username, password, cacert=None, macaroons=None): + """Connect to an arbitrary Juju controller. + + """ + self.connection = await connection.Connection.connect( + endpoint, None, username, password, cacert, macaroons) + async def connect_current(self): """Connect to the current Juju controller. @@ -17,6 +37,13 @@ class Controller(object): self.connection = ( await connection.Connection.connect_current_controller()) + async def connect_controller(self, controller_name): + """Connect to a Juju controller by name. + + """ + self.connection = ( + await connection.Connection.connect_controller(controller_name)) + async def disconnect(self): """Shut down the watcher task and close websockets. @@ -75,13 +102,13 @@ class Controller(object): model_facade = client.ModelManagerFacade() model_facade.connect(self.connection) - #Generate list of args, pre-pend 'model-' + # Generate list of args, pre-pend 'model-' prependarg = list(args) for index, item in enumerate(prependarg): if not item.startswith('model-'): - prependarg[index]="model-%s" % item + prependarg[index] = "model-%s" % item - #Create list of objects to pass to DestroyModels() + # Create list of objects to pass to DestroyModels() arglist = [] for arg in prependarg: arglist.append(client.Entity(arg))