From f1c340fb3df4e34b1cd49ad28cf5a31b79240f80 Mon Sep 17 00:00:00 2001 From: clerie Date: Sun, 16 Jan 2022 13:52:08 +0100 Subject: [PATCH] Add GetPPDev message --- mitel_ommclient2/client.py | 12 ++++++++++++ mitel_ommclient2/messages/__init__.py | 2 ++ mitel_ommclient2/messages/getppdev.py | 27 +++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 mitel_ommclient2/messages/getppdev.py diff --git a/mitel_ommclient2/client.py b/mitel_ommclient2/client.py index 897ca96..154e3a8 100644 --- a/mitel_ommclient2/client.py +++ b/mitel_ommclient2/client.py @@ -50,6 +50,18 @@ class OMMClient2: return None return r.account[0] + def get_pp_dev(self, ppn): + """ + Get PP device + + :param id: Device id + """ + r = self.session.request(messages.GetPPDev(ppn)) + r.raise_on_error() + if r.pp is None: + return None + return r.pp[0] + def ping(self): """ Is OMM still there? diff --git a/mitel_ommclient2/messages/__init__.py b/mitel_ommclient2/messages/__init__.py index 866dc3f..4f16779 100644 --- a/mitel_ommclient2/messages/__init__.py +++ b/mitel_ommclient2/messages/__init__.py @@ -98,6 +98,7 @@ class Response: return self.attrs.get("maxLen") from .getaccount import GetAccount, GetAccountResp +from .getppdev import GetPPDev, GetPPDevResp from .open import Open, OpenResp from .ping import Ping, PingResp @@ -124,6 +125,7 @@ def construct(request): def _response_type_by_name(name): response_types = [ GetAccountResp, + GetPPDevResp, PingResp, ] diff --git a/mitel_ommclient2/messages/getppdev.py b/mitel_ommclient2/messages/getppdev.py new file mode 100644 index 0000000..5a742a3 --- /dev/null +++ b/mitel_ommclient2/messages/getppdev.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +from . import Request, Response + + +class GetPPDev(Request): + def __init__(self, ppn, maxRecords=None, **kwargs): + super().__init__("GetPPDev", **kwargs) + + self.attrs["ppn"] = ppn + + if maxRecords is not None: + self.attrs["maxRecords"] = maxRecords + + @property + def ppn(self): + return self.attrs.get("ppn") + + @property + def maxRecords(self): + return self.attrs.get("maxRecords") + + +class GetPPDevResp(Response): + @property + def pp(self): + return self.childs.get("pp")