Advertisement
Guest User

noc intervalJob

a guest
Jun 18th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.38 KB | None | 0 0
  1. UNHANDLED EXCEPTION (2014-06-18 14:09:52.068355)
  2. <type 'exceptions.TypeError'>
  3. unsupported operand type(s) for //: 'int' and 'NoneType'
  4. START OF TRACEBACK
  5. ------------------------------------------------------------------------
  6. File: /opt/noc/lib/scheduler/intervaljob.py (Line: 73)
  7. Function: get_next_aligned
  8. 66 def get_next_aligned(cls, interval, next=False, offset=0):
  9. 67 """
  10. 68 Get next time in future aligned to interval
  11. 69 :param interval:
  12. 70 :return:
  13. 71 """
  14. 72 t = int(time.time())
  15. 73 ==> ts = (t // interval) * interval
  16. 74 if next or ts < t:
  17. 75 ts += interval
  18. 76 if offset:
  19. 77 ts += offset * interval
  20. 78 return datetime.datetime.fromtimestamp(ts)
  21. 79
  22. Variables:
  23. cls = <class 'noc.fm.correlator.jobs.check_link.CheckLinkJob'>
  24. next = False
  25. t = 1403078992
  26. interval = None
  27. offset = 0
  28. ------------------------------------------------------------------------
  29. File: /opt/noc/lib/scheduler/intervaljob.py (Line: 61)
  30. Function: submit
  31. 54 "offset": offset,
  32. 55 "randomize": randomize,
  33. 56 "scheduled": datetime.datetime.now()
  34. 57 }
  35. 58 if failed_interval:
  36. 59 schedule["failed_interval"] = failed_interval
  37. 60 if not ts:
  38. 61 ==> ts = cls.get_next_aligned(effective_interval, offset=offset)
  39. 62 scheduler.submit(cls.name, key=key, data=data,
  40. 63 schedule=schedule, ts=ts)
  41. 64
  42. 65 @classmethod
  43. 66 def get_next_aligned(cls, interval, next=False, offset=0):
  44. 67 """
  45. Variables:
  46. effective_interval = None
  47. scheduler =
  48. <noc.fm.correlator.scheduler.CorrelatorScheduler object at 0x7f3c03985b90>
  49. failed_interval = None
  50. schedule =
  51. {'interval': [(None, 60)],
  52. 'offset': 0,
  53. 'randomize': False,
  54. 'scheduled': datetime.datetime(2014, 6, 18, 14, 9, 52, 60774)}
  55. data = {'interface': u'Ethernet0/0/2'}
  56. interval = [(None, 60)]
  57. ts = None
  58. keep_offset = True
  59. key = ObjectId('53a149503fe77285a6d763e2')
  60. offset = 0
  61. randomize = False
  62. cls = <class 'noc.fm.correlator.jobs.check_link.CheckLinkJob'>
  63. ------------------------------------------------------------------------
  64. File: /opt/noc/fm/correlator/joblauncher.py (Line: 49)
  65. Function: submit
  66. 42 "failed_interval": None,
  67. 43 "keep_offset": True
  68. 44 }
  69. 45 cfg.update(self.job.get_job_config(alarm, cfg))
  70. 46 self.job.submit(
  71. 47 self.scheduler,
  72. 48 key=alarm.id,
  73. 49 ==> **cfg
  74. 50 )
  75. Variables:
  76. cfg =
  77. {'data': {'interface': u'Ethernet0/0/2'},
  78. 'failed_interval': None,
  79. 'interval': [(None, 60)],
  80. 'keep_offset': True}
  81. alarm = <ActiveAlarm: 53a149503fe77285a6d763e2>
  82. self = <noc.fm.correlator.joblauncher.JobLauncher object at 0x7f3c02d0ea50>
  83. ------------------------------------------------------------------------
  84. File: /opt/noc/fm/correlator/daemon.py (Line: 312)
  85. Function: raise_alarm
  86. 305 # Silently drop alarm
  87. 306 logging.debug("Alarm severity is 0, dropping")
  88. 307 a.delete()
  89. 308 return
  90. 309 # Launch jobs when necessary
  91. 310 if a.alarm_class.id in self.alarm_jobs:
  92. 311 for job in self.alarm_jobs[r.alarm_class.id]:
  93. 312 ==> job.submit(a)
  94. 313 # Notify about new alarm
  95. 314 if not a.root:
  96. 315 a.managed_object.event(a.managed_object.EV_ALARM_RISEN, {
  97. 316 "alarm": a,
  98. 317 "subject": a.get_translated_subject("en"),
  99. 318 "body": a.get_translated_body("en"),
  100. Variables:
  101. aa = <ActiveAlarm: 53a149503fe77285a6d763e2>
  102. a = <ActiveAlarm: 53a149503fe77285a6d763e2>
  103. e = <ActiveEvent: 53a1494e3fe77285a3960c29>
  104. vars =
  105. {u'description': u'pppoe for skoraya 77892239191',
  106. u'interface': u'Ethernet0/0/2'}
  107. self = <noc.fm.correlator.daemon.Correlator object at 0x7f3c0464bc90>
  108. job = <noc.fm.correlator.joblauncher.JobLauncher object at 0x7f3c02d0ea50>
  109. r = <noc.fm.correlator.rule.Rule object at 0x7f3c02efbad0>
  110. discriminator = '492337b97792b14e9b0924cf2ec0e7d738287bb3'
  111. ------------------------------------------------------------------------
  112. File: /opt/noc/fm/correlator/daemon.py (Line: 405)
  113. Function: dispose_event
  114. 398 # Process action
  115. 399 if r.action == "drop":
  116. 400 e.delete()
  117. 401 return
  118. 402 elif r.action == "ignore":
  119. 403 return
  120. 404 elif r.action == "raise" and r.combo_condition == "none":
  121. 405 ==> self.raise_alarm(r, e)
  122. 406 elif r.action == "clear" and r.combo_condition == "none":
  123. 407 self.clear_alarm(r, e)
  124. 408 if r.action in ("raise", "clear"):
  125. 409 # Write discriminator if can trigger delayed event
  126. 410 if r.unique and r.event_class.id in self.back_rules:
  127. 411 discriminator, vars = r.get_vars(e)
  128. Variables:
  129. e = <ActiveEvent: 53a1494e3fe77285a3960c29>
  130. self = <noc.fm.correlator.daemon.Correlator object at 0x7f3c0464bc90>
  131. r = <noc.fm.correlator.rule.Rule object at 0x7f3c02efbad0>
  132. cond = True
  133. env =
  134. {'NOC_ACTIVATORS': <PrefixTable: NOC::Activators>,
  135. 'event': <ActiveEvent: 53a1494e3fe77285a3960c29>,
  136. 're': <module 're' from '/opt/noc/lib/python2.7/re.pyc'>}
  137. drc = [<noc.fm.correlator.rule.Rule object at 0x7f3c02efbad0>]
  138. ------------------------------------------------------------------------
  139. File: /opt/noc/fm/correlator/jobs/dispose.py (Line: 19)
  140. Function: handler
  141. 12
  142. 13
  143. 14 class AlarmDispositionJob(Job):
  144. 15 name = "dispose"
  145. 16 model = ActiveEvent
  146. 17
  147. 18 def handler(self):
  148. 19 ==> self.scheduler.correlator.dispose_event(self.object)
  149. 20 self.scheduler.correlator.update_stats(success=True)
  150. 21 return True
  151. 22
  152. 23 def on_exception(self):
  153. 24 self.scheduler.correlator.mark_as_failed(self.object)
  154. 25 self.scheduler.correlator.update_stats(success=False)
  155. Variables:
  156. self =
  157. <noc.fm.correlator.jobs.dispose.AlarmDispositionJob object at 0x7f3c070fb3d0>
  158. ------------------------------------------------------------------------
  159. File: /opt/noc/lib/scheduler/scheduler.py (Line: 283)
  160. Function: _job_wrapper
  161. 276 else:
  162. 277 return self._job_wrapper(job, **kwargs)
  163. 278
  164. 279 def _job_wrapper(self, job, **kwargs):
  165. 280 tb = None
  166. 281 t0 = time.time()
  167. 282 try:
  168. 283 ==> r = job.handler(**kwargs)
  169. 284 except Exception:
  170. 285 # error_report()
  171. 286 tb = get_traceback()
  172. 287 job.error(tb)
  173. 288 job.on_exception()
  174. 289 s = job.S_EXCEPTION
  175. Variables:
  176. job =
  177. <noc.fm.correlator.jobs.dispose.AlarmDispositionJob object at 0x7f3c070fb3d0>
  178. tb =
  179. u'UNHANDLED EXCEPTION (2014-06-18 14:09:52.060845)\nWorking directory: /opt/noc\n<type \'exceptions.TypeError\'>\nunsupported operand type(s) for //: \'int\' and \'NoneType\'\nSTART OF TRACEBACK\n------------------------------------------------------------------------\nFile: /opt/noc/lib/scheduler/intervaljob.py (Line: 73)\nFunction: get_next_aligned\n 66 def get_next_aligned(cls, interval, next=False, offset=0):\n 67 """\n 68 Get next time in future aligned to interval\n 69 :param interval:\n 70 :return:\n 71 """\n 72 t = int(time.time())\n 73 ==> ts = (t // interval) * interval\n 74 if next or ts < t:\n 75 ts += interval\n 76 if offset:\n 77 ts += offset * interval\n 78 return datetime.datetime.fromtimestamp(ts)\n 79 \nVariables:\n cls = <class \'noc.fm.correlator.jobs.check_link.CheckLinkJob\'>\n next = False\n t = 1403078992\n interval = None\n offset = 0\n------------------------------------------------------------------------\nFile: /opt/noc/lib/scheduler/intervaljob.py (Line: 61)\nFunction: submit\n 54 "offset": offset,\n 55 "randomize": randomize,\n 56 "scheduled": datetime.datetime.now()\n 57 }\n 58 if failed_interval:\n 59 schedule["failed_interval"] = failed_interval\n 60 if not ts:\n 61 ==> ts = cls.get_next_aligned(effective_interval, offset=offset)\n 62 scheduler.submit(cls.name, key=key, data=data,\n 63 schedule=schedule, ts=ts)\n 64 \n 65 @classmethod\n 66 def get_next_aligned(cls, interval, next=False, offset=0):\n 67 """\nVariables:\n effective_interval = None\n scheduler = \n<noc.fm.correlator.scheduler.CorrelatorScheduler object at 0x7f3c03985b90>\n failed_interval = None\n schedule = \n{\'interval\': [(None, 60)],\n \'offset\': 0,\n \'randomize\': False,\n \'scheduled\': datetime.datetime(2014, 6, 18, 14, 9, 52, 60774)}\n data = {\'interface\': u\'Ethernet0/0/2\'}\n interval = [(None, 60)]\n ts = None\n keep_offset = True\n key = ObjectId(\'53a149503fe77285a6d763e2\')\n offset = 0\n randomize = False\n cls = <class \'noc.fm.correlator.jobs.check_link.CheckLinkJob\'>\n------------------------------------------------------------------------\nFile: /opt/noc/fm/correlator/joblauncher.py (Line: 49)\nFunction: submit\n 42 "failed_interval": None,\n 43 "keep_offset": True\n 44 }\n 45 cfg.update(self.job.get_job_config(alarm, cfg))\n 46 self.job.submit(\n 47 self.scheduler,\n 48 key=alarm.id,\n 49 ==> **cfg\n 50 )\nVariables:\n cfg = \n{\'data\': {\'interface\': u\'Ethernet0/0/2\'},\n \'failed_interval\': None,\n \'interval\': [(None, 60)],\n \'keep_offset\': True}\n alarm = <ActiveAlarm: 53a149503fe77285a6d763e2>\n self = <noc.fm.correlator.joblauncher.JobLauncher object at 0x7f3c02d0ea50>\n------------------------------------------------------------------------\nFile: /opt/noc/fm/correlator/daemon.py (Line: 312)\nFunction: raise_alarm\n 305 # Silently drop alarm\n 306 logging.debug("Alarm severity is 0, dropping")\n 307 a.delete()\n 308 return\n 309 # Launch jobs when necessary\n 310 if a.alarm_class.id in self.alarm_jobs:\n 311 for job in self.alarm_jobs[r.alarm_class.id]:\n 312 ==> job.submit(a)\n 313 # Notify about new alarm\n 314 if not a.root:\n 315 a.managed_object.event(a.managed_object.EV_ALARM_RISEN, {\n 316 "alarm": a,\n 317 "subject": a.get_translated_subject("en"),\n 318 "body": a.get_translated_body("en"),\nVariables:\n aa = <ActiveAlarm: 53a149503fe77285a6d763e2>\n a = <ActiveAlarm: 53a149503fe77285a6d763e2>\n e = <ActiveEvent: 53a1494e3fe77285a3960c29>\n vars = \n{u\'description\': u\'pppoe for skoraya 77892239191\',\n u\'interface\': u\'Ethernet0/0/2\'}\n self = <noc.fm.correlator.daemon.Correlator object at 0x7f3c0464bc90>\n job = <noc.fm.correlator.joblauncher.JobLauncher object at 0x7f3c02d0ea50>\n r = <noc.fm.correlator.rule.Rule object at 0x7f3c02efbad0>\n discriminator = \'492337b97792b14e9b0924cf2ec0e7d738287bb3\'\n------------------------------------------------------------------------\nFile: /opt/noc/fm/correlator/daemon.py (Line: 405)\nFunction: dispose_event\n 398 # Process action\n 399 if r.action == "drop":\n 400 e.delete()\n 401 return\n 402 elif r.action == "ignore":\n 403 return\n 404 elif r.action == "raise" and r.combo_condition == "none":\n 405 ==> self.raise_alarm(r, e)\n 406 elif r.action == "clear" and r.combo_condition == "none":\n 407 self.clear_alarm(r, e)\n 408 if r.action in ("raise", "clear"):\n 409 # Write discriminator if can trigger delayed event\n 410 if r.unique and r.event_class.id in self.back_rules:\n 411 discriminator, vars = r.get_vars(e)\nVariables:\n e = <ActiveEvent: 53a1494e3fe77285a3960c29>\n self = <noc.fm.correlator.daemon.Correlator object at 0x7f3c0464bc90>\n r = <noc.fm.correlator.rule.Rule object at 0x7f3c02efbad0>\n cond = True\n env = \n{\'NOC_ACTIVATORS\': <PrefixTable: NOC::Activators>,\n \'event\': <ActiveEvent: 53a1494e3fe77285a3960c29>,\n \'re\': <module \'re\' from \'/opt/noc/lib/python2.7/re.pyc\'>}\n drc = [<noc.fm.correlator.rule.Rule object at 0x7f3c02efbad0>]\n------------------------------------------------------------------------\nFile: /opt/noc/fm/correlator/jobs/dispose.py (Line: 19)\nFunction: handler\n 12 \n 13 \n 14 class AlarmDispositionJob(Job):\n 15 name = "dispose"\n 16 model = ActiveEvent\n 17 \n 18 def handler(self):\n 19 ==> self.scheduler.correlator.dispose_event(self.object)\n 20 self.scheduler.correlator.update_stats(success=True)\n 21 return True\n 22 \n 23 def on_exception(self):\n 24 self.scheduler.correlator.mark_as_failed(self.object)\n 25 self.scheduler.correlator.update_stats(success=False)\nVariables:\n self = \n<noc.fm.correlator.jobs.dispose.AlarmDispositionJob object at 0x7f3c070fb3d0>\n------------------------------------------------------------------------\nFile: /opt/noc/lib/scheduler/scheduler.py (Line: 283)\nFunction: _job_wrapper\n 276 else:\n 277 return self._job_wrapper(job, **kwargs)\n 278 \n 279 def _job_wrapper(self, job, **kwargs):\n 280 tb = None\n 281 t0 = time.time()\n 282 try:\n 283 ==> r = job.handler(**kwargs)\n 284 except Exception:\n 285 # error_report()\n 286 tb = get_traceback()\n 287 job.error(tb)\n 288 job.on_exception()\n 289 s = job.S_EXCEPTION\nVariables:\n job = \n<noc.fm.correlator.jobs.dispose.AlarmDispositionJob object at 0x7f3c070fb3d0>\n tb = None\n self = \n<noc.fm.correlator.scheduler.CorrelatorScheduler object at 0x7f3c03985b90>\n t0 = 1403078992.01735\n kwargs = {}\n------------------------------------------------------------------------\nEND OF TRACEBACK'
  180. self =
  181. <noc.fm.correlator.scheduler.CorrelatorScheduler object at 0x7f3c03985b90>
  182. t0 = 1403078992.01735
  183. kwargs = {}
  184. ------------------------------------------------------------------------
  185. END OF TRACEBACK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement