Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 2012-10-08 11:56:42,013 UNHANDLED EXCEPTION (2012-10-08 11:56:41.987546)
- Working directory: /opt/noc
- <class 'mongoengine.base.ValidationError'>
- Unable to dereference <class 'noc.inv.models.interface.Interface'>:4eddc526f3b6825b8c001367
- START OF TRACEBACK
- ------------------------------------------------------------------------
- File: /opt/noc/lib/nosql.py (Line: 103)
- Function: __get__
- 96 # Dereference DBRefs
- 97 if isinstance(value, ObjectId):
- 98 v = self.document_type.objects(id=value).first()
- 99 if v is not None:
- 100 instance._data[self.name] = v
- 101 else:
- 102 raise ValidationError("Unable to dereference %s:%s" % (
- 103 ==> self.document_type, value))
- 104 return super(PlainReferenceField, self).__get__(instance, owner)
- 105
- 106 def to_mongo(self, document):
- 107 if isinstance(document, Document):
- 108 # We need the id from the saved object to create the DBRef
- 109 id_ = document.id
- Variables:
- owner = <class 'noc.inv.models.subinterface.SubInterface'>
- instance = repr() failed
- self = <noc.lib.nosql.PlainReferenceField object at 0x806c70990>
- value = ObjectId('4eddc526f3b6825b8c001367')
- v = None
- ------------------------------------------------------------------------
- File: /opt/noc/inv/discovery/jobs/mac_discovery.py (Line: 67)
- Function: can_run
- 60 if not super(MACDiscoveryJob, self).can_run():
- 61 return False
- 62 # Check object has bridge interfaces
- 63 # with enabled MAC discovery
- 64 for si in SubInterface.objects.filter(
- 65 managed_object=self.object.id,
- 66 enabled_afi="BRIDGE"):
- 67 ==> if si.interface.profile.mac_discovery:
- 68 return True
- 69 # No suitable interfaces
- 70 return False
- Variables:
- si = repr() failed
- self = <noc.inv.discovery.jobs.mac_discovery.MACDiscoveryJob object at 0x80721eb10>
- ------------------------------------------------------------------------
- File: /opt/noc/lib/scheduler/scheduler.py (Line: 193)
- Function: run_job
- 186 # Dereference job
- 187 if not job.dereference():
- 188 logging.info("Cannot dereference job %s(%s). Removing" % (
- 189 job.name, job.key))
- 190 self.remove_job(job.name, job.key)
- 191 return
- 192 # Check job can be run
- 193 ==> if not job.can_run():
- 194 return
- 195 # Change status
- 196 s = "threaded " if job.threaded else ""
- 197 self.info("Running %sjob %s(%s)" % (s, job.name, job.get_display_key()))
- 198 job.started = time.time()
- 199 self.collection.update({
- Variables:
- job = <noc.inv.discovery.jobs.mac_discovery.MACDiscoveryJob object at 0x80721eb10>
- self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x804f74410>
- ------------------------------------------------------------------------
- File: /opt/noc/lib/scheduler/scheduler.py (Line: 334)
- Function: run_pending
- 327 self.set_job_status(job_data[self.ATTR_CLASS],
- 328 job_data[self.ATTR_KEY], self.S_FAIL)
- 329 continue
- 330 job = jcls(self,
- 331 job_data[self.ATTR_KEY], job_data[self.ATTR_DATA],
- 332 job_data[self.ATTR_SCHEDULE]
- 333 )
- 334 ==> self.run_job(job)
- 335 n += 1
- 336 return n
- 337
- 338 def run(self):
- 339 if self.reset_running:
- 340 # Change running to waiting
- Variables:
- jcls = <class 'noc.inv.discovery.jobs.mac_discovery.MACDiscoveryJob'>
- keys = [...]
- throttled = set([])
- self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x804f74410>
- job_data = {u'runs': 105, u'last': datetime.datetime(2012, 10, 8, 8, 55, 7, 794000), u'log': [], u'jcls': u'mac_discovery', u'schedule': {u'interval': 10800, u'randomize': True, u'failed_interval': 900, u'offset': 0.6395436370508348}, u'ldur': 3.1057279109954834, u'ts': datetime.datetime(2012, 10, 8, 11, 55, 7, 71000), u'tb': None, u's': u'W', u'ls': u'S', u'key': 139, u'_id': ObjectId('506086dcf3b68269cd0000b7'), u'data': {}}
- t0 = 1349683001.2837
- n = 4
- q = {'s': 'W', 'ts': {'$lte': datetime.datetime(2012, 10, 8, 11, 56, 41, 880044)}, 'jcls': {'$nin': ['interface_discovery', 'ip_discovery']}}
- job = <noc.inv.discovery.jobs.mac_discovery.MACDiscoveryJob object at 0x80721eb10>
- x = {u'_id': ObjectId('506062edf3b6824f3d000094'), u'key': 2255}
- ------------------------------------------------------------------------
- File: /opt/noc/lib/scheduler/scheduler.py (Line: 349)
- Function: run
- 342 self.collection.update({
- 343 self.ATTR_STATUS: self.S_RUN
- 344 }, {
- 345 "$set": {self.ATTR_STATUS: self.S_WAIT}
- 346 }, multi=True, safe=True)
- 347 self.info("Running scheduler")
- 348 while True:
- 349 ==> if not self.run_pending():
- 350 time.sleep(1)
- 351 else:
- 352 self.cleanup()
- 353
- 354 def wipe(self):
- 355 """
- Variables:
- self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x804f74410>
- ------------------------------------------------------------------------
- File: /opt/noc/inv/discovery/daemon.py (Line: 22)
- Function: run
- 15 daemon_name = "noc-discovery"
- 16
- 17 def __init__(self, *args, **kwargs):
- 18 super(DiscoveryDaemon, self).__init__(*args, **kwargs)
- 19 self.scheduler = DiscoveryScheduler(self)
- 20
- 21 def run(self):
- 22 ==> self.scheduler.run()
- 23
- 24 # def report_address_collisions(self):
- 25 # ctx = {
- 26 # "count": len(self.address_collisions),
- 27 # "collisions": [
- 28 # {
- Variables:
- self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x803856150>
- ------------------------------------------------------------------------
- File: /opt/noc/lib/daemon.py (Line: 364)
- Function: guarded_run
- 357
- 358 def guarded_run(self):
- 359 """
- 360 Run daemon and catch common exceptions
- 361 :return:
- 362 """
- 363 try:
- 364 ==> self.run()
- 365 except KeyboardInterrupt:
- 366 pass
- 367 except MemoryError:
- 368 logging.error("Out of memory. Exiting.")
- 369 except SystemExit:
- 370 logging.info("Exiting")
- Variables:
- self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x803856150>
- ------------------------------------------------------------------------
- END OF TRACEBACK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement