-
Notifications
You must be signed in to change notification settings - Fork 2
/
base.py
139 lines (106 loc) · 3.27 KB
/
base.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
import json
import os
from collections import OrderedDict
from netengine.utils import manufacturer_lookup
__all__ = [
'BaseBackend'
]
class BaseBackend(object):
"""
Base NetEngine Backend
"""
__netengine__ = True
_dict = OrderedDict
def __str__(self):
raise NotImplementedError("Not implemented, must be extended")
def __repr__(self):
""" returns unicode string represantation """
return self.__str__()
def __unicode__(self):
""" unicode __str__() for python2.7 """
return unicode(self.__str__())
def validate(self):
raise NotImplementedError('Not implemented')
def to_dict(self):
raise NotImplementedError('Not implemented')
def to_json(self, **kwargs):
dictionary = self.to_dict()
return json.dumps(dictionary, **kwargs)
@property
def os(self):
"""
Not Implemented
should return a tuple in which
the first element is the OS name and
the second element is the OS version
"""
raise NotImplementedError('Not implemented')
@property
def name(self):
"""
Not Implemented
should return a string containing the device name
"""
raise NotImplementedError('Not implemented')
@property
def model(self):
"""
Not Implemented
should return a string containing the device model
"""
raise NotImplementedError('Not implemented')
@property
def RAM_total(self):
"""
Not Implemented
should return a string containing the device RAM in bytes
"""
raise NotImplementedError('Not implemented')
@property
def uptime(self):
"""
Not Implemented
should return an integer representing the number of seconds of uptime
"""
raise NotImplementedError('Not implemented')
@property
def uptime_tuple(self):
"""
Not Implemented
should return tuple (days, hours, minutes)
"""
raise NotImplementedError('Not implemented')
@property
def ethernet_standard(self):
raise NotImplementedError('Not implemented')
@property
def ethernet_duplex(self):
raise NotImplementedError('Not implemented')
@property
def wireless_channel_width(self):
raise NotImplementedError('Not implemented')
@property
def wireless_mode(self):
raise NotImplementedError('Not implemented')
@property
def wireless_channel(self):
raise NotImplementedError('Not implemented')
@property
def wireless_output_power(self):
raise NotImplementedError('Not implemented')
@property
def wireless_dbm(self):
raise NotImplementedError('Not implemented')
@property
def wireless_noise(self):
raise NotImplementedError('Not implemented')
# TODO: this sucks
@property
def olsr(self):
raise NotImplementedError('Not implemented')
def get_interfaces(self):
raise NotImplementedError('Not implemented')
def get_manufacturer(self, mac_address):
""" returns the manufacturer of the network interface """
# casting mac_address to str (unicode causes problems)
return manufacturer_lookup(mac_address)