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)
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)
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
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
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)
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)
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)