Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2013
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.61 KB | None | 0 0
  1. 2013-06-03 15:26:49,378 [fm.correlator] Running job dispose(51ac7d767e85c92bfcff93b5)
  2. 2013-06-03 15:26:49,457 UNHANDLED EXCEPTION (2013-06-03 15:26:49.404499)
  3. Working directory: /opt/noc
  4. <class 'django.core.exceptions.FieldError'>
  5. Cannot resolve keyword 'selector' into field. Choices are: description, enable_provisioning, enable_vc_bind_filter, id, managedobject, managedobjectselector, name, style, type, vc, vcbindfilter, vcdomainprovisioningconfig
  6. START OF TRACEBACK
  7. ------------------------------------------------------------------------
  8. File: /opt/noc/lib/python2.6/site-packages/django/db/models/sql/query.py (Line: 1316)
  9. Function: setup_joins
  10. 1309 # backwards compatibility purposes. If we dropped that
  11. 1310 # feature, this could be removed.
  12. 1311 field, model, direct, m2m = opts.get_field_by_name(f.name)
  13. 1312 break
  14. 1313 else:
  15. 1314 names = opts.get_all_field_names() + self.aggregate_select.keys()
  16. 1315 raise FieldError("Cannot resolve keyword %r into field. "
  17. 1316 ==> "Choices are: %s" % (name, ", ".join(names)))
  18. 1317
  19. 1318 if not allow_many and (m2m or not direct):
  20. 1319 for alias in joins:
  21. 1320 self.unref_alias(alias)
  22. 1321 raise MultiJoin(pos + 1)
  23. 1322 if model:
  24. Variables:
  25. last = [0, 1]
  26. name = 'selector'
  27. dupe_multis = True
  28. f = <django.db.models.fields.related.ForeignKey: style>
  29. self = <django.db.models.sql.query.Query object at 0x31f7290>
  30. int_alias = None
  31. pos = 0
  32. dupe_set = set([])
  33. process_extras = True
  34. allow_many = True
  35. alias = 'vc_vcdomain'
  36. names =
  37. ['description',
  38. 'enable_provisioning',
  39. 'enable_vc_bind_filter',
  40. 'id',
  41. 'managedobject',
  42. 'managedobjectselector',
  43. 'name',
  44. 'style',
  45. 'type',
  46. 'vc',
  47. 'vcbindfilter',
  48. 'vcdomainprovisioningconfig']
  49. joins = ['vc_vcdomain']
  50. negate = False
  51. allow_explicit_fk = True
  52. can_reuse = set([])
  53. extra_filters = []
  54. exclusions = set(['vc_vcdomain'])
  55. opts = <Options for VCDomain>
  56. ------------------------------------------------------------------------
  57. File: /opt/noc/lib/python2.6/site-packages/django/db/models/sql/query.py (Line: 1122)
  58. Function: add_filter
  59. 1115 alias = self.get_initial_alias()
  60. 1116 allow_many = trim or not negate
  61. 1117
  62. 1118 try:
  63. 1119 field, target, opts, join_list, last, extra_filters = self.setup_joins(
  64. 1120 parts, opts, alias, True, allow_many, allow_explicit_fk=True,
  65. 1121 can_reuse=can_reuse, negate=negate,
  66. 1122 ==> process_extras=process_extras)
  67. 1123 except MultiJoin, e:
  68. 1124 self.split_exclude(filter_expr, LOOKUP_SEP.join(parts[:e.level]),
  69. 1125 can_reuse)
  70. 1126 return
  71. 1127
  72. 1128 table_promote = False
  73. Variables:
  74. having_clause = False
  75. trim = False
  76. force_having = False
  77. lookup_model = <class 'noc.vc.models.vcdomain.VCDomain'>
  78. filter_expr = ('selector__isnull', False)
  79. process_extras = True
  80. lookup_type = 'isnull'
  81. counter = 0
  82. value = False
  83. self = <django.db.models.sql.query.Query object at 0x31f7290>
  84. connector = 'AND'
  85. alias = 'vc_vcdomain'
  86. parts = ['selector']
  87. num_parts = 2
  88. arg = 'selector__isnull'
  89. negate = False
  90. can_reuse = set([])
  91. field_name = 'selector'
  92. allow_many = True
  93. opts = <Options for VCDomain>
  94. ------------------------------------------------------------------------
  95. File: /opt/noc/lib/python2.6/site-packages/django/db/models/sql/query.py (Line: 1250)
  96. Function: add_q
  97. 1243 self.having.start_subtree(connector)
  98. 1244 else:
  99. 1245 self.where.start_subtree(connector)
  100. 1246 if isinstance(child, Node):
  101. 1247 self.add_q(child, used_aliases, force_having=force_having)
  102. 1248 else:
  103. 1249 self.add_filter(child, connector, q_object.negated,
  104. 1250 ==> can_reuse=used_aliases, force_having=force_having)
  105. 1251 if force_having:
  106. 1252 self.having.end_subtree()
  107. 1253 else:
  108. 1254 self.where.end_subtree()
  109. 1255
  110. 1256 if connector == OR:
  111. Variables:
  112. used_aliases = set([])
  113. force_having = False
  114. q_object = <django.db.models.query_utils.Q object at 0x31f7950>
  115. self = <django.db.models.sql.query.Query object at 0x31f7290>
  116. subtree = False
  117. connector = 'AND'
  118. child = ('selector__isnull', False)
  119. ------------------------------------------------------------------------
  120. File: /opt/noc/lib/python2.6/site-packages/django/db/models/query.py (Line: 639)
  121. Function: _filter_or_exclude
  122. 632 assert self.query.can_filter(), \
  123. 633 "Cannot filter a query once a slice has been taken."
  124. 634
  125. 635 clone = self._clone()
  126. 636 if negate:
  127. 637 clone.query.add_q(~Q(*args, **kwargs))
  128. 638 else:
  129. 639 ==> clone.query.add_q(Q(*args, **kwargs))
  130. 640 return clone
  131. 641
  132. 642 def complex_filter(self, filter_obj):
  133. 643 """
  134. 644 Returns a new QuerySet instance with filter_obj added to the filters.
  135. 645
  136. Variables:
  137. negate = False
  138. clone = [<VCDomain: default>]
  139. args = ()
  140. self = [<VCDomain: default>]
  141. kwargs = {'selector__isnull': False}
  142. ------------------------------------------------------------------------
  143. File: /opt/noc/lib/python2.6/site-packages/django/db/models/query.py (Line: 621)
  144. Function: filter
  145. 614 return self._clone()
  146. 615
  147. 616 def filter(self, *args, **kwargs):
  148. 617 """
  149. 618 Returns a new QuerySet instance with the args ANDed to the existing
  150. 619 set.
  151. 620 """
  152. 621 ==> return self._filter_or_exclude(False, *args, **kwargs)
  153. 622
  154. 623 def exclude(self, *args, **kwargs):
  155. 624 """
  156. 625 Returns a new QuerySet instance with NOT (args) ANDed to the existing
  157. 626 set.
  158. 627 """
  159. Variables:
  160. self = [<VCDomain: default>]
  161. args = ()
  162. kwargs = {'selector__isnull': False}
  163. ------------------------------------------------------------------------
  164. File: /opt/noc/lib/python2.6/site-packages/django/db/models/manager.py (Line: 143)
  165. Function: filter
  166. 136 def create(self, **kwargs):
  167. 137 return self.get_query_set().create(**kwargs)
  168. 138
  169. 139 def bulk_create(self, *args, **kwargs):
  170. 140 return self.get_query_set().bulk_create(*args, **kwargs)
  171. 141
  172. 142 def filter(self, *args, **kwargs):
  173. 143 ==> return self.get_query_set().filter(*args, **kwargs)
  174. 144
  175. 145 def aggregate(self, *args, **kwargs):
  176. 146 return self.get_query_set().aggregate(*args, **kwargs)
  177. 147
  178. 148 def annotate(self, *args, **kwargs):
  179. 149 return self.get_query_set().annotate(*args, **kwargs)
  180. Variables:
  181. self = <django.db.models.manager.Manager object at 0x96aad0>
  182. args = ()
  183. kwargs = {'selector__isnull': False}
  184. ------------------------------------------------------------------------
  185. File: /opt/noc/vc/datasources.py (Line: 33)
  186. Function: find_vc_domain
  187. 26 def find_vc_domain(self, managed_object):
  188. 27 """
  189. 28 Find VCDomain belonging to managed objects
  190. 29 @todo: Speed optimization
  191. 30 :param managed_object:
  192. 31 :return:
  193. 32 """
  194. 33 ==> for d in VCDomain.objects.filter(selector__isnull=False):
  195. 34 if managed_object in d.selector:
  196. 35 return d
  197. 36 return None
  198. 37
  199. 38 @property
  200. 39 def vc_domain(self):
  201. Variables:
  202. self = <noc.vc.datasources.VCDS object at 0x3190c50>
  203. managed_object = <ManagedObject: cct01-ors-shulka >
  204. ------------------------------------------------------------------------
  205. File: /opt/noc/vc/datasources.py (Line: 19)
  206. Function: __init__
  207. 12
  208. 13
  209. 14 class VCDS(DataSource):
  210. 15 _name = "vc.VCDS"
  211. 16
  212. 17 def __init__(self, managed_object, l1, l2=0):
  213. 18 self._vc = None
  214. 19 ==> self._vc_domain = self.find_vc_domain(managed_object)
  215. 20 if self._vc_domain:
  216. 21 r = list(VC.objects.filter(
  217. 22 vc_domain=self._vc_domain, l1=l1, l2=l2))
  218. 23 if r:
  219. 24 self._vc = r[0]
  220. 25
  221. Variables:
  222. self = <noc.vc.datasources.VCDS object at 0x3190c50>
  223. l2 = 0
  224. managed_object = <ManagedObject: cct01-ors-shulka >
  225. l1 = 235
  226. ------------------------------------------------------------------------
  227. File: /opt/noc/fm/correlator/rule.py (Line: 88)
  228. Function: <genexpr>
  229. 81 vars[v] = e.vars[k]
  230. 82 except KeyError:
  231. 83 pass
  232. 84 # Calculate dynamic defaults
  233. 85 ds_vars = vars.copy()
  234. 86 ds_vars["managed_object"] = e.managed_object
  235. 87 context = dict((k, v(ds_vars))
  236. 88 ==> for k, v in self.datasources.items())
  237. 89 context.update(vars)
  238. 90 for k, v in self.d_defaults.items():
  239. 91 x = eval(v, {}, context)
  240. 92 if x:
  241. 93 vars[k] = x
  242. 94 # Calculate discriminator
  243. Variables:
  244. .0 = <listiterator object at 0x3165710>
  245. k = u'VCDS'
  246. ds_vars =
  247. {u'from_interface': u'Gi 1/0/4',
  248. u'mac': u'4C:00:10:74:55:22',
  249. 'managed_object': <ManagedObject: cct01-ors-shulka >,
  250. u'to_interface': u'Gi 1/0/1',
  251. u'vlan': 235}
  252. v = <function <lambda> at 0x303a230>
  253. ------------------------------------------------------------------------
  254. File: /opt/noc/fm/correlator/rule.py (Line: 88)
  255. Function: get_vars
  256. 81 vars[v] = e.vars[k]
  257. 82 except KeyError:
  258. 83 pass
  259. 84 # Calculate dynamic defaults
  260. 85 ds_vars = vars.copy()
  261. 86 ds_vars["managed_object"] = e.managed_object
  262. 87 context = dict((k, v(ds_vars))
  263. 88 ==> for k, v in self.datasources.items())
  264. 89 context.update(vars)
  265. 90 for k, v in self.d_defaults.items():
  266. 91 x = eval(v, {}, context)
  267. 92 if x:
  268. 93 vars[k] = x
  269. 94 # Calculate discriminator
  270. Variables:
  271. e = <ActiveEvent: 51ac7d767e85c92bfcff93b5>
  272. vars =
  273. {u'from_interface': u'Gi 1/0/4',
  274. u'mac': u'4C:00:10:74:55:22',
  275. u'to_interface': u'Gi 1/0/1',
  276. u'vlan': 235}
  277. k = u'to_interface'
  278. v = u'to_interface'
  279. ds_vars =
  280. {u'from_interface': u'Gi 1/0/4',
  281. u'mac': u'4C:00:10:74:55:22',
  282. 'managed_object': <ManagedObject: cct01-ors-shulka >,
  283. u'to_interface': u'Gi 1/0/1',
  284. u'vlan': 235}
  285. self = <noc.fm.correlator.rule.Rule object at 0x2ed1d50>
  286. ------------------------------------------------------------------------
  287. File: /opt/noc/fm/correlator/daemon.py (Line: 188)
  288. Function: raise_alarm
  289. 181 logging.debug("%s is root cause for %s (Rule: %s)" % (
  290. 182 root.id, a.id, rc.name))
  291. 183 a.set_root(root)
  292. 184 return True
  293. 185 return False
  294. 186
  295. 187 def raise_alarm(self, r, e):
  296. 188 ==> discriminator, vars = r.get_vars(e)
  297. 189 if r.unique:
  298. 190 assert discriminator is not None
  299. 191 # @todo: unneeded SQL lookup here
  300. 192 a = ActiveAlarm.objects.filter(
  301. 193 managed_object=e.managed_object_id,
  302. 194 discriminator=discriminator).first()
  303. Variables:
  304. self = <noc.fm.correlator.daemon.Correlator object at 0x2635250>
  305. r = <noc.fm.correlator.rule.Rule object at 0x2ed1d50>
  306. e = <ActiveEvent: 51ac7d767e85c92bfcff93b5>
  307. ------------------------------------------------------------------------
  308. File: /opt/noc/fm/correlator/daemon.py (Line: 328)
  309. Function: dispose_event
  310. 321 # Process action
  311. 322 if r.action == "drop":
  312. 323 e.delete()
  313. 324 return
  314. 325 elif r.action == "ignore":
  315. 326 return
  316. 327 elif r.action == "raise" and r.combo_condition == "none":
  317. 328 ==> self.raise_alarm(r, e)
  318. 329 elif r.action == "clear" and r.combo_condition == "none":
  319. 330 self.clear_alarm(r, e)
  320. 331 if r.action in ("raise", "clear"):
  321. 332 # Write discriminator if can trigger delayed event
  322. 333 if r.unique and r.event_class.id in self.back_rules:
  323. 334 discriminator, vars = r.get_vars(e)
  324. Variables:
  325. e = <ActiveEvent: 51ac7d767e85c92bfcff93b5>
  326. self = <noc.fm.correlator.daemon.Correlator object at 0x2635250>
  327. r = <noc.fm.correlator.rule.Rule object at 0x2ed1d50>
  328. cond = True
  329. env =
  330. {'NOC_ACTIVATORS': <PrefixTable: NOC::Activators>,
  331. 'event': <ActiveEvent: 51ac7d767e85c92bfcff93b5>,
  332. 're': <module 're' from '/opt/noc/lib64/python2.6/re.pyc'>}
  333. drc = [<noc.fm.correlator.rule.Rule object at 0x2ed1d50>]
  334. ------------------------------------------------------------------------
  335. File: /opt/noc/fm/correlator/jobs/dispose.py (Line: 19)
  336. Function: handler
  337. 12
  338. 13
  339. 14 class AlarmDispositionJob(Job):
  340. 15 name = "dispose"
  341. 16 model = ActiveEvent
  342. 17
  343. 18 def handler(self):
  344. 19 ==> self.scheduler.correlator.dispose_event(self.object)
  345. 20 self.scheduler.correlator.update_stats(success=True)
  346. 21 return True
  347. 22
  348. 23 def on_exception(self):
  349. 24 self.scheduler.correlator.mark_as_failed(self.object)
  350. 25 self.scheduler.correlator.update_stats(success=False)
  351. Variables:
  352. self = <noc.fm.correlator.jobs.dispose.AlarmDispositionJob object at 0x31ca050>
  353. ------------------------------------------------------------------------
  354. File: /opt/noc/lib/scheduler/scheduler.py (Line: 253)
  355. Function: _job_wrapper
  356. 246 t.start()
  357. 247 else:
  358. 248 return self._job_wrapper(job, **kwargs)
  359. 249
  360. 250 def _job_wrapper(self, job, **kwargs):
  361. 251 tb = None
  362. 252 try:
  363. 253 ==> r = job.handler(**kwargs)
  364. 254 except Exception:
  365. 255 error_report()
  366. 256 job.on_exception()
  367. 257 s = job.S_EXCEPTION
  368. 258 tb = get_traceback()
  369. 259 else:
  370. Variables:
  371. job = <noc.fm.correlator.jobs.dispose.AlarmDispositionJob object at 0x31ca050>
  372. tb = None
  373. self = <noc.fm.correlator.scheduler.CorrelatorScheduler object at 0x29a6250>
  374. kwargs = {}
  375. ------------------------------------------------------------------------
  376. END OF TRACEBACK
  377. 2013-06-03 15:26:49,459 Failed to process event 51ac7d767e85c92bfcff93b5
  378. 2013-06-03 15:26:49,567 [fm.correlator] Removing job dispose(51ac7d767e85c92bfcff93b5)
  379. 2013-06-03 15:27:00,891 [fm.correlator] Running job performance_report(report)
  380. 2013-06-03 15:27:00,892 8 events has been disposed (success: 2, failed: 6). 60.8303530216 seconds elapsed. 0.13 events/sec
  381. 2013-06-03 15:27:00,892 [fm.correlator] Job performance_report(report) is completed successfully
  382. 2013-06-03 15:27:00,892 [fm.correlator] Rescheduling job performance_report(report) to 2013-06-03 15:28:00 status=W
  383. 2013-06-03 15:27:00,897 [fm.correlator] Running job dispose(51ac7d817e85c92bfcff93bd)
  384. 2013-06-03 15:27:00,974 UNHANDLED EXCEPTION (2013-06-03 15:27:00.920333)
  385. Working directory: /opt/noc
  386. <class 'django.core.exceptions.FieldError'>
  387. Cannot resolve keyword 'selector' into field. Choices are: description, enable_provisioning, enable_vc_bind_filter, id, managedobject, managedobjectselector, name, style, type, vc, vcbindfilter, vcdomainprovisioningconfig
  388. START OF TRACEBACK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement