Shad Ansari | d88692c | 2022-02-01 22:47:43 +0000 | [diff] [blame^] | 1 | """ |
| 2 | SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org> |
| 3 | SPDX-License-Identifier: LicenseRef-ONF-Member-1.01 |
| 4 | """ |
| 5 | |
| 6 | import logging as log |
| 7 | from datetime import datetime |
| 8 | |
| 9 | |
| 10 | class Device(object): |
| 11 | |
| 12 | def __init__(self, imsi_id, imsi, ip=None): |
| 13 | # log.debug("creating device, imsi_id={}, imsi={}, ip={}".format(imsi_id, imsi, ip)) |
| 14 | self.imsi_id = imsi_id |
| 15 | self.imsi = imsi |
| 16 | self.ip = ip |
| 17 | self.reachable = False |
| 18 | self.last_reachable = datetime.min |
| 19 | |
| 20 | @classmethod |
| 21 | def get_reachable(cls, devices): |
| 22 | reachable = {} |
| 23 | for _, device in devices.items(): |
| 24 | if device.reachable is True: |
| 25 | reachable[device.imsi_id] = {'ip':device.ip, 'imsi':device.imsi, 'last_reachable':'{:%Y-%m-%d %H:%M:%S}'.format(device.last_reachable)} |
| 26 | last_reachable = datetime(1, 1, 1, 0, 0) |
| 27 | |
| 28 | return reachable |
| 29 | |
| 30 | @classmethod |
| 31 | def get_unreachable(cls, devices): |
| 32 | unreachable = {} |
| 33 | for _, device in devices.items(): |
| 34 | if device.reachable is False: |
| 35 | unreachable[device.imsi_id] = {'ip':device.ip, 'imsi':device.imsi, 'last_reachable':'{:%Y-%m-%d %H:%M:%S}'.format(device.last_reachable)} |
| 36 | |
| 37 | return unreachable |
| 38 | |
| 39 | |
| 40 | |
| 41 | |