コード例 #1
0
ファイル: nmap.py プロジェクト: bharathi26/pycopia
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()
コード例 #2
0
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()
コード例 #3
0
ファイル: nmap.py プロジェクト: bharathi26/pycopia
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
コード例 #4
0
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
コード例 #5
0
ファイル: suiterunner.py プロジェクト: tijmengit/pycopia
 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