PROCESS: ./services/discovery/
service.pyVERSION: stable
BRANCH: HEAD CHANGESET: 19848b80
ERROR FINGERPRINT: 8a72c8c3-a209-5dcc-905f-50714b450758
WORKING DIRECTORY: /opt/noc
EXCEPTION: <class 'django.core.exceptions.ValidationError'> ['Invalid IPv4 prefix']
START OF TRACEBACK
------------------------------------------------------------------------
File: core/
validators.py (Line: 530)
Function: inner_validator
523 Traceback (most recent call last):
524 ...
525 ValidationError: [u'invalid int']
526 """
527 # Validator closure
528 def inner_validator(value, *args, **kwargs):
529 if not check(value):
530 ==> raise ValidationError(error_message)
531 return value
532
533 return inner_validator
534
535 #
536 # Validators
Variables:
value = 'VOLO/32'
args = ()
kwargs = {}
check = <function is_ipv4_prefix at 0x7f010f4a2a60>
error_message = 'Invalid IPv4 prefix'
------------------------------------------------------------------------
File: core/
ip.py (Line: 297)
Function:
init 290 :type netmask: str
291 """
292 if "/" not in prefix:
293 if netmask:
294 prefix += "/%d" % self.netmask_to_len(netmask)
295 else:
296 prefix += "/32"
297 ==> check_ipv4_prefix(prefix)
298 super().
init(prefix)
299 # Convert to int
300 self.d = struct.unpack("!I", socket.inet_aton(self.address))[0]
301
302
@classmethod 303 def netmask_to_len(cls, netmask):
Variables:
self = <IPv4 <bound method IP.prefix of <class 'noc.core.ip.IPv4'>>>
prefix = 'VOLO/32'
netmask = None
class = <class 'noc.core.ip.IPv4'>
------------------------------------------------------------------------
File: core/confdb/normalizer/
base.py (Line: 234)
Function: yield_resolved
227 yield from rt()
228 else:
229 yield rt
230
231 def defer(self, context, gen=None, **kwargs):
232 def yield_resolved():
233 for rp in resolved:
234 ==> yield rp()
235
236 ctx = self.deferable_contexts[context]
237 # Split resolved and deferred variables
238 deferables = {}
239 nkwargs = {}
240 for k in kwargs:
Variables:
rp =
functools.partial(<bound method make_inet_static_route_next_hop of <noc.sa.profiles.MikroTik.RouterOS.confdb.normalizer.RouterOSNormalizer object at 0x7f00ded0cb50>>, route='
10.0.0.0/8', next_hop='VOLO')
resolved =
[functools.partial(<bound method make_inet_static_route_next_hop of <noc.sa.profiles.MikroTik.RouterOS.confdb.normalizer.RouterOSNormalizer object at 0x7f00ded0cb50>>, route='
10.0.0.0/8', next_hop='VOLO')]
------------------------------------------------------------------------
File: core/confdb/normalizer/
base.py (Line: 227)
Function:
iter 220 for tokens in self.tokenizer:
221 for node in self.mtree.iter_matched(tokens):
222 # Feed normalized
223 for rt in node.handler(self, tokens):
224 if rt is None:
225 continue # Unresolved defer
226 if callable(rt): # Resolved defers
227 ==> yield from rt()
228 else:
229 yield rt
230
231 def defer(self, context, gen=None, **kwargs):
232 def yield_resolved():
233 for rp in resolved:
Variables:
self =
<noc.sa.profiles.MikroTik.RouterOS.confdb.normalizer.RouterOSNormalizer object at 0x7f00ded0cb50>