X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fclient%2Fconnection.py;h=56f9e18fbb1e55c82671c7ac6e1a9f059d6223f7;hb=769d19789b142ca3c1ffd0a172e9ac29cfb4b40e;hp=1a9e8e9df9ff939b6b9a84b4d1a9282c46c160b4;hpb=fe2d2f1a5ef2453359858481929a2526ea1a3c5c;p=osm%2FN2VC.git diff --git a/juju/client/connection.py b/juju/client/connection.py index 1a9e8e9..56f9e18 100644 --- a/juju/client/connection.py +++ b/juju/client/connection.py @@ -28,7 +28,13 @@ class Connection: client = await Connection.connect_current() """ - def __init__(self): + def __init__(self, endpoint, uuid, username, password, cacert=None): + self.endpoint = endpoint + self.uuid = uuid + self.username = username + self.password = password + self.cacert = cacert + self.__request_id__ = 0 self.addr = None self.ws = None @@ -70,14 +76,28 @@ class Connection: raise RuntimeError(result) return result + async def clone(self): + """Return a new Connection, connected to the same websocket endpoint + as this one. + + """ + return await Connection.connect( + self.endpoint, + self.uuid, + self.username, + self.password, + self.cacert, + ) + @classmethod async def connect(cls, endpoint, uuid, username, password, cacert=None): url = "wss://{}/model/{}/api".format(endpoint, uuid) - client = cls() + client = cls(endpoint, uuid, username, password, cacert) await client.open(url, cacert) server_info = await client.login(username, password) client.build_facades(server_info['facades']) log.info("Driver connected to juju %s", endpoint) + return client @classmethod