Guest User

Untitled

a guest
Jul 15th, 2015
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.90 KB | None | 0 0
  1. 2015-07-15 11:29:35,570 [noc.lib.scheduler.scheduler] [inv.discovery] Resetting running jobs
  2. 2015-07-15 11:29:35,573 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: ts
  3. 2015-07-15 11:29:35,575 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: jcls, key
  4. 2015-07-15 11:29:35,576 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: s, ts, jcls
  5. 2015-07-15 11:29:35,578 [noc.lib.scheduler.scheduler] [inv.discovery] Checking indexes: key, s
  6. 2015-07-15 11:29:35,579 [noc.lib.scheduler.scheduler] [inv.discovery] Indexes are ready
  7. 2015-07-15 11:29:35,580 [noc.lib.scheduler.scheduler] [inv.discovery] Running scheduler
  8. 2015-07-15 11:29:35,651 [noc.lib.scheduler.job] [inv.discovery][uptime_discovery][cct01-ser-ltc] Running job
  9. 2015-07-15 11:29:35,654 [noc.lib.scheduler.job] [inv.discovery][uptime_discovery][cct01-ser-ltc] Running script get_uptime
  10. 2015-07-15 11:29:35,705 [noc.lib.scheduler.job] [inv.discovery][lldp_discovery][MX-LAZ] Running job
  11. 2015-07-15 11:29:35,708 [noc.lib.scheduler.job] [inv.discovery][lldp_discovery][MX-LAZ] Running script get_lldp_neighbors
  12. 2015-07-15 11:29:36,033 [noc.lib.debug] UNHANDLED EXCEPTION (2015-07-15 11:29:35.742441)
  13. BRANCH: develop TIP: abd6a2989d7a
  14. PROCESS: ./scripts/noc-discovery.py
  15. ERROR FINGERPRINT: 50906390-6a03-5303-866b-da6fdeea97e7
  16. WORKING DIRECTORY: /opt/noc
  17. EXCEPTION: <class 'noc.inv.models.networksegment.DoesNotExist'> NetworkSegment matching query does not exist.
  18. START OF TRACEBACK
  19. ------------------------------------------------------------------------
  20. File: lib/python2.6/site-packages/mongoengine/queryset/base.py (Line: 239)
  21. Function: get
  22. 232 queryset = queryset.filter(*q_objs, **query)
  23. 233
  24. 234 try:
  25. 235 result = queryset.next()
  26. 236 except StopIteration:
  27. 237 msg = ("%s matching query does not exist."
  28. 238 % queryset._document._class_name)
  29. 239 ==> raise queryset._document.DoesNotExist(msg)
  30. 240 try:
  31. 241 queryset.next()
  32. 242 except StopIteration:
  33. 243 return result
  34. 244
  35. 245 queryset.rewind()
  36. Variables:
  37. msg = 'NetworkSegment matching query does not exist.'
  38. query = {'id': u'55a51f647e85c97402201f32'}
  39. self = [<NetworkSegment: ALL>]
  40. queryset = []
  41. q_objs = ()
  42. ------------------------------------------------------------------------
  43. File: lib/fields.py (Line: 318)
  44. Function: to_python
  45. 311 def db_type(self, connection):
  46. 312 return "CHAR(24)"
  47. 313
  48. 314 def to_python(self, value):
  49. 315 if value is None:
  50. 316 return None
  51. 317 else:
  52. 318 ==> return self.document.objects.get(id=value)
  53. 319
  54. 320 def get_prep_value(self, value):
  55. 321 if value is None:
  56. 322 return None
  57. 323 elif isinstance(value, basestring):
  58. 324 return value
  59. Variables:
  60. self = <noc.lib.fields.DocumentReferenceField: segment>
  61. value = u'55a51f647e85c97402201f32'
  62. ------------------------------------------------------------------------
  63. File: lib/python2.6/site-packages/django/db/models/fields/subclassing.py (Line: 34)
  64. Function: __set__
  65. 27
  66. 28 def __get__(self, obj, type=None):
  67. 29 if obj is None:
  68. 30 raise AttributeError('Can only be accessed via an instance.')
  69. 31 return obj.__dict__[self.field.name]
  70. 32
  71. 33 def __set__(self, obj, value):
  72. 34 ==> obj.__dict__[self.field.name] = self.field.to_python(value)
  73. 35
  74. 36 def make_contrib(superclass, func=None):
  75. 37 """
  76. 38 Returns a suitable contribute_to_class() method for the Field subclass.
  77. 39
  78. 40 If 'func' is passed in, it is the existing contribute_to_class() method on
  79. Variables:
  80. self = <django.db.models.fields.subclassing.Creator object at 0x2e09e50>
  81. obj = <ManagedObject: AGG-SER-2>
  82. value = u'55a51f647e85c97402201f32'
  83. ------------------------------------------------------------------------
  84. File: lib/python2.6/site-packages/django/db/models/base.py (Line: 300)
  85. Function: __init__
  86. 293 fields_iter = iter(self._meta.fields)
  87. 294 if not kwargs:
  88. 295 # The ordering of the izip calls matter - izip throws StopIteration
  89. 296 # when an iter throws it. So if the first iter throws it, the second
  90. 297 # is *not* consumed. We rely on this, so don't change the order
  91. 298 # without changing the logic.
  92. 299 for val, field in izip(args, fields_iter):
  93. 300 ==> setattr(self, field.attname, val)
  94. 301 else:
  95. 302 # Slower, kwargs-ready version.
  96. 303 for val, field in izip(args, fields_iter):
  97. 304 setattr(self, field.attname, val)
  98. 305 kwargs.pop(field.name, None)
  99. 306 # Maintain compatibility with existing calls.
  100. Variables:
  101. fields_iter = <listiterator object at 0x36f6e50>
  102. val = u'55a51f647e85c97402201f32'
  103. args_len = 32
  104. self = <ManagedObject: AGG-SER-2>
  105. args =
  106. (384,
  107. u'AGG-SER-2',
  108. True,
  109. 14,
  110. u'55a51f647e85c97402201f32',
  111. 1,
  112. None,
  113. u'Qtech.QSW2800',
  114. 2,
  115. u'AGG-SER-2',
  116. None,
  117. 0,
  118. u'10.12.170.22',
  119. 0,
  120. u'admin',
  121. u'admin',
  122. u'admin',
  123. u'AGG-SER-2',
  124. '10.12.170.22',
  125. u'public',
  126. u'public',
  127. None,
  128. 1,
  129. 1,
  130. None,
  131. None,
  132. u'Cisco/layer_3_switch',
  133. None,
  134. None,
  135. None,
  136. 99,
  137. ['fttb', 'aggregators', 'sernur'])
  138. field = <noc.lib.fields.DocumentReferenceField: segment>
  139. kwargs = {}
  140. ------------------------------------------------------------------------
  141. File: sa/models/managedobject.py (Line: 226)
  142. Function: __init__
  143. 219 if not a:
  144. 220 raise AttributeError(name)
  145. 221 cw = ManagedObject.ActionsProxy.CallWrapper(self._object, name, a)
  146. 222 self._cache[name] = cw
  147. 223 return cw
  148. 224
  149. 225 def __init__(self, *args, **kwargs):
  150. 226 ==> super(ManagedObject, self).__init__(*args, **kwargs)
  151. 227 self.scripts = ManagedObject.ScriptsProxy(self)
  152. 228 self.actions = ManagedObject.ActionsProxy(self)
  153. 229
  154. 230 def __unicode__(self):
  155. 231 return self.name
  156. 232
  157. Variables:
  158. self = <ManagedObject: AGG-SER-2>
  159. args =
  160. (384,
  161. u'AGG-SER-2',
  162. True,
  163. 14,
  164. u'55a51f647e85c97402201f32',
  165. 1,
  166. None,
  167. u'Qtech.QSW2800',
  168. 2,
  169. u'AGG-SER-2',
  170. None,
  171. 0,
  172. u'10.12.170.22',
  173. 0,
  174. u'admin',
  175. u'admin',
  176. u'admin',
  177. u'AGG-SER-2',
  178. '10.12.170.22',
  179. u'public',
  180. u'public',
  181. None,
  182. 1,
  183. 1,
  184. None,
  185. None,
  186. u'Cisco/layer_3_switch',
  187. None,
  188. None,
  189. None,
  190. 99,
  191. ['fttb', 'aggregators', 'sernur'])
  192. kwargs = {}
  193. ------------------------------------------------------------------------
  194. File: lib/python2.6/site-packages/django/db/models/query.py (Line: 301)
  195. Function: iterator
  196. 294 offset=len(aggregate_select))
  197. 295 else:
  198. 296 if skip:
  199. 297 row_data = row[index_start:aggregate_start]
  200. 298 obj = model_cls(**dict(zip(init_list, row_data)))
  201. 299 else:
  202. 300 # Omit aggregates in object creation.
  203. 301 ==> obj = model(*row[index_start:aggregate_start])
  204. 302
  205. 303 # Store the source database of the object
  206. 304 obj._state.db = db
  207. 305 # This object came from the database; it's not being added.
  208. 306 obj._state.adding = False
  209. 307
  210. Variables:
  211. requested = None
  212. fill_cache = False
  213. aggregate_select = []
  214. fields =
  215. [<django.db.models.fields.AutoField: id>,
  216. <django.db.models.fields.CharField: name>,
  217. <django.db.models.fields.BooleanField: is_managed>,
  218. <django.db.models.fields.related.ForeignKey: administrative_domain>,
  219. <noc.lib.fields.DocumentReferenceField: segment>,
  220. <django.db.models.fields.related.ForeignKey: activator>,
  221. <django.db.models.fields.related.ForeignKey: collector>,
  222. <django.db.models.fields.CharField: profile_name>,
  223. <django.db.models.fields.related.ForeignKey: object_profile>,
  224. <django.db.models.fields.CharField: description>,
  225. <django.db.models.fields.related.ForeignKey: auth_profile>,
  226. <django.db.models.fields.IntegerField: scheme>,
  227. <django.db.models.fields.CharField: address>,
  228. <django.db.models.fields.IntegerField: port>,
  229. <django.db.models.fields.CharField: user>,
  230. <django.db.models.fields.CharField: password>,
  231. <django.db.models.fields.CharField: super_password>,
  232. <django.db.models.fields.CharField: remote_path>,
  233. <noc.lib.fields.INETField: trap_source_ip>,
  234. <django.db.models.fields.CharField: trap_community>,
  235. <django.db.models.fields.CharField: snmp_ro>,
  236. <django.db.models.fields.CharField: snmp_rw>,
  237. <django.db.models.fields.related.ForeignKey: vc_domain>,
  238. <django.db.models.fields.related.ForeignKey: vrf>,
  239. <django.db.models.fields.related.ForeignKey: termination_group>,
  240. <django.db.models.fields.related.ForeignKey: service_terminator>,
  241. <django.db.models.fields.CharField: shape>,
  242. <django.db.models.fields.related.ForeignKey: config_filter_rule>,
  243. <django.db.models.fields.related.ForeignKey: config_diff_filter_rule>,
  244. <django.db.models.fields.related.ForeignKey: config_validation_rule>,
  245. <django.db.models.fields.IntegerField: max_scripts>,
  246. <noc.lib.fields.TagsField: tags>]
  247. skip = None
  248. self = repr() failed
  249. load_fields = []
  250. db = 'default'
  251. index_start = 0
  252. extra_select = []
  253. aggregate_start = 32
  254. model = <class 'noc.sa.models.managedobject.ManagedObject'>
  255. row =
  256. (384,
  257. u'AGG-SER-2',
  258. True,
  259. 14,
  260. u'55a51f647e85c97402201f32',
  261. 1,
  262. None,
  263. u'Qtech.QSW2800',
  264. 2,
  265. u'AGG-SER-2',
  266. None,
  267. 0,
  268. u'10.12.170.22',
  269. 0,
  270. u'admin',
  271. u'admin',
  272. u'admin',
  273. u'AGG-SER-2',
  274. '10.12.170.22',
  275. u'public',
  276. u'public',
  277. None,
  278. 1,
  279. 1,
  280. None,
  281. None,
  282. u'Cisco/layer_3_switch',
  283. None,
  284. None,
  285. None,
  286. 99,
  287. ['fttb', 'aggregators', 'sernur'])
  288. only_load = {}
  289. max_depth = 5
  290. compiler = <django.db.models.sql.compiler.SQLCompiler object at 0x36e4e10>
  291. ------------------------------------------------------------------------
  292. File: lib/python2.6/site-packages/django/db/models/query.py (Line: 85)
  293. Function: __len__
  294. 78 # Since __len__ is called quite frequently (for example, as part of
  295. 79 # list(qs), we make some effort here to be as efficient as possible
  296. 80 # whilst not messing up any existing iterators against the QuerySet.
  297. 81 if self._result_cache is None:
  298. 82 if self._iter:
  299. 83 self._result_cache = list(self._iter)
  300. 84 else:
  301. 85 ==> self._result_cache = list(self.iterator())
  302. 86 elif self._iter:
  303. 87 self._result_cache.extend(self._iter)
  304. 88 if self._prefetch_related_lookups and not self._prefetch_done:
  305. 89 self._prefetch_related_objects()
  306. 90 return len(self._result_cache)
  307. 91
  308. Variables:
  309. self = repr() failed
  310. ------------------------------------------------------------------------
  311. File: lib/python2.6/site-packages/django/db/models/query.py (Line: 361)
  312. Function: get
  313. 354 """
  314. 355 Performs the query and returns a single object matching the given
  315. 356 keyword arguments.
  316. 357 """
  317. 358 clone = self.filter(*args, **kwargs)
  318. 359 if self.query.can_filter():
  319. 360 clone = clone.order_by()
  320. 361 ==> num = len(clone)
  321. 362 if num == 1:
  322. 363 return clone._result_cache[0]
  323. 364 if not num:
  324. 365 raise self.model.DoesNotExist("%s matching query does not exist."
  325. 366 % self.model._meta.object_name)
  326. 367 raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
  327. Variables:
  328. clone = repr() failed
  329. args = ()
  330. self = repr() failed
  331. kwargs = {'is_managed': True, 'id': 384}
  332. ------------------------------------------------------------------------
  333. File: lib/python2.6/site-packages/django/db/models/manager.py (Line: 131)
  334. Function: get
  335. 124 def distinct(self, *args, **kwargs):
  336. 125 return self.get_query_set().distinct(*args, **kwargs)
  337. 126
  338. 127 def extra(self, *args, **kwargs):
  339. 128 return self.get_query_set().extra(*args, **kwargs)
  340. 129
  341. 130 def get(self, *args, **kwargs):
  342. 131 ==> return self.get_query_set().get(*args, **kwargs)
  343. 132
  344. 133 def get_or_create(self, **kwargs):
  345. 134 return self.get_query_set().get_or_create(**kwargs)
  346. 135
  347. 136 def create(self, **kwargs):
  348. 137 return self.get_query_set().create(**kwargs)
  349. Variables:
  350. self = <django.db.models.manager.Manager object at 0x2e09e90>
  351. args = ()
  352. kwargs = {'is_managed': True, 'id': 384}
  353. ------------------------------------------------------------------------
  354. File: lib/scheduler/job.py (Line: 193)
  355. Function: dereference
  356. 186
  357. 187 def dereference(self):
  358. 188 if self.model:
  359. 189 q = self.get_defererence_query()
  360. 190 if q is None:
  361. 191 return False
  362. 192 try:
  363. 193 ==> self.object = self.model.objects.get(**q)
  364. 194 self.logger.set_prefix(
  365. 195 "%s][%s][%s" % (self.scheduler.name, self.name,
  366. 196 self.get_display_key())
  367. 197 )
  368. 198 except self.model.DoesNotExist:
  369. 199 return False
  370. Variables:
  371. q = {'is_managed': True, 'id': 384}
  372. self =
  373. <noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob object at 0x360e9d0>
  374. ------------------------------------------------------------------------
  375. File: lib/scheduler/scheduler.py (Line: 261)
  376. Function: run_job
  377. 254 """
  378. 255 Begin job execution
  379. 256 :param job:
  380. 257 :return:
  381. 258 """
  382. 259 # Dereference job
  383. 260 self.metrics.jobs_dereference_count += 1
  384. 261 ==> if not job.dereference():
  385. 262 self.logger.info("Cannot dereference job %s(%s). Removing",
  386. 263 job.name, job.key)
  387. 264 self.remove_job(job.name, job.key)
  388. 265 self.metrics.jobs_dereference_failed += 1
  389. 266 return
  390. 267 self.metrics.jobs_dereference_success += 1
  391. Variables:
  392. job =
  393. <noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob object at 0x360e9d0>
  394. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x31ab510>
  395. ------------------------------------------------------------------------
  396. File: lib/scheduler/scheduler.py (Line: 516)
  397. Function: run_pending
  398. 509 continue
  399. 510 # Check for group limits
  400. 511 group = job.get_group()
  401. 512 if self.can_run(job):
  402. 513 if group is not None:
  403. 514 with self.running_lock:
  404. 515 self.running_count[group] += 1
  405. 516 ==> self.run_job(job)
  406. 517 n += 1
  407. 518 elif self.mrt_overload:
  408. 519 break
  409. 520 return n
  410. 521
  411. 522 def run(self):
  412. Variables:
  413. group = 'discovery-384'
  414. jcls =
  415. <class 'noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob'>
  416. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x31ab510>
  417. job_data =
  418. {u'_id': ObjectId('556efc0c7e85c956c547f4df'),
  419. u'data': None,
  420. u'f': 0,
  421. u'jcls': u'interface_discovery',
  422. u'key': 384,
  423. u'last': datetime.datetime(2015, 7, 15, 11, 28, 34, 415000),
  424. u'ldur': 60.999905109405518,
  425. u'log': [],
  426. u'ls': u'S',
  427. u'runs': 862,
  428. u's': u'W',
  429. u'schedule': {u'failed_interval': 600,
  430. u'interval': 86400,
  431. u'offset': 0.43865013354776228},
  432. u'st': datetime.datetime(2015, 7, 13, 12, 2, 59, 751000),
  433. u'tb': None,
  434. u'ts': datetime.datetime(2015, 7, 14, 13, 31, 39, 371000)}
  435. n = 2
  436. job =
  437. <noc.inv.discovery.jobs.interface_discovery.InterfaceDiscoveryJob object at 0x360e9d0>
  438. ------------------------------------------------------------------------
  439. File: lib/scheduler/scheduler.py (Line: 534)
  440. Function: run
  441. 527 self.ATTR_STATUS: self.S_RUN
  442. 528 }, {
  443. 529 "$set": {self.ATTR_STATUS: self.S_WAIT}
  444. 530 }, multi=True, safe=True)
  445. 531 self.ensure_indexes()
  446. 532 self.logger.info("Running scheduler")
  447. 533 while True:
  448. 534 ==> if not self.run_pending():
  449. 535 time.sleep(1)
  450. 536 else:
  451. 537 self.cleanup()
  452. 538
  453. 539 def get_faults(self, job_name, key=None):
  454. 540 """
  455. Variables:
  456. self = <noc.inv.discovery.scheduler.DiscoveryScheduler object at 0x31ab510>
  457. ------------------------------------------------------------------------
  458. File: inv/discovery/daemon.py (Line: 37)
  459. Function: run
  460. 30
  461. 31 def run(self):
  462. 32 try:
  463. 33 PerformanceReportJob.submit(self.scheduler,
  464. 34 key="performance_report", interval=60)
  465. 35 except self.scheduler.JobExists:
  466. 36 pass
  467. 37 ==> self.scheduler.run()
  468. 38
  469. 39 def load_config(self):
  470. 40 super(DiscoveryDaemon, self).load_config()
  471. 41 self.load_beef_map()
  472. 42 log_jobs = self.config.get("main", "log_jobs") or None
  473. 43 self.scheduler.set_job_log(log_jobs)
  474. Variables:
  475. self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x7f4e52043510>
  476. ------------------------------------------------------------------------
  477. File: lib/daemon/base.py (Line: 433)
  478. Function: guarded_run
  479. 426 :return:
  480. 427 """
  481. 428 if self.start_delay:
  482. 429 self.logger.info("Delaying start for %s seconds",
  483. 430 self.start_delay)
  484. 431 time.sleep(self.start_delay)
  485. 432 try:
  486. 433 ==> self.run()
  487. 434 except KeyboardInterrupt:
  488. 435 pass
  489. 436 except MemoryError:
  490. 437 self.logger.error("Out of memory. Exiting.")
  491. 438 except SystemExit:
  492. 439 self.logger.info("Exiting")
  493. Variables:
  494. self = <noc.inv.discovery.daemon.DiscoveryDaemon object at 0x7f4e52043510>
  495. ------------------------------------------------------------------------
  496. END OF TRACEBACK
  497. 2015-07-15 11:29:36,037 [noc-discovery] Removing pidfile: /var/run/noc/noc-discovery.pid
  498. 2015-07-15 11:29:36,037 [noc-discovery] STOP
Advertisement
Add Comment
Please, Sign In to add comment