Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 2015-07-15 11:29:35,570 [noc.lib.scheduler.scheduler] [inv.discovery] Resetting running jobs
- 2015-07-15 11:29:35,573 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: ts
- 2015-07-15 11:29:35,575 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: jcls, key
- 2015-07-15 11:29:35,576 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: s, ts, jcls
- 2015-07-15 11:29:35,578 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: key, s
- 2015-07-15 11:29:35,579 [noc.lib.scheduler.scheduler] [inv.discovery] Indexes are ready
- 2015-07-15 11:29:35,580 [noc.lib.scheduler.scheduler] [inv.discovery] Running scheduler
- 2015-07-15 11:29:35,651 [noc.lib.scheduler.job] [inv.discovery][uptime_discovery][cct01-ser-ltc] Running job
- 2015-07-15 11:29:35,654 [noc.lib.scheduler.job] [inv.discovery][uptime_discovery][cct01-ser-ltc] Running script get_uptime
- 2015-07-15 11:29:35,705 [noc.lib.scheduler.job] [inv.discovery][lldp_discovery][MX-LAZ] Running job
- 2015-07-15 11:29:35,708 [noc.lib.scheduler.job] [inv.discovery][lldp_discovery][MX-LAZ] Running script get_lldp_neighbors
- 2015-07-15 11:29:36,033 [noc.lib.debug] UNHANDLED EXCEPTION (2015-07-15 11:29:35.742441)
- BRANCH: develop TIP: abd6a2989d7a
- PROCESS: ./scripts/noc-discovery.py
- ERROR FINGERPRINT: 50906390-6a03-5303-866b-da6fdeea97e7
- WORKING DIRECTORY: /opt/noc
- EXCEPTION: <class 'noc.inv.models.networksegment.DoesNotExist'> NetworkSegment matching query does not exist.
- START OF TRACEBACK
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/mongoengine/queryset/base.py (Line: 239)
- Function: get
- 232 queryset = queryset.filter(*q_objs, **query)
- 233
- 234 try:
- 235 result = queryset.next()
- 236 except StopIteration:
- 237 msg = ("%s matching query does not exist."
- 238 % queryset._document._class_name)
- 239 ==> raise queryset._document.DoesNotExist(msg)
- 240 try:
- 241 queryset.next()
- 242 except StopIteration:
- 243 return result
- 244
- 245 queryset.rewind()
- Variables:
- msg = 'NetworkSegment matching query does not exist.'
- query = {'id': u'55a51f647e85c97402201f32'}
- self = [<NetworkSegment: ALL>]
- queryset = []
- q_objs = ()
- ------------------------------------------------------------------------
- File: lib/fields.py (Line: 318)
- Function: to_python
- 311 def db_type(self, connection):
- 312 return "CHAR(24)"
- 313
- 314 def to_python(self, value):
- 315 if value is None:
- 316 return None
- 317 else:
- 318 ==> return self.document.objects.get(id=value)
- 319
- 320 def get_prep_value(self, value):
- 321 if value is None:
- 322 return None
- 323 elif isinstance(value, basestring):
- 324 return value
- Variables:
- self = <noc.lib.fields.DocumentReferenceField: segment>
- value = u'55a51f647e85c97402201f32'
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/django/db/models/fields/subclassing.py (Line: 34)
- Function: __set__
- 27
- 28 def __get__(self, obj, type=None):
- 29 if obj is None:
- 30 raise AttributeError('Can only be accessed via an instance.')
- 31 return obj.__dict__[self.field.name]
- 32
- 33 def __set__(self, obj, value):
- 34 ==> obj.__dict__[self.field.name] = self.field.to_python(value)
- 35
- 36 def make_contrib(superclass, func=None):
- 37 """
- 38 Returns a suitable contribute_to_class() method for the Field subclass.
- 39
- 40 If 'func' is passed in, it is the existing contribute_to_class() method on
- Variables:
- self = <django.db.models.fields.subclassing.Creator object at 0x2e09e50>
- obj = <ManagedObject: AGG-SER-2>
- value = u'55a51f647e85c97402201f32'
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/django/db/models/base.py (Line: 300)
- Function: __init__
- 293 fields_iter = iter(self._meta.fields)
- 294 if not kwargs:
- 295 # The ordering of the izip calls matter - izip throws StopIteration
- 296 # when an iter throws it. So if the first iter throws it, the second
- 297 # is *not* consumed. We rely on this, so don't change the order
- 298 # without changing the logic.
- 299 for val, field in izip(args, fields_iter):
- 300 ==> setattr(self, field.attname, val)
- 301 else:
- 302 # Slower, kwargs-ready version.
- 303 for val, field in izip(args, fields_iter):
- 304 setattr(self, field.attname, val)
- 305 kwargs.pop(field.name, None)
- 306 # Maintain compatibility with existing calls.
- Variables:
- fields_iter = <listiterator object at 0x36f6e50>
- val = u'55a51f647e85c97402201f32'
- args_len = 32
- self = <ManagedObject: AGG-SER-2>
- args =
- (384,
- u'AGG-SER-2',
- True,
- 14,
- u'55a51f647e85c97402201f32',
- 1,
- None,
- u'Qtech.QSW2800',
- 2,
- u'AGG-SER-2',
- None,
- 0,
- u'10.12.170.22',
- 0,
- u'admin',
- u'admin',
- u'admin',
- u'AGG-SER-2',
- '10.12.170.22',
- u'public',
- u'public',
- None,
- 1,
- 1,
- None,
- None,
- u'Cisco/layer_3_switch',
- None,
- None,
- None,
- 99,
- ['fttb', 'aggregators', 'sernur'])
- field = <noc.lib.fields.DocumentReferenceField: segment>
- kwargs = {}
- ------------------------------------------------------------------------
- File: sa/models/managedobject.py (Line: 226)
- Function: __init__
- 219 if not a:
- 220 raise AttributeError(name)
- 221 cw = ManagedObject.ActionsProxy.CallWrapper(self._object, name, a)
- 222 self._cache[name] = cw
- 223 return cw
- 224
- 225 def __init__(self, *args, **kwargs):
- 226 ==> super(ManagedObject, self).__init__(*args, **kwargs)
- 227 self.scripts = ManagedObject.ScriptsProxy(self)
- 228 self.actions = ManagedObject.ActionsProxy(self)
- 229
- 230 def __unicode__(self):
- 231 return self.name
- 232
- Variables:
- self = <ManagedObject: AGG-SER-2>
- args =
- (384,
- u'AGG-SER-2',
- True,
- 14,
- u'55a51f647e85c97402201f32',
- 1,
- None,
- u'Qtech.QSW2800',
- 2,
- u'AGG-SER-2',
- None,
- 0,
- u'10.12.170.22',
- 0,
- u'admin',
- u'admin',
- u'admin',
- u'AGG-SER-2',
- '10.12.170.22',
- u'public',
- u'public',
- None,
- 1,
- 1,
- None,
- None,
- u'Cisco/layer_3_switch',
- None,
- None,
- None,
- 99,
- ['fttb', 'aggregators', 'sernur'])
- kwargs = {}
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/django/db/models/query.py (Line: 301)
- Function: iterator
- 294 offset=len(aggregate_select))
- 295 else:
- 296 if skip:
- 297 row_data = row[index_start:aggregate_start]
- 298 obj = model_cls(**dict(zip(init_list, row_data)))
- 299 else:
- 300 # Omit aggregates in object creation.
- 301 ==> obj = model(*row[index_start:aggregate_start])
- 302
- 303 # Store the source database of the object
- 304 obj._state.db = db
- 305 # This object came from the database; it's not being added.
- 306 obj._state.adding = False
- 307
- Variables:
- requested = None
- fill_cache = False
- aggregate_select = []
- fields =
- [<django.db.models.fields.AutoField: id>,
- <django.db.models.fields.CharField: name>,
- <django.db.models.fields.BooleanField: is_managed>,
- <django.db.models.fields.related.ForeignKey: administrative_domain>,
- <noc.lib.fields.DocumentReferenceField: segment>,
- <django.db.models.fields.related.ForeignKey: activator>,
- <django.db.models.fields.related.ForeignKey: collector>,
- <django.db.models.fields.CharField: profile_name>,
- <django.db.models.fields.related.ForeignKey: object_profile>,
- <django.db.models.fields.CharField: description>,
- <django.db.models.fields.related.ForeignKey: auth_profile>,
- <django.db.models.fields.IntegerField: scheme>,
- <django.db.models.fields.CharField: address>,
- <django.db.models.fields.IntegerField: port>,
- <django.db.models.fields.CharField: user>,
- <django.db.models.fields.CharField: password>,
- <django.db.models.fields.CharField: super_password>,
- <django.db.models.fields.CharField: remote_path>,
- <noc.lib.fields.INETField: trap_source_ip>,
- <django.db.models.fields.CharField: trap_community>,
- <django.db.models.fields.CharField: snmp_ro>,
- <django.db.models.fields.CharField: snmp_rw>,
- <django.db.models.fields.related.ForeignKey: vc_domain>,
- <django.db.models.fields.related.ForeignKey: vrf>,
- <django.db.models.fields.related.ForeignKey: termination_group>,
- <django.db.models.fields.related.ForeignKey: service_terminator>,
- <django.db.models.fields.CharField: shape>,
- <django.db.models.fields.related.ForeignKey: config_filter_rule>,
- <django.db.models.fields.related.ForeignKey: config_diff_filter_rule>,
- <django.db.models.fields.related.ForeignKey: config_validation_rule>,
- <django.db.models.fields.IntegerField: max_scripts>,
- <noc.lib.fields.TagsField: tags>]
- skip = None
- self = repr() failed
- load_fields = []
- db = 'default'
- index_start = 0
- extra_select = []
- aggregate_start = 32
- model = <class 'noc.sa.models.managedobject.ManagedObject'>
- row =
- (384,
- u'AGG-SER-2',
- True,
- 14,
- u'55a51f647e85c97402201f32',
- 1,
- None,
- u'Qtech.QSW2800',
- 2,
- u'AGG-SER-2',
- None,
- 0,
- u'10.12.170.22',
- 0,
- u'admin',
- u'admin',
- u'admin',
- u'AGG-SER-2',
- '10.12.170.22',
- u'public',
- u'public',
- None,
- 1,
- 1,
- None,
- None,
- u'Cisco/layer_3_switch',
- None,
- None,
- None,
- 99,
- ['fttb', 'aggregators', 'sernur'])
- only_load = {}
- max_depth = 5
- compiler = <django.db.models.sql.compiler.SQLCompiler object at 0x36e4e10>
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/django/db/models/query.py (Line: 85)
- Function: __len__
- 78 # Since __len__ is called quite frequently (for example, as part of
- 79 # list(qs), we make some effort here to be as efficient as possible
- 80 # whilst not messing up any existing iterators against the QuerySet.
- 81 if self._result_cache is None:
- 82 if self._iter:
- 83 self._result_cache = list(self._iter)
- 84 else:
- 85 ==> self._result_cache = list(self.iterator())
- 86 elif self._iter:
- 87 self._result_cache.extend(self._iter)
- 88 if self._prefetch_related_lookups and not self._prefetch_done:
- 89 self._prefetch_related_objects()
- 90 return len(self._result_cache)
- 91
- Variables:
- self = repr() failed
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/django/db/models/query.py (Line: 361)
- Function: get
- 354 """
- 355 Performs the query and returns a single object matching the given
- 356 keyword arguments.
- 357 """
- 358 clone = self.filter(*args, **kwargs)
- 359 if self.query.can_filter():
- 360 clone = clone.order_by()
- 361 ==> num = len(clone)
- 362 if num == 1:
- 363 return clone._result_cache[0]
- 364 if not num:
- 365 raise self.model.DoesNotExist("%s matching query does not exist."
- 366 % self.model._meta.object_name)
- 367 raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
- Variables:
- clone = repr() failed
- args = ()
- self = repr() failed
- kwargs = {'is_managed': True, 'id': 384}
- ------------------------------------------------------------------------
- File: lib/python2.6/site-packages/django/db/models/manager.py (Line: 131)
- Function: get
- 124 def distinct(self, *args, **kwargs):
- 125 return self.get_query_set().distinct(*args, **kwargs)
- 126
- 127 def extra(self, *args, **kwargs):
- 128 return self.get_query_set().extra(*args, **kwargs)
- 129
- 130 def get(self, *args, **kwargs):
- 131 ==> return self.get_query_set().get(*args, **kwargs)
- 132
- 133 def get_or_create(self, **kwargs):
- 134 return self.get_query_set().get_or_create(**kwargs)
- 135
- 136 def create(self, **kwargs):
- 137 return self.get_query_set().create(**kwargs)
- Variables:
- self = <django.db.models.manager.Manager object at 0x2e09e90>
- args = ()
- kwargs = {'is_managed': True, 'id': 384}
- ------------------------------------------------------------------------
- File: lib/scheduler/job.py (Line: 193)
- Function: dereference
- 186
- 187 def dereference(self):
- 188 if self.model:
- 189 q = self.get_defererence_query()
- 190 if q is None:
- 191 return False
- 192 try:
- 193 ==> self.object = self.model.objects.get(**q)
- 194 self.logger.set_prefix(
- 195 "%s][%s][%s" % (self.scheduler.name, self.name,
- 196 self.get_display_key())
- 197 )
- 198 except self.model.DoesNotExist:
- 199 return False
- Variables:
- q = {'is_managed': True, 'id': 384}
- self =
- <noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob object at 0x360e9d0>
- ------------------------------------------------------------------------
- File: lib/scheduler/scheduler.py (Line: 261)
- Function: run_job
- 254 """
- 255 Begin job execution
- 256 :param job:
- 257 :return:
- 258 """
- 259 # Dereference job
- 260 self.metrics.jobs_dereference_count += 1
- 261 ==> if not job.dereference():
- 262 self.logger.info("Cannot dereference job %s(%s). Removing",
- 263 job.name, job.key)
- 264 self.remove_job(job.name, job.key)
- 265 self.metrics.jobs_dereference_failed += 1
- 266 return
- 267 self.metrics.jobs_dereference_success += 1
- Variables:
- job =
- <noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob object at 0x360e9d0>
- self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x31ab510>
- ------------------------------------------------------------------------
- File: lib/scheduler/scheduler.py (Line: 516)
- Function: run_pending
- 509 continue
- 510 # Check for group limits
- 511 group = job.get_group()
- 512 if self.can_run(job):
- 513 if group is not None:
- 514 with self.running_lock:
- 515 self.running_count[group] += 1
- 516 ==> self.run_job(job)
- 517 n += 1
- 518 elif self.mrt_overload:
- 519 break
- 520 return n
- 521
- 522 def run(self):
- Variables:
- group = 'discovery-384'
- jcls =
- <class 'noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob'>
- self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x31ab510>
- job_data =
- {u'_id': ObjectId('556efc0c7e85c956c547f4df'),
- u'data': None,
- u'f': 0,
- u'jcls': u'interface_discovery',
- u'key': 384,
- u'last': datetime.datetime(2015, 7, 15, 11, 28, 34, 415000),
- u'ldur': 60.999905109405518,
- u'log': [],
- u'ls': u'S',
- u'runs': 862,
- u's': u'W',
- u'schedule': {u'failed_interval': 600,
- u'interval': 86400,
- u'offset': 0.43865013354776228},
- u'st': datetime.datetime(2015, 7, 13, 12, 2, 59, 751000),
- u'tb': None,
- u'ts': datetime.datetime(2015, 7, 14, 13, 31, 39, 371000)}
- n = 2
- job =
- <noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob object at 0x360e9d0>
- ------------------------------------------------------------------------
- File: lib/scheduler/scheduler.py (Line: 534)
- Function: run
- 527 self.ATTR_STATUS: self.S_RUN
- 528 }, {
- 529 "$set": {self.ATTR_STATUS: self.S_WAIT}
- 530 }, multi=True, safe=True)
- 531 self.ensure_indexes()
- 532 self.logger.info("Running scheduler")
- 533 while True:
- 534 ==> if not self.run_pending():
- 535 time.sleep(1)
- 536 else:
- 537 self.cleanup()
- 538
- 539 def get_faults(self, job_name, key=None):
- 540 """
- Variables:
- self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x31ab510>
- ------------------------------------------------------------------------
- File: inv/discovery/daemon.py (Line: 37)
- Function: run
- 30
- 31 def run(self):
- 32 try:
- 33 PerformanceReportJob.submit(self.scheduler,
- 34 key="performance_report", interval=60)
- 35 except self.scheduler.JobExists:
- 36 pass
- 37 ==> self.scheduler.run()
- 38
- 39 def load_config(self):
- 40 super(DiscoveryDaemon, self).load_config()
- 41 self.load_beef_map()
- 42 log_jobs = self.config.get("main", "log_jobs") or None
- 43 self.scheduler.set_job_log(log_jobs)
- Variables:
- self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x7f4e52043510>
- ------------------------------------------------------------------------
- File: lib/daemon/base.py (Line: 433)
- Function: guarded_run
- 426 :return:
- 427 """
- 428 if self.start_delay:
- 429 self.logger.info("Delaying start for %s seconds",
- 430 self.start_delay)
- 431 time.sleep(self.start_delay)
- 432 try:
- 433 ==> self.run()
- 434 except KeyboardInterrupt:
- 435 pass
- 436 except MemoryError:
- 437 self.logger.error("Out of memory. Exiting.")
- 438 except SystemExit:
- 439 self.logger.info("Exiting")
- Variables:
- self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x7f4e52043510>
- ------------------------------------------------------------------------
- END OF TRACEBACK
- 2015-07-15 11:29:36,037 [noc-discovery] Removing pidfile: /var/run/noc/noc-discovery.pid
- 2015-07-15 11:29:36,037 [noc-discovery] STOP
Advertisement
Add Comment
Please, Sign In to add comment