35 except ValueError
as e:
42 ip = pyroute2.IPRoute()
43 idx = ip.link_lookup(ifname=self.
name)
45 raise ValueError(
'network interface not found.'.
format(name), name)
53 address, port = raw.rsplit(
':', 1)
56 raw,
'expect address as HOST:PORT pair')
59 value = cls(address, port)
60 except ValueError
as e:
71 address = socket.gethostbyname(address)
72 except socket.gaierror
as e:
74 'Unresolvable host name {!r}: {}'.
format(address, e))
87 def __init__(self, value, produce=False, override_none=True):
106 data = vars(instance)
109 def _resolve_name(self, owner):
115 for name
in dir(owner):
117 attr = getattr(owner, name)
118 except AttributeError:
125 '{!r} Unable to resolve bounded name (UNREACHABLE)'.
format(
133 pack_exclude = frozenset()
141 attr = getattr(cls, name)
142 except AttributeError:
144 if not isinstance(attr, Default):
149 if attr.override_none
and fields[name]
is None:
151 setattr(self, name, fields[name])
154 raise TypeError(
'{!r} got unknown arguments: "{}"'.
format(
155 self,
'", "'.join(sorted(extra))))
160 json.dumps(self.
pack(), sort_keys=
True, cls=JSONEncoder))
163 payload = vars(self).copy()
166 for name
in dir(cls):
167 if name.startswith(
'_'):
172 attr = getattr(cls, name)
173 if not isinstance(attr, Default):
175 payload[name] = getattr(self, name)
177 for name
in tuple(payload):
178 if not name.startswith(
'_')
and name
not in self.
pack_exclude:
192 pack_exclude = frozenset((
'index', ))
221 pack_exclude = frozenset((
'iface', ))
234 payload = super().
pack()
235 payload.pop(
'network')
236 payload[
'vlan'] = self.
iface.vlan_tag
248 addr, prefix = cidr.rsplit(
'/', 1)
249 prefix = int(prefix, 10)
252 'Invalid address {!r}, expect ipv4/prefix value'.
format(cidr))
260 pack_exclude = frozenset((
'proc', ))
266 payload = super().
pack()
268 kind = endpoint_type_map[
type(self)]
269 payload[
'type'] = kind.value
295 raise ValueError(
'Invalid time: {!r}'.
format(self.
time))
306 producer =
'producer' 307 consumer =
'consumer' 310 endpoint_klass_map = {
311 EndpointKind.producer: ProducerEndpoint,
312 EndpointKind.consumer: ConsumerEndpoint}
313 endpoint_type_map = {v: k
for k, v
in endpoint_klass_map.items()}
328 if self.
upper <= item:
340 if isinstance(o, Abstract):
342 elif isinstance(o, uuid.UUID):
def __init__(self, fields)
def __init__(self, address, fields)
def __init__(self, address, port, fields)
def new_from_cli(cls, name)
def __init__(self, name, fields)
def __init__(self, remote_address, fields)
def __init__(self, bind_address, fields)
def __get__(self, instance, owner)
def __init__(self, address, port)
def __init__(self, tag, fields)
def free_port(self, port)
def set_iface(self, iface)
def is_filled(self, instance)
def _resolve_name(self, owner)
def __init__(self, value, produce=False, override_none=True)
def convert_address(address)
def new_from_cli(cls, raw)
def __init__(self, lower=1024, upper=65535)