Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Syncronize collections
- Syncing noc.vendors:
- Syncing noc.modelinterfaces:
- Syncing noc.connectiontypes:
- Syncing noc.objectmodels:
- ERROR:root:UNHANDLED EXCEPTION (2013-10-01 10:50:25.562753)
- Working directory: /opt/noc
- <class 'mongoengine.base.ValidationError'>
- Unable to dereference <class 'noc.inv.models.connectiontype.ConnectionType'>:5247228ef3b682f71c9d8b37
- START OF TRACEBACK
- ------------------------------------------------------------------------
- File: /opt/noc/lib/nosql.py (Line: 103)
- Function: __get__
- 96 # Dereference DBRefs
- 97 if isinstance(value, ObjectId):
- 98 v = self.document_type.objects(id=value).first()
- 99 if v is not None:
- 100 instance._data[self.name] = v
- 101 else:
- 102 raise ValidationError("Unable to dereference %s:%s" % (
- 103 ==> self.document_type, value))
- 104 return super(PlainReferenceField, self).__get__(instance, owner)
- 105
- 106 def to_mongo(self, document):
- 107 if isinstance(document, Document):
- 108 # We need the id from the saved object to create the DBRef
- 109 id_ = document.id
- Variables:
- owner = <class 'noc.inv.models.objectmodel.ObjectModelConnection'>
- instance = <ObjectModelConnection: fan0>
- self = <noc.lib.nosql.PlainReferenceField object at 0x809fa4110>
- value = ObjectId('5247228ef3b682f71c9d8b37')
- v = None
- ------------------------------------------------------------------------
- File: /opt/noc/inv/models/objectmodel.py (Line: 45)
- Function: __eq__
- 38 def __unicode__(self):
- 39 return self.name
- 40
- 41 def __eq__(self, other):
- 42 return (
- 43 self.name == other.name and
- 44 self.description == other.description and
- 45 ==> self.type.id == other.type.id and
- 46 self.direction == other.direction and
- 47 self.gender == other.gender and
- 48 self.group == other.group
- 49 )
- 50
- 51
- Variables:
- self = <ObjectModelConnection: fan0>
- other = <ObjectModelConnection: fan0>
- ------------------------------------------------------------------------
- File: /opt/noc/main/management/commands/sync-collections.py (Line: 155)
- Function: sync_item
- 148 # Try to skip and resolve later
- 149 partial = True
- 150 continue
- 151 else:
- 152 dd[ii] = self.lookup(ref, f, vv)
- 153 dd = dict([(str(x), y) for x, y in dd.items()])
- 154 v += [edoc(**dd)]
- 155 ==> if getattr(obj, i) != v:
- 156 changed = True
- 157 if allow_partial:
- 158 # Check List Field is valid
- 159 # and has all resolved referencies
- 160 try:
- 161 field.validate(v)
- Variables:
- sk = [{'name': 'Juniper | MX | MX480 Chassis'}]
- changed = False
- obj = <ObjectModel: Juniper | MX | MX480 Chassis>
- d =
- {'connections': [{'description': 'Fan Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fan0',
- 'type': <ConnectionType: Juniper | MX | MX480 Fan>,
- 'type__name': 'Juniper | MX | MX480 Fan'},
- {'description': 'SCB Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'scb0',
- 'type': <ConnectionType: Juniper | MX | SCB>,
- 'type__name': 'Juniper | MX | SCB'},
- {'description': 'SCB Slot #1',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'scb1',
- 'type': <ConnectionType: Juniper | MX | SCB>,
- 'type__name': 'Juniper | MX | SCB'},
- {'description': 'DPC Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc0',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot#1',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc1',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #2',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc2',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #3',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc3',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #4',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc4',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #5',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc5',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'PEM Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem0',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'},
- {'description': 'PEM Slot #1',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem1',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'},
- {'description': 'PEM Slot #2',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem2',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'},
- {'description': 'PEM Slot #3',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem3',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'}],
- 'data': {'airflow': {'exhaust': 'l', 'intake': 'r'}, 'asset': {}},
- 'description': 'Juniper MX480 chassis',
- 'is_builtin': True,
- 'name': 'Juniper | MX | MX480 Chassis',
- 'vendor__code': 'JUNIPER'}
- f = 'name'
- i = 'connections'
- allow_partial = True
- dd =
- {'description': 'PEM Slot #3',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem3',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'}
- created = False
- edoc = <class 'noc.inv.models.objectmodel.ObjectModelConnection'>
- self =
- <noc.main.management.commands.sync-collections.CollectionSync object at 0x80c507ed0>
- ii = 'description'
- field = <mongoengine.fields.ListField object at 0x809fa43d0>
- u = 'name'
- vv = 'Juniper | MX | PEM'
- v =
- [<ObjectModelConnection: fan0>,
- <ObjectModelConnection: scb0>,
- <ObjectModelConnection: scb1>,
- <ObjectModelConnection: fpc0>,
- <ObjectModelConnection: fpc1>,
- <ObjectModelConnection: fpc2>,
- <ObjectModelConnection: fpc3>,
- <ObjectModelConnection: fpc4>,
- <ObjectModelConnection: fpc5>,
- <ObjectModelConnection: pem0>,
- <ObjectModelConnection: pem1>,
- <ObjectModelConnection: pem2>,
- <ObjectModelConnection: pem3>]
- y = 'PEM Slot #3'
- x = 'description'
- ref = <class 'noc.inv.models.connectiontype.ConnectionType'>
- k = {'name': 'Juniper | MX | MX480 Chassis'}
- partial = False
- ------------------------------------------------------------------------
- File: /opt/noc/main/management/commands/sync-collections.py (Line: 197)
- Function: sync
- 190 self.unique = set()
- 191 for index in self.doc._meta["unique_indexes"]:
- 192 for f, flag in index:
- 193 self.unique.add(f)
- 194 # Sync items
- 195 retry = []
- 196 for d in self.get_data():
- 197 ==> item_id, to_retry = self.sync_item(d, True)
- 198 try:
- 199 self.builtin_ids.remove(item_id)
- 200 except KeyError:
- 201 pass
- 202 if to_retry:
- 203 retry += [d]
- Variables:
- index = [('name', 1)]
- retry = []
- d =
- {'connections': [{'description': 'Fan Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fan0',
- 'type': <ConnectionType: Juniper | MX | MX480 Fan>,
- 'type__name': 'Juniper | MX | MX480 Fan'},
- {'description': 'SCB Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'scb0',
- 'type': <ConnectionType: Juniper | MX | SCB>,
- 'type__name': 'Juniper | MX | SCB'},
- {'description': 'SCB Slot #1',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'scb1',
- 'type': <ConnectionType: Juniper | MX | SCB>,
- 'type__name': 'Juniper | MX | SCB'},
- {'description': 'DPC Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc0',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot#1',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc1',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #2',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc2',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #3',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc3',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #4',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc4',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'DPC Slot #5',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'fpc5',
- 'type': <ConnectionType: Juniper | MX | FPC>,
- 'type__name': 'Juniper | MX | FPC'},
- {'description': 'PEM Slot #0',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem0',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'},
- {'description': 'PEM Slot #1',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem1',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'},
- {'description': 'PEM Slot #2',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem2',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'},
- {'description': 'PEM Slot #3',
- 'direction': 'i',
- 'gender': 'f',
- 'group': '',
- 'name': 'pem3',
- 'type': <ConnectionType: Juniper | MX | PEM>,
- 'type__name': 'Juniper | MX | PEM'}],
- 'data': {'airflow': {'exhaust': 'l', 'intake': 'r'}, 'asset': {}},
- 'description': 'Juniper MX480 chassis',
- 'is_builtin': True,
- 'name': 'Juniper | MX | MX480 Chassis',
- 'vendor__code': 'JUNIPER'}
- f = 'name'
- self =
- <noc.main.management.commands.sync-collections.CollectionSync object at 0x80c507ed0>
- o = <ObjectModel: Juniper | MX | DPCE-R-40GE-TX>
- flag = 1
- ------------------------------------------------------------------------
- File: /opt/noc/main/management/commands/sync-collections.py (Line: 267)
- Function: handle
- 260 if not a:
- 261 raise CommandError("Invalid collection: %s" % name)
- 262 CollectionSync(*a)
- 263 else:
- 264 # Sync all collections
- 265 for app, collections in self.collections:
- 266 for collection, doc in collections:
- 267 ==> CollectionSync(app, collection, doc).sync()
- 268 except CommandError, why:
- 269 raise CommandError(why)
- 270 except:
- 271 error_report()
- Variables:
- doc = <class 'noc.inv.models.objectmodel.ObjectModel'>
- app = 'inv'
- args = ()
- collection = 'objectmodels'
- self =
- <noc.main.management.commands.sync-collections.Command object at 0x80c507c50>
- collections =
- [('vendors', <class 'noc.inv.models.vendor.Vendor'>),
- ('modelinterfaces', <class 'noc.inv.models.modelinterface.ModelInterface'>),
- ('connectiontypes', <class 'noc.inv.models.connectiontype.ConnectionType'>),
- ('objectmodels', <class 'noc.inv.models.objectmodel.ObjectModel'>)]
- options =
- {'pythonpath': None, 'settings': None, 'traceback': None, 'verbosity': '1'}
- ------------------------------------------------------------------------
- END OF TRACEBACK
- Syncronizing refbooks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement