def add_interface(session, attribs): """Add new interface, don't duplicate existing one. Also try connecting to equipment if possible. """ network = attribs.get("network") ipaddr = attribs["ipaddr"] attribs["interface_type"] = get_interface_type(session) q = session.query(models.Interface).filter(models.and_( models.Interface.network==network, models.Interface.ipaddr==ipaddr) ) # try to find equipment by matching name. hostname = attribs.get("description") if hostname: eq = get_equipment(session, hostname) del attribs["description"] else: eq = None attribs["equipment"] = eq try: intf = q.one() except models.NoResultFound: intf = models.create(models.Interface, **attribs) session.add(intf) session.commit() else: models.update(intf, **attribs) session.commit()
def add_interface(session, attribs): """Add new interface, don't duplicate existing one. Also try connecting to equipment if possible. """ network = attribs.get("network") ipaddr = attribs["ipaddr"] attribs["interface_type"] = get_interface_type(session) q = session.query(models.Interface).filter( models.and_(models.Interface.network == network, models.Interface.ipaddr == ipaddr)) # try to find equipment by matching name. hostname = attribs.get("description") if hostname: eq = get_equipment(session, hostname) del attribs["description"] else: eq = None attribs["equipment"] = eq try: intf = q.one() except models.NoResultFound: intf = models.create(models.Interface, **attribs) session.add(intf) session.commit() else: models.update(intf, **attribs) session.commit()
def get_unknown_equipment_model(session): cat = session.query(models.EquipmentCategory).filter(models.EquipmentCategory.name=="unknown").one() q = session.query(models.EquipmentModel).filter(models.and_( models.EquipmentModel.name=="Unknown", models.EquipmentModel.category==cat) ) try: model = q.one() except models.NoResultFound: manu = session.query(models.Corporation).filter(models.Corporation.name=="Custom").one() model = models.create(models.EquipmentModel, name="Unknown", category=cat, manufacturer=manu) session.add(model) session.commit() return model
def get_unknown_equipment_model(session): cat = session.query(models.EquipmentCategory).filter( models.EquipmentCategory.name == "unknown").one() q = session.query(models.EquipmentModel).filter( models.and_(models.EquipmentModel.name == "Unknown", models.EquipmentModel.category == cat)) try: model = q.one() except models.NoResultFound: manu = session.query(models.Corporation).filter( models.Corporation.name == "Custom").one() model = models.create(models.EquipmentModel, name="Unknown", category=cat, manufacturer=manu) session.add(model) session.commit() return model
def get_test_suites(self, args): """Generator that yields valid TestSuite records from the database. """ TS = models.TestSuite for suiteid in args: try: suiteid = int(suiteid) except ValueError: pass try: if type(suiteid) is int: suite = self.dbsession.query(TS).get(suiteid) else: suite = self.dbsession.query(TS).filter(models.and_(TS.name==suiteid, TS.valid==True)).one() except models.NoResultFound: logging.warn("No TestSuite with id or name %r" % suiteid) continue else: yield suite