X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Funit.py;h=8511a47775edec3e97b218e02211a4ab579ce618;hb=e8bc07a4dd87d202f2f4d5dced88ad0a6785ee0a;hp=1f8254f3a5aead2bafd68a64e529ef7c5b092636;hpb=0d04ff68bd882b448c0770f23f14e9ec59e0d513;p=osm%2FN2VC.git diff --git a/juju/unit.py b/juju/unit.py index 1f8254f..8511a47 100644 --- a/juju/unit.py +++ b/juju/unit.py @@ -227,5 +227,18 @@ class Unit(model.ModelEntity): status = await c.FullStatus(None) - return status.applications[app]['units'][self.name].get( - 'leader', False) + try: + return status.applications[app]['units'][self.name].get( + 'leader', False) + except KeyError: + # FullStatus may be more up-to-date than the model + # referenced by this class. If this unit has been + # destroyed between the time the class was created and the + # time that we call this method, we'll get a KeyError. In + # that case, we simply return False, as a destroyed unit + # is not a leader. + return False + + async def get_metrics(self): + metrics = await self.model.get_metrics(self.tag) + return metrics[self.name]