Initial commit
This commit is contained in:
37
drivers/__init__.py
Normal file
37
drivers/__init__.py
Normal file
@@ -0,0 +1,37 @@
|
||||
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
|
||||
Reference in New Issue
Block a user