38 lines
990 B
Python
38 lines
990 B
Python
from abc import ABC, abstractmethod
|
|
|
|
class OltDriver(ABC):
|
|
"""
|
|
Classe base abstrata para drivers de OLT.
|
|
Todos os drivers específicos devem herdar desta classe e implementar
|
|
seus métodos abstratos.
|
|
"""
|
|
def __init__(self, host, username, password, **kwargs):
|
|
self.host = host
|
|
self.username = username
|
|
self.password = password
|
|
self.options = kwargs
|
|
|
|
@abstractmethod
|
|
def connect(self):
|
|
"""
|
|
Estabelece a conexão com a OLT (SSH/Telnet).
|
|
Deve retornar o objeto de conexão (ex: Netmiko connection handler).
|
|
"""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_olt_stats(self):
|
|
"""
|
|
Coleta estatísticas completas da OLT (Cards > PONs > ONTs).
|
|
Deve retornar um dicionário hierárquico:
|
|
{
|
|
"FGLT": [
|
|
{
|
|
"cardIndex": "...",
|
|
"pons": [...]
|
|
}
|
|
]
|
|
}
|
|
"""
|
|
pass
|