Source code for openvpn_status.models
from __future__ import unicode_literals, absolute_import
from collections import OrderedDict
from ipaddress import ip_address
from .descriptors import LabelProperty, name_descriptors
from .utils import parse_time, parse_peer, parse_filesize
@name_descriptors
[docs]class Status(object):
"""The OpenVPN status model."""
client_list = LabelProperty('OpenVPN CLIENT LIST', OrderedDict)
routing_table = LabelProperty('ROUTING TABLE', OrderedDict)
global_stats = LabelProperty('GLOBAL STATS')
updated_at = LabelProperty('Updated', input_type=parse_time)
@name_descriptors
[docs]class Client(object):
"""The OpenVPN client model."""
common_name = LabelProperty('Common Name')
real_address = LabelProperty('Real Address', input_type=parse_peer)
bytes_received = LabelProperty('Bytes Received', input_type=parse_filesize)
bytes_sent = LabelProperty('Bytes Sent', input_type=parse_filesize)
connected_since = LabelProperty('Connected Since', input_type=parse_time)
@name_descriptors
[docs]class Routing(object):
"""The OpenVPN routing model."""
virtual_address = LabelProperty('Virtual Address', input_type=ip_address)
common_name = LabelProperty('Common Name')
real_address = LabelProperty('Real Address', input_type=parse_peer)
last_ref = LabelProperty('Last Ref', input_type=parse_time)
@name_descriptors
[docs]class GlobalStats(object):
"""The OpenVPN global stats model."""
max_bcast_mcast_queue_len = LabelProperty(
'Max bcast/mcast queue length', input_type=int)