Esempio n. 1
0
def get_vlan_binding(netid):
    """Lists the vlan given a network_id."""
    LOG.debug(_("get_vlan_binding() called"))
    session = db.get_session()
    try:
        binding = (session.query(l2network_models.VlanBinding).
                   filter_by(network_id=netid).one())
        return binding
    except exc.NoResultFound:
        raise q_exc.NetworkNotFound(net_id=netid)
Esempio n. 2
0
def is_vlanid_used(vlan_id):
    """Checks if a vlanid is in use."""
    LOG.debug(_("is_vlanid_used() called"))
    session = db.get_session()
    try:
        vlanid = (session.query(l2network_models.VlanID).
                  filter_by(vlan_id=vlan_id).one())
        return vlanid["vlan_used"]
    except exc.NoResultFound:
        raise c_exc.VlanIDNotFound(vlan_id=vlan_id)
Esempio n. 3
0
def get_credential_name(tenant_id, credential_name):
    """Lists the creds for given a cred_name and tenant_id."""
    session = db.get_session()
    try:
        cred = (session.query(l2network_models.Credential).
                filter_by(tenant_id=tenant_id).
                filter_by(credential_name=credential_name).one())
        return cred
    except exc.NoResultFound:
        raise c_exc.CredentialNameNotFound(credential_name=credential_name,
                                           tenant_id=tenant_id)
Esempio n. 4
0
def remove_qos(tenant_id, qos_id):
    """Removes a qos to tenant association."""
    session = db.get_session()
    try:
        qos = (session.query(l2network_models.QoS).
               filter_by(tenant_id=tenant_id).
               filter_by(qos_id=qos_id).one())
        session.delete(qos)
        session.flush()
        return qos
    except exc.NoResultFound:
        pass
Esempio n. 5
0
def get_qos(tenant_id, qos_id):
    """Lists the qos given a tenant_id and qos_id."""
    LOG.debug(_("get_qos() called"))
    session = db.get_session()
    try:
        qos = (session.query(l2network_models.QoS).
               filter_by(tenant_id=tenant_id).
               filter_by(qos_id=qos_id).one())
        return qos
    except exc.NoResultFound:
        raise c_exc.QosNotFound(qos_id=qos_id,
                                tenant_id=tenant_id)
Esempio n. 6
0
def remove_credential(tenant_id, credential_id):
    """Removes a credential from a  tenant."""
    session = db.get_session()
    try:
        cred = (session.query(l2network_models.Credential).
                filter_by(tenant_id=tenant_id).
                filter_by(credential_id=credential_id).one())
        session.delete(cred)
        session.flush()
        return cred
    except exc.NoResultFound:
        pass
Esempio n. 7
0
def remove_vlan_binding(netid):
    """Removes a vlan to network association."""
    LOG.debug(_("remove_vlan_binding() called"))
    session = db.get_session()
    try:
        binding = (session.query(l2network_models.VlanBinding).
                   filter_by(network_id=netid).one())
        session.delete(binding)
        session.flush()
        return binding
    except exc.NoResultFound:
        pass
Esempio n. 8
0
def delete_vlanid(vlan_id):
    """Deletes a vlanid entry from db."""
    LOG.debug(_("delete_vlanid() called"))
    session = db.get_session()
    try:
        vlanid = (session.query(l2network_models.VlanID).
                  filter_by(vlan_id=vlan_id).one())
        session.delete(vlanid)
        session.flush()
        return vlanid
    except exc.NoResultFound:
        pass
Esempio n. 9
0
def add_vlan_binding(vlanid, vlanname, netid):
    """Adds a vlan to network association."""
    LOG.debug(_("add_vlan_binding() called"))
    session = db.get_session()
    try:
        binding = (session.query(l2network_models.VlanBinding).
                   filter_by(vlan_id=vlanid).one())
        raise c_exc.NetworkVlanBindingAlreadyExists(vlan_id=vlanid,
                                                    network_id=netid)
    except exc.NoResultFound:
        binding = l2network_models.VlanBinding(vlanid, vlanname, netid)
        session.add(binding)
        session.flush()
        return binding
Esempio n. 10
0
def release_vlanid(vlan_id):
    """Sets the vlanid state to be unused."""
    LOG.debug(_("release_vlanid() called"))
    session = db.get_session()
    try:
        vlanid = (session.query(l2network_models.VlanID).
                  filter_by(vlan_id=vlan_id).one())
        vlanid["vlan_used"] = False
        session.merge(vlanid)
        session.flush()
        return vlanid["vlan_used"]
    except exc.NoResultFound:
        raise c_exc.VlanIDNotFound(vlan_id=vlan_id)
    return
Esempio n. 11
0
def add_qos(tenant_id, qos_name, qos_desc):
    """Adds a qos to tenant association."""
    LOG.debug(_("add_qos() called"))
    session = db.get_session()
    try:
        qos = (session.query(l2network_models.QoS).
               filter_by(tenant_id=tenant_id).
               filter_by(qos_name=qos_name).one())
        raise c_exc.QosNameAlreadyExists(qos_name=qos_name,
                                         tenant_id=tenant_id)
    except exc.NoResultFound:
        qos = l2network_models.QoS(tenant_id, qos_name, qos_desc)
        session.add(qos)
        session.flush()
        return qos
Esempio n. 12
0
def update_qos(tenant_id, qos_id, new_qos_name=None):
    """Updates a qos to tenant association."""
    session = db.get_session()
    try:
        qos = (session.query(l2network_models.QoS).
               filter_by(tenant_id=tenant_id).
               filter_by(qos_id=qos_id).one())
        if new_qos_name:
            qos["qos_name"] = new_qos_name
        session.merge(qos)
        session.flush()
        return qos
    except exc.NoResultFound:
        raise c_exc.QosNotFound(qos_id=qos_id,
                                tenant_id=tenant_id)
Esempio n. 13
0
def add_credential(tenant_id, credential_name, user_name, password):
    """Adds a qos to tenant association."""
    session = db.get_session()
    try:
        cred = (session.query(l2network_models.Credential).
                filter_by(tenant_id=tenant_id).
                filter_by(credential_name=credential_name).one())
        raise c_exc.CredentialAlreadyExists(credential_name=credential_name,
                                            tenant_id=tenant_id)
    except exc.NoResultFound:
        cred = l2network_models.Credential(tenant_id, credential_name,
                                           user_name, password)
        session.add(cred)
        session.flush()
        return cred
Esempio n. 14
0
def update_vlan_binding(netid, newvlanid=None, newvlanname=None):
    """Updates a vlan to network association."""
    LOG.debug(_("update_vlan_binding() called"))
    session = db.get_session()
    try:
        binding = (session.query(l2network_models.VlanBinding).
                   filter_by(network_id=netid).one())
        if newvlanid:
            binding["vlan_id"] = newvlanid
        if newvlanname:
            binding["vlan_name"] = newvlanname
        session.merge(binding)
        session.flush()
        return binding
    except exc.NoResultFound:
        raise q_exc.NetworkNotFound(net_id=netid)
Esempio n. 15
0
def reserve_vlanid():
    """Reserves the first unused vlanid."""
    LOG.debug(_("reserve_vlanid() called"))
    session = db.get_session()
    try:
        rvlan = (session.query(l2network_models.VlanID).
                 filter_by(vlan_used=False).first())
        if not rvlan:
            raise exc.NoResultFound
        rvlanid = (session.query(l2network_models.VlanID).
                   filter_by(vlan_id=rvlan["vlan_id"]).one())
        rvlanid["vlan_used"] = True
        session.merge(rvlanid)
        session.flush()
        return rvlan["vlan_id"]
    except exc.NoResultFound:
        raise c_exc.VlanIDNotAvailable()
Esempio n. 16
0
def create_vlanids():
    """Prepopulates the vlan_bindings table."""
    LOG.debug(_("create_vlanids() called"))
    session = db.get_session()
    try:
        vlanid = session.query(l2network_models.VlanID).one()
    except exc.MultipleResultsFound:
        pass
    except exc.NoResultFound:
        start = int(config.CISCO.vlan_start)
        end = int(config.CISCO.vlan_end)
        while start <= end:
            vlanid = l2network_models.VlanID(start)
            session.add(vlanid)
            start += 1
        session.flush()
    return
Esempio n. 17
0
def update_credential(tenant_id, credential_id,
                      new_user_name=None, new_password=None):
    """Updates a credential for a tenant."""
    session = db.get_session()
    try:
        cred = (session.query(l2network_models.Credential).
                filter_by(tenant_id=tenant_id).
                filter_by(credential_id=credential_id).one())
        if new_user_name:
            cred["user_name"] = new_user_name
        if new_password:
            cred["password"] = new_password
        session.merge(cred)
        session.flush()
        return cred
    except exc.NoResultFound:
        raise c_exc.CredentialNotFound(credential_id=credential_id,
                                       tenant_id=tenant_id)
Esempio n. 18
0
def get_all_vlan_bindings():
    """Lists all the vlan to network associations."""
    LOG.debug(_("get_all_vlan_bindings() called"))
    session = db.get_session()
    return session.query(l2network_models.VlanBinding).all()
Esempio n. 19
0
def get_all_vlanids():
    """Gets all the vlanids."""
    LOG.debug(_("get_all_vlanids() called"))
    session = db.get_session()
    return session.query(l2network_models.VlanID).all()
Esempio n. 20
0
def get_all_qoss(tenant_id):
    """Lists all the qos to tenant associations."""
    LOG.debug(_("get_all_qoss() called"))
    session = db.get_session()
    return (session.query(l2network_models.QoS).
            filter_by(tenant_id=tenant_id).all())
Esempio n. 21
0
def get_all_vlanids_used():
    """Gets all the vlanids used."""
    LOG.debug(_("get_all_vlanids() called"))
    session = db.get_session()
    return (session.query(l2network_models.VlanID).
            filter_by(vlan_used=True).all())
Esempio n. 22
0
def get_all_credentials(tenant_id):
    """Lists all the creds for a tenant."""
    session = db.get_session()
    return (session.query(l2network_models.Credential).
            filter_by(tenant_id=tenant_id).all())