示例#1
0
def get_portprofile(tenantid, ppid):
    """Lists a port profile"""
    LOG.debug("get_portprofile() called")
    session = db.get_session()
    try:
        pp = (session.query(l2network_models.PortProfile).
              filter_by(uuid=ppid).one())
        return pp
    except exc.NoResultFound:
        raise c_exc.PortProfileNotFound(tenant_id=tenantid,
                                        portprofile_id=ppid)
示例#2
0
    def disassociate_portprofile(self, tenant_id, net_id,
                                 port_id, portprofile_id):
        """Disassociate port profile"""
        LOG.debug("disassociate_portprofile() called\n")
        try:
            portprofile = cdb.get_portprofile(tenant_id, portprofile_id)
        except Exception:
            raise cexc.PortProfileNotFound(tenant_id=tenant_id,
                                      portprofile_id=portprofile_id)

        cdb.remove_pp_binding(tenant_id, port_id, portprofile_id)
示例#3
0
 def rename_portprofile(self, tenant_id, profile_id, new_name):
     """Rename port profile"""
     LOG.debug("rename_portprofile() called\n")
     try:
         portprofile = cdb.get_portprofile(tenant_id, profile_id)
     except Exception:
         raise cexc.PortProfileNotFound(tenant_id=tenant_id,
                                        portprofile_id=profile_id)
     portprofile = cdb.update_portprofile(tenant_id, profile_id, new_name)
     new_pp = cutil.make_portprofile_dict(tenant_id,
                                          portprofile[const.UUID],
                                          portprofile[const.PPNAME],
                                          portprofile[const.PPQOS])
     return new_pp
示例#4
0
    def get_portprofile_details(self, tenant_id, profile_id):
        """Get port profile details"""
        LOG.debug("get_portprofile_details() called\n")
        try:
            portprofile = cdb.get_portprofile(tenant_id, profile_id)
        except Exception:
            raise cexc.PortProfileNotFound(tenant_id=tenant_id,
                                           portprofile_id=profile_id)

        new_pp = cutil.make_portprofile_dict(tenant_id,
                                             portprofile[const.UUID],
                                             portprofile[const.PPNAME],
                                             portprofile[const.PPQOS])
        return new_pp
示例#5
0
    def delete_portprofile(self, tenant_id, profile_id):
        """Delete portprofile"""
        LOG.debug("delete_portprofile() called\n")
        try:
            portprofile = cdb.get_portprofile(tenant_id, profile_id)
        except Exception:
            raise cexc.PortProfileNotFound(tenant_id=tenant_id,
                                           portprofile_id=profile_id)

        plist = cdb.get_pp_binding(tenant_id, profile_id)
        if plist:
            raise cexc.PortProfileInvalidDelete(tenant_id=tenant_id,
                                                profile_id=profile_id)
        else:
            cdb.remove_portprofile(tenant_id, profile_id)
示例#6
0
def update_pp_binding(tenantid, ppid, newtenantid=None,
                      newportid=None, newdefault=None):
    """Updates port profile binding"""
    LOG.debug("update_pp_binding() called")
    session = db.get_session()
    try:
        binding = (session.query(l2network_models.PortProfileBinding).
                   filter_by(portprofile_id=ppid).one())
        if newtenantid:
            binding["tenant_id"] = newtenantid
        if newportid:
            binding["port_id"] = newportid
        if newdefault:
            binding["default"] = newdefault
        session.merge(binding)
        session.flush()
        return binding
    except exc.NoResultFound:
        raise c_exc.PortProfileNotFound(tenant_id=tenantid,
                                        portprofile_id=ppid)
示例#7
0
def update_portprofile(tenantid, ppid, newppname=None, newvlanid=None,
                       newqos=None):
    """Updates port profile"""
    LOG.debug("update_portprofile() called")
    session = db.get_session()
    try:
        pp = (session.query(l2network_models.PortProfile).
              filter_by(uuid=ppid).one())
        if newppname:
            pp["name"] = newppname
        if newvlanid:
            pp["vlan_id"] = newvlanid
        if newqos:
            pp["qos"] = newqos
        session.merge(pp)
        session.flush()
        return pp
    except exc.NoResultFound:
        raise c_exc.PortProfileNotFound(tenant_id=tenantid,
                                        portprofile_id=ppid)