Advertisement
Guest User

Untitled

a guest
Oct 1st, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.78 KB | None | 0 0
  1. Syncronize collections
  2. Syncing noc.vendors:
  3. Syncing noc.modelinterfaces:
  4. Syncing noc.connectiontypes:
  5. Syncing noc.objectmodels:
  6. ERROR:root:UNHANDLED EXCEPTION (2013-10-01 10:50:25.562753)
  7. Working directory: /opt/noc
  8. <class 'mongoengine.base.ValidationError'>
  9. Unable to dereference <class 'noc.inv.models.connectiontype.ConnectionType'>:5247228ef3b682f71c9d8b37
  10. START OF TRACEBACK
  11. ------------------------------------------------------------------------
  12. File: /opt/noc/lib/nosql.py (Line: 103)
  13. Function: __get__
  14. 96 # Dereference DBRefs
  15. 97 if isinstance(value, ObjectId):
  16. 98 v = self.document_type.objects(id=value).first()
  17. 99 if v is not None:
  18. 100 instance._data[self.name] = v
  19. 101 else:
  20. 102 raise ValidationError("Unable to dereference %s:%s" % (
  21. 103 ==> self.document_type, value))
  22. 104 return super(PlainReferenceField, self).__get__(instance, owner)
  23. 105
  24. 106 def to_mongo(self, document):
  25. 107 if isinstance(document, Document):
  26. 108 # We need the id from the saved object to create the DBRef
  27. 109 id_ = document.id
  28. Variables:
  29. owner = <class 'noc.inv.models.objectmodel.ObjectModelConnection'>
  30. instance = <ObjectModelConnection: fan0>
  31. self = <noc.lib.nosql.PlainReferenceField object at 0x809fa4110>
  32. value = ObjectId('5247228ef3b682f71c9d8b37')
  33. v = None
  34. ------------------------------------------------------------------------
  35. File: /opt/noc/inv/models/objectmodel.py (Line: 45)
  36. Function: __eq__
  37. 38 def __unicode__(self):
  38. 39 return self.name
  39. 40
  40. 41 def __eq__(self, other):
  41. 42 return (
  42. 43 self.name == other.name and
  43. 44 self.description == other.description and
  44. 45 ==> self.type.id == other.type.id and
  45. 46 self.direction == other.direction and
  46. 47 self.gender == other.gender and
  47. 48 self.group == other.group
  48. 49 )
  49. 50
  50. 51
  51. Variables:
  52. self = <ObjectModelConnection: fan0>
  53. other = <ObjectModelConnection: fan0>
  54. ------------------------------------------------------------------------
  55. File: /opt/noc/main/management/commands/sync-collections.py (Line: 155)
  56. Function: sync_item
  57. 148 # Try to skip and resolve later
  58. 149 partial = True
  59. 150 continue
  60. 151 else:
  61. 152 dd[ii] = self.lookup(ref, f, vv)
  62. 153 dd = dict([(str(x), y) for x, y in dd.items()])
  63. 154 v += [edoc(**dd)]
  64. 155 ==> if getattr(obj, i) != v:
  65. 156 changed = True
  66. 157 if allow_partial:
  67. 158 # Check List Field is valid
  68. 159 # and has all resolved referencies
  69. 160 try:
  70. 161 field.validate(v)
  71. Variables:
  72. sk = [{'name': 'Juniper | MX | MX480 Chassis'}]
  73. changed = False
  74. obj = <ObjectModel: Juniper | MX | MX480 Chassis>
  75. d =
  76. {'connections': [{'description': 'Fan Slot #0',
  77. 'direction': 'i',
  78. 'gender': 'f',
  79. 'group': '',
  80. 'name': 'fan0',
  81. 'type': <ConnectionType: Juniper | MX | MX480 Fan>,
  82. 'type__name': 'Juniper | MX | MX480 Fan'},
  83. {'description': 'SCB Slot #0',
  84. 'direction': 'i',
  85. 'gender': 'f',
  86. 'group': '',
  87. 'name': 'scb0',
  88. 'type': <ConnectionType: Juniper | MX | SCB>,
  89. 'type__name': 'Juniper | MX | SCB'},
  90. {'description': 'SCB Slot #1',
  91. 'direction': 'i',
  92. 'gender': 'f',
  93. 'group': '',
  94. 'name': 'scb1',
  95. 'type': <ConnectionType: Juniper | MX | SCB>,
  96. 'type__name': 'Juniper | MX | SCB'},
  97. {'description': 'DPC Slot #0',
  98. 'direction': 'i',
  99. 'gender': 'f',
  100. 'group': '',
  101. 'name': 'fpc0',
  102. 'type': <ConnectionType: Juniper | MX | FPC>,
  103. 'type__name': 'Juniper | MX | FPC'},
  104. {'description': 'DPC Slot#1',
  105. 'direction': 'i',
  106. 'gender': 'f',
  107. 'group': '',
  108. 'name': 'fpc1',
  109. 'type': <ConnectionType: Juniper | MX | FPC>,
  110. 'type__name': 'Juniper | MX | FPC'},
  111. {'description': 'DPC Slot #2',
  112. 'direction': 'i',
  113. 'gender': 'f',
  114. 'group': '',
  115. 'name': 'fpc2',
  116. 'type': <ConnectionType: Juniper | MX | FPC>,
  117. 'type__name': 'Juniper | MX | FPC'},
  118. {'description': 'DPC Slot #3',
  119. 'direction': 'i',
  120. 'gender': 'f',
  121. 'group': '',
  122. 'name': 'fpc3',
  123. 'type': <ConnectionType: Juniper | MX | FPC>,
  124. 'type__name': 'Juniper | MX | FPC'},
  125. {'description': 'DPC Slot #4',
  126. 'direction': 'i',
  127. 'gender': 'f',
  128. 'group': '',
  129. 'name': 'fpc4',
  130. 'type': <ConnectionType: Juniper | MX | FPC>,
  131. 'type__name': 'Juniper | MX | FPC'},
  132. {'description': 'DPC Slot #5',
  133. 'direction': 'i',
  134. 'gender': 'f',
  135. 'group': '',
  136. 'name': 'fpc5',
  137. 'type': <ConnectionType: Juniper | MX | FPC>,
  138. 'type__name': 'Juniper | MX | FPC'},
  139. {'description': 'PEM Slot #0',
  140. 'direction': 'i',
  141. 'gender': 'f',
  142. 'group': '',
  143. 'name': 'pem0',
  144. 'type': <ConnectionType: Juniper | MX | PEM>,
  145. 'type__name': 'Juniper | MX | PEM'},
  146. {'description': 'PEM Slot #1',
  147. 'direction': 'i',
  148. 'gender': 'f',
  149. 'group': '',
  150. 'name': 'pem1',
  151. 'type': <ConnectionType: Juniper | MX | PEM>,
  152. 'type__name': 'Juniper | MX | PEM'},
  153. {'description': 'PEM Slot #2',
  154. 'direction': 'i',
  155. 'gender': 'f',
  156. 'group': '',
  157. 'name': 'pem2',
  158. 'type': <ConnectionType: Juniper | MX | PEM>,
  159. 'type__name': 'Juniper | MX | PEM'},
  160. {'description': 'PEM Slot #3',
  161. 'direction': 'i',
  162. 'gender': 'f',
  163. 'group': '',
  164. 'name': 'pem3',
  165. 'type': <ConnectionType: Juniper | MX | PEM>,
  166. 'type__name': 'Juniper | MX | PEM'}],
  167. 'data': {'airflow': {'exhaust': 'l', 'intake': 'r'}, 'asset': {}},
  168. 'description': 'Juniper MX480 chassis',
  169. 'is_builtin': True,
  170. 'name': 'Juniper | MX | MX480 Chassis',
  171. 'vendor__code': 'JUNIPER'}
  172. f = 'name'
  173. i = 'connections'
  174. allow_partial = True
  175. dd =
  176. {'description': 'PEM Slot #3',
  177. 'direction': 'i',
  178. 'gender': 'f',
  179. 'group': '',
  180. 'name': 'pem3',
  181. 'type': <ConnectionType: Juniper | MX | PEM>,
  182. 'type__name': 'Juniper | MX | PEM'}
  183. created = False
  184. edoc = <class 'noc.inv.models.objectmodel.ObjectModelConnection'>
  185. self =
  186. <noc.main.management.commands.sync-collections.CollectionSync object at 0x80c507ed0>
  187. ii = 'description'
  188. field = <mongoengine.fields.ListField object at 0x809fa43d0>
  189. u = 'name'
  190. vv = 'Juniper | MX | PEM'
  191. v =
  192. [<ObjectModelConnection: fan0>,
  193. <ObjectModelConnection: scb0>,
  194. <ObjectModelConnection: scb1>,
  195. <ObjectModelConnection: fpc0>,
  196. <ObjectModelConnection: fpc1>,
  197. <ObjectModelConnection: fpc2>,
  198. <ObjectModelConnection: fpc3>,
  199. <ObjectModelConnection: fpc4>,
  200. <ObjectModelConnection: fpc5>,
  201. <ObjectModelConnection: pem0>,
  202. <ObjectModelConnection: pem1>,
  203. <ObjectModelConnection: pem2>,
  204. <ObjectModelConnection: pem3>]
  205. y = 'PEM Slot #3'
  206. x = 'description'
  207. ref = <class 'noc.inv.models.connectiontype.ConnectionType'>
  208. k = {'name': 'Juniper | MX | MX480 Chassis'}
  209. partial = False
  210. ------------------------------------------------------------------------
  211. File: /opt/noc/main/management/commands/sync-collections.py (Line: 197)
  212. Function: sync
  213. 190 self.unique = set()
  214. 191 for index in self.doc._meta["unique_indexes"]:
  215. 192 for f, flag in index:
  216. 193 self.unique.add(f)
  217. 194 # Sync items
  218. 195 retry = []
  219. 196 for d in self.get_data():
  220. 197 ==> item_id, to_retry = self.sync_item(d, True)
  221. 198 try:
  222. 199 self.builtin_ids.remove(item_id)
  223. 200 except KeyError:
  224. 201 pass
  225. 202 if to_retry:
  226. 203 retry += [d]
  227. Variables:
  228. index = [('name', 1)]
  229. retry = []
  230. d =
  231. {'connections': [{'description': 'Fan Slot #0',
  232. 'direction': 'i',
  233. 'gender': 'f',
  234. 'group': '',
  235. 'name': 'fan0',
  236. 'type': <ConnectionType: Juniper | MX | MX480 Fan>,
  237. 'type__name': 'Juniper | MX | MX480 Fan'},
  238. {'description': 'SCB Slot #0',
  239. 'direction': 'i',
  240. 'gender': 'f',
  241. 'group': '',
  242. 'name': 'scb0',
  243. 'type': <ConnectionType: Juniper | MX | SCB>,
  244. 'type__name': 'Juniper | MX | SCB'},
  245. {'description': 'SCB Slot #1',
  246. 'direction': 'i',
  247. 'gender': 'f',
  248. 'group': '',
  249. 'name': 'scb1',
  250. 'type': <ConnectionType: Juniper | MX | SCB>,
  251. 'type__name': 'Juniper | MX | SCB'},
  252. {'description': 'DPC Slot #0',
  253. 'direction': 'i',
  254. 'gender': 'f',
  255. 'group': '',
  256. 'name': 'fpc0',
  257. 'type': <ConnectionType: Juniper | MX | FPC>,
  258. 'type__name': 'Juniper | MX | FPC'},
  259. {'description': 'DPC Slot#1',
  260. 'direction': 'i',
  261. 'gender': 'f',
  262. 'group': '',
  263. 'name': 'fpc1',
  264. 'type': <ConnectionType: Juniper | MX | FPC>,
  265. 'type__name': 'Juniper | MX | FPC'},
  266. {'description': 'DPC Slot #2',
  267. 'direction': 'i',
  268. 'gender': 'f',
  269. 'group': '',
  270. 'name': 'fpc2',
  271. 'type': <ConnectionType: Juniper | MX | FPC>,
  272. 'type__name': 'Juniper | MX | FPC'},
  273. {'description': 'DPC Slot #3',
  274. 'direction': 'i',
  275. 'gender': 'f',
  276. 'group': '',
  277. 'name': 'fpc3',
  278. 'type': <ConnectionType: Juniper | MX | FPC>,
  279. 'type__name': 'Juniper | MX | FPC'},
  280. {'description': 'DPC Slot #4',
  281. 'direction': 'i',
  282. 'gender': 'f',
  283. 'group': '',
  284. 'name': 'fpc4',
  285. 'type': <ConnectionType: Juniper | MX | FPC>,
  286. 'type__name': 'Juniper | MX | FPC'},
  287. {'description': 'DPC Slot #5',
  288. 'direction': 'i',
  289. 'gender': 'f',
  290. 'group': '',
  291. 'name': 'fpc5',
  292. 'type': <ConnectionType: Juniper | MX | FPC>,
  293. 'type__name': 'Juniper | MX | FPC'},
  294. {'description': 'PEM Slot #0',
  295. 'direction': 'i',
  296. 'gender': 'f',
  297. 'group': '',
  298. 'name': 'pem0',
  299. 'type': <ConnectionType: Juniper | MX | PEM>,
  300. 'type__name': 'Juniper | MX | PEM'},
  301. {'description': 'PEM Slot #1',
  302. 'direction': 'i',
  303. 'gender': 'f',
  304. 'group': '',
  305. 'name': 'pem1',
  306. 'type': <ConnectionType: Juniper | MX | PEM>,
  307. 'type__name': 'Juniper | MX | PEM'},
  308. {'description': 'PEM Slot #2',
  309. 'direction': 'i',
  310. 'gender': 'f',
  311. 'group': '',
  312. 'name': 'pem2',
  313. 'type': <ConnectionType: Juniper | MX | PEM>,
  314. 'type__name': 'Juniper | MX | PEM'},
  315. {'description': 'PEM Slot #3',
  316. 'direction': 'i',
  317. 'gender': 'f',
  318. 'group': '',
  319. 'name': 'pem3',
  320. 'type': <ConnectionType: Juniper | MX | PEM>,
  321. 'type__name': 'Juniper | MX | PEM'}],
  322. 'data': {'airflow': {'exhaust': 'l', 'intake': 'r'}, 'asset': {}},
  323. 'description': 'Juniper MX480 chassis',
  324. 'is_builtin': True,
  325. 'name': 'Juniper | MX | MX480 Chassis',
  326. 'vendor__code': 'JUNIPER'}
  327. f = 'name'
  328. self =
  329. <noc.main.management.commands.sync-collections.CollectionSync object at 0x80c507ed0>
  330. o = <ObjectModel: Juniper | MX | DPCE-R-40GE-TX>
  331. flag = 1
  332. ------------------------------------------------------------------------
  333. File: /opt/noc/main/management/commands/sync-collections.py (Line: 267)
  334. Function: handle
  335. 260 if not a:
  336. 261 raise CommandError("Invalid collection: %s" % name)
  337. 262 CollectionSync(*a)
  338. 263 else:
  339. 264 # Sync all collections
  340. 265 for app, collections in self.collections:
  341. 266 for collection, doc in collections:
  342. 267 ==> CollectionSync(app, collection, doc).sync()
  343. 268 except CommandError, why:
  344. 269 raise CommandError(why)
  345. 270 except:
  346. 271 error_report()
  347. Variables:
  348. doc = <class 'noc.inv.models.objectmodel.ObjectModel'>
  349. app = 'inv'
  350. args = ()
  351. collection = 'objectmodels'
  352. self =
  353. <noc.main.management.commands.sync-collections.Command object at 0x80c507c50>
  354. collections =
  355. [('vendors', <class 'noc.inv.models.vendor.Vendor'>),
  356. ('modelinterfaces', <class 'noc.inv.models.modelinterface.ModelInterface'>),
  357. ('connectiontypes', <class 'noc.inv.models.connectiontype.ConnectionType'>),
  358. ('objectmodels', <class 'noc.inv.models.objectmodel.ObjectModel'>)]
  359. options =
  360. {'pythonpath': None, 'settings': None, 'traceback': None, 'verbosity': '1'}
  361. ------------------------------------------------------------------------
  362. END OF TRACEBACK
  363. Syncronizing refbooks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement