Big pep8 cleanup

This commit is contained in:
Matt Dietz
2013-02-28 18:30:55 +00:00
parent 0c30c8cc57
commit ada0452654
7 changed files with 119 additions and 121 deletions

View File

@@ -54,13 +54,13 @@ class IpAddressesController(wsgi.Controller):
def index(self, request): def index(self, request):
context = request.context context = request.context
return {"ip_addresses": return {"ip_addresses":
self._plugin.get_ip_addresses(context)} self._plugin.get_ip_addresses(context)}
def show(self, request, id): def show(self, request, id):
context = request.context context = request.context
try: try:
return {"ip_addresses": return {"ip_addresses":
self._plugin.get_ip_address(context, id)} self._plugin.get_ip_address(context, id)}
except exceptions.NotFound: except exceptions.NotFound:
raise webob.exc.HTTPNotFound() raise webob.exc.HTTPNotFound()

View File

@@ -52,14 +52,14 @@ class MacAddressRangesController(wsgi.Controller):
if not "cidr" in body[RESOURCE_NAME]: if not "cidr" in body[RESOURCE_NAME]:
raise webob.exc.HTTPUnprocessableEntity() raise webob.exc.HTTPUnprocessableEntity()
return {"mac_address_range": return {"mac_address_range":
self._plugin.create_mac_address_range(request.context, body)} self._plugin.create_mac_address_range(request.context, body)}
def index(self, request): def index(self, request):
context = request.context context = request.context
if not context.is_admin: if not context.is_admin:
raise webob.exc.HTTPForbidden() raise webob.exc.HTTPForbidden()
return {"mac_address_ranges": return {"mac_address_ranges":
self._plugin.get_mac_address_ranges(context)} self._plugin.get_mac_address_ranges(context)}
def show(self, request, id): def show(self, request, id):
context = request.context context = request.context

View File

@@ -59,12 +59,12 @@ class RoutesController(wsgi.Controller):
raise webob.exc.HTTPUnprocessableEntity() raise webob.exc.HTTPUnprocessableEntity()
return {"route": return {"route":
self._plugin.create_route(request.context, body)} self._plugin.create_route(request.context, body)}
def index(self, request): def index(self, request):
context = request.context context = request.context
return {"routes": return {"routes":
self._plugin.get_routes(context)} self._plugin.get_routes(context)}
def show(self, request, id): def show(self, request, id):
context = request.context context = request.context

View File

@@ -69,7 +69,8 @@ class TagAssociation(BASEV2, HasId):
class Tag(BASEV2, HasId, HasTenant): class Tag(BASEV2, HasId, HasTenant):
__tablename__ = "quark_tags" __tablename__ = "quark_tags"
association_uuid = sa.Column(sa.String(36), association_uuid = sa.Column(sa.String(36),
sa.ForeignKey(TagAssociation.id), nullable=False) sa.ForeignKey(TagAssociation.id),
nullable=False)
tag = sa.Column(sa.String(255), nullable=False) tag = sa.Column(sa.String(255), nullable=False)
parent = associationproxy.association_proxy("association", "parent") parent = associationproxy.association_proxy("association", "parent")
@@ -208,9 +209,9 @@ class Port(BASEV2, CreatedAt, HasId, HasTenant):
class MacAddress(BASEV2, CreatedAt, HasTenant): class MacAddress(BASEV2, CreatedAt, HasTenant):
__tablename__ = "quark_mac_addresses" __tablename__ = "quark_mac_addresses"
address = sa.Column(sa.BigInteger(), primary_key=True) address = sa.Column(sa.BigInteger(), primary_key=True)
mac_address_range_id = sa.Column(sa.String(36), mac_address_range_id = sa.Column(
sa.ForeignKey("quark_mac_address_ranges.id"), sa.String(36), sa.ForeignKey("quark_mac_address_ranges.id"),
nullable=False) nullable=False)
deallocated = sa.Column(sa.Boolean()) deallocated = sa.Column(sa.Boolean())
deallocated_at = sa.Column(sa.DateTime()) deallocated_at = sa.Column(sa.DateTime())
orm.relationship(Port, backref="mac_address") orm.relationship(Port, backref="mac_address")

View File

@@ -43,7 +43,7 @@ class NVPDriver(base.BaseDriver):
for conn in connections.split(): for conn in connections.split():
(ip, port, user, pw, req_timeout, (ip, port, user, pw, req_timeout,
http_timeout, retries, redirects) =\ http_timeout, retries, redirects) =\
config.get("NVP", conn).split(":") config.get("NVP", conn).split(":")
self.nvp_connections.append(dict(ip_address=ip, self.nvp_connections.append(dict(ip_address=ip,
port=port, port=port,
username=user, username=user,
@@ -65,7 +65,7 @@ class NVPDriver(base.BaseDriver):
def create_network(self, tenant_id, network_name, tags=None, def create_network(self, tenant_id, network_name, tags=None,
network_id=None, **kwargs): network_id=None, **kwargs):
return self._create_lswitch(tenant_id, network_name, tags, return self._create_lswitch(tenant_id, network_name, tags,
network_id, **kwargs) network_id, **kwargs)
def delete_network(self, context, network_id): def delete_network(self, context, network_id):
connection = self.get_connection() connection = self.get_connection()
@@ -108,7 +108,7 @@ class NVPDriver(base.BaseDriver):
if max_per_switch > 0: if max_per_switch > 0:
LOG.debug("Max ports per switch %d" % max_per_switch) LOG.debug("Max ports per switch %d" % max_per_switch)
switch = self._get_open_lswitch(context, network_id, switch = self._get_open_lswitch(context, network_id,
max_per_switch) max_per_switch)
if switch: if switch:
LOG.debug("Found open switch %s" % switch) LOG.debug("Found open switch %s" % switch)
return switch return switch
@@ -150,7 +150,7 @@ class NVPDriver(base.BaseDriver):
def _create_lswitch(self, context, network_name, tags=None, def _create_lswitch(self, context, network_name, tags=None,
network_id=None, **kwargs): network_id=None, **kwargs):
LOG.debug("Creating new lswitch for %s network %s" % LOG.debug("Creating new lswitch for %s network %s" %
(context.tenant_id, network_name)) (context.tenant_id, network_name))
tenant_id = context.tenant_id tenant_id = context.tenant_id
connection = self.get_connection() connection = self.get_connection()
switch = connection.lswitch() switch = connection.lswitch()
@@ -169,9 +169,9 @@ class OptimizedNVPDriver(NVPDriver):
def _get_open_lswitch(self, context, network_id, max_per_switch): def _get_open_lswitch(self, context, network_id, max_per_switch):
#TODO: use the lswitch table here #TODO: use the lswitch table here
return super(OptimizedNVPDriver, self)._get_open_lswitch( return super(OptimizedNVPDriver, self)._get_open_lswitch(
context, network_id, max_per_switch) context, network_id, max_per_switch)
def _get_lswitch_for_network(self, context, network_id): def _get_lswitch_for_network(self, context, network_id):
#TODO: use the lswitch table here #TODO: use the lswitch table here
return super(OptimizedNVPDriver, self)._get_lswitch_for_network( return super(OptimizedNVPDriver, self)._get_lswitch_for_network(
context, network_id) context, network_id)

View File

@@ -35,12 +35,12 @@ class QuarkIpam(object):
def _choose_available_subnet(self, net_id, session): def _choose_available_subnet(self, net_id, session):
subnets = session.query(models.Subnet, subnets = session.query(models.Subnet,
sql_func.count(models.IPAddress.subnet_id). sql_func.count(models.IPAddress.subnet_id).
label('count')).\ label('count')).\
with_lockmode("update").\ with_lockmode("update").\
outerjoin(models.Subnet.allocated_ips).\ outerjoin(models.Subnet.allocated_ips).\
group_by(models.IPAddress).\ group_by(models.IPAddress).\
order_by("count DESC").\ order_by("count DESC").\
all() all()
if not subnets: if not subnets:
raise exceptions.IpAddressGenerationFailure(net_id=net_id) raise exceptions.IpAddressGenerationFailure(net_id=net_id)
@@ -54,11 +54,11 @@ class QuarkIpam(object):
def allocate_mac_address(self, session, net_id, port_id, tenant_id, def allocate_mac_address(self, session, net_id, port_id, tenant_id,
reuse_after): reuse_after):
reuse = (datetime.datetime.utcnow() - reuse = (datetime.datetime.utcnow() -
datetime.timedelta(seconds=reuse_after)) datetime.timedelta(seconds=reuse_after))
deallocated_mac = session.query(models.MacAddress).\ deallocated_mac = session.query(models.MacAddress).\
filter(models.MacAddress.deallocated == 1).\ filter(models.MacAddress.deallocated == 1).\
filter(models.MacAddress.deallocated_at <= reuse).\ filter(models.MacAddress.deallocated_at <= reuse).\
first() first()
if deallocated_mac: if deallocated_mac:
deallocated_mac["deallocated"] = False deallocated_mac["deallocated"] = False
deallocated_mac["deallocated_at"] = None deallocated_mac["deallocated_at"] = None
@@ -67,10 +67,10 @@ class QuarkIpam(object):
ranges = session.query(models.MacAddressRange, ranges = session.query(models.MacAddressRange,
sql_func.count(models.MacAddress). sql_func.count(models.MacAddress).
label("count")).\ label("count")).\
outerjoin(models.MacAddress).\ outerjoin(models.MacAddress).\
group_by(models.MacAddressRange).\ group_by(models.MacAddressRange).\
order_by("count DESC").\ order_by("count DESC").\
all() all()
if not ranges: if not ranges:
raise exceptions.MacAddressGenerationFailure(net_id=net_id) raise exceptions.MacAddressGenerationFailure(net_id=net_id)
for result in ranges: for result in ranges:
@@ -78,10 +78,10 @@ class QuarkIpam(object):
if rng["last_address"] - rng["first_address"] <= addr_count: if rng["last_address"] - rng["first_address"] <= addr_count:
continue continue
highest_mac = session.query(models.MacAddress).\ highest_mac = session.query(models.MacAddress).\
filter(models.MacAddress.mac_address_range_id == filter(models.MacAddress.mac_address_range_id ==
rng["id"]).\ rng["id"]).\
order_by("address DESC").\ order_by("address DESC").\
first() first()
address = models.MacAddress() address = models.MacAddress()
if highest_mac: if highest_mac:
next_mac = netaddr.EUI(highest_mac["address"]).value next_mac = netaddr.EUI(highest_mac["address"]).value
@@ -98,20 +98,20 @@ class QuarkIpam(object):
def allocate_ip_address(self, session, net_id, port_id, reuse_after): def allocate_ip_address(self, session, net_id, port_id, reuse_after):
reuse = (datetime.datetime.utcnow() - reuse = (datetime.datetime.utcnow() -
datetime.timedelta(seconds=reuse_after)) datetime.timedelta(seconds=reuse_after))
address = session.query(models.IPAddress).\ address = session.query(models.IPAddress).\
filter(models.IPAddress.network_id == net_id).\ filter(models.IPAddress.network_id == net_id).\
filter(models.IPAddress.port_id == None).\ filter(models.IPAddress.port_id == None).\
filter(models.IPAddress._deallocated == 1).\ filter(models.IPAddress._deallocated == 1).\
filter(models.IPAddress.deallocated_at <= reuse).\ filter(models.IPAddress.deallocated_at <= reuse).\
first() first()
if not address: if not address:
subnet = self._choose_available_subnet(net_id, session) subnet = self._choose_available_subnet(net_id, session)
highest_addr = session.query(models.IPAddress).\ highest_addr = session.query(models.IPAddress).\
filter(models.IPAddress.subnet_id == filter(models.IPAddress.subnet_id ==
subnet["id"]).\ subnet["id"]).\
order_by("address DESC").\ order_by("address DESC").\
first() first()
# TODO(mdietz): Need to honor policies here # TODO(mdietz): Need to honor policies here
address = models.IPAddress() address = models.IPAddress()
@@ -138,8 +138,8 @@ class QuarkIpam(object):
def deallocate_ip_address(self, session, port_id, **kwargs): def deallocate_ip_address(self, session, port_id, **kwargs):
address = session.query(models.IPAddress).\ address = session.query(models.IPAddress).\
filter(models.IPAddress.port_id == port_id).\ filter(models.IPAddress.port_id == port_id).\
first() first()
if not address: if not address:
LOG.critical("No IP assigned or already deallocated") LOG.critical("No IP assigned or already deallocated")
return return
@@ -147,12 +147,12 @@ class QuarkIpam(object):
def deallocate_mac_address(self, session, address): def deallocate_mac_address(self, session, address):
mac = session.query(models.MacAddress).\ mac = session.query(models.MacAddress).\
filter(models.MacAddress.address == address).\ filter(models.MacAddress.address == address).\
first() first()
if not mac: if not mac:
mac_pretty = netaddr.EUI(address) mac_pretty = netaddr.EUI(address)
raise exceptions.NotFound( raise exceptions.NotFound(
message="No MAC address %s found" % mac_pretty) message="No MAC address %s found" % mac_pretty)
mac["deallocated"] = True mac["deallocated"] = True
mac["deallocated_at"] = datetime.datetime.utcnow() mac["deallocated_at"] = datetime.datetime.utcnow()
session.add(mac) session.add(mac)

View File

@@ -43,8 +43,8 @@ quark_opts = [
cfg.StrOpt('ipam_driver', default='quark.ipam.QuarkIpam', cfg.StrOpt('ipam_driver', default='quark.ipam.QuarkIpam',
help=_('IPAM Implementation to use')), help=_('IPAM Implementation to use')),
cfg.BoolOpt('ipam_reuse_after', default=7200, cfg.BoolOpt('ipam_reuse_after', default=7200,
help=_("Time in seconds til IP and MAC reuse" help=_("Time in seconds til IP and MAC reuse"
"after deallocation.")), "after deallocation.")),
cfg.StrOpt('net_driver_cfg', default='/etc/quantum/quark.ini', cfg.StrOpt('net_driver_cfg', default='/etc/quantum/quark.ini',
help=_("Path to the config for the net driver")) help=_("Path to the config for the net driver"))
] ]
@@ -131,7 +131,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
"device_owner": port.get("device_owner")} "device_owner": port.get("device_owner")}
if isinstance(res["mac_address"], (int, long)): if isinstance(res["mac_address"], (int, long)):
res["mac_address"] = str(netaddr.EUI(res["mac_address"], res["mac_address"] = str(netaddr.EUI(res["mac_address"],
dialect=netaddr.mac_unix)) dialect=netaddr.mac_unix))
return res return res
def _make_port_address_dict(self, ip): def _make_port_address_dict(self, ip):
@@ -153,7 +153,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
ports[port_id]["fixed_ips"] = [] ports[port_id]["fixed_ips"] = []
if addr_dict: if addr_dict:
ports[port_id]["fixed_ips"].append( ports[port_id]["fixed_ips"].append(
self._make_port_address_dict(addr_dict)) self._make_port_address_dict(addr_dict))
return ports.values() return ports.values()
def _make_mac_range_dict(self, mac_range): def _make_mac_range_dict(self, mac_range):
@@ -222,10 +222,9 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
will be returned. will be returned.
""" """
LOG.info("get_subnet %s for tenant %s with fields %s" % LOG.info("get_subnet %s for tenant %s with fields %s" %
(id, context.tenant_id, fields)) (id, context.tenant_id, fields))
subnet = context.session.query(models.Subnet).\ subnet = context.session.query(models.Subnet).\
filter(models.Subnet.id == id).\ filter(models.Subnet.id == id).first()
first()
if not subnet: if not subnet:
raise exceptions.SubnetNotFound(subnet_id=id) raise exceptions.SubnetNotFound(subnet_id=id)
@@ -250,11 +249,11 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
will be returned. will be returned.
""" """
LOG.info("get_subnets for tenant %s with filters %s fields %s" % LOG.info("get_subnets for tenant %s with filters %s fields %s" %
(context.tenant_id, filters, fields)) (context.tenant_id, filters, fields))
query = context.session.query(models.Subnet) query = context.session.query(models.Subnet)
if filters.get("network_id"): if filters.get("network_id"):
query = query.filter( query = query.filter(
models.Subnet.network_id == filters["network_id"]) models.Subnet.network_id == filters["network_id"])
return [self._make_subnet_dict(s) for s in query.all()] return [self._make_subnet_dict(s) for s in query.all()]
def get_subnets_count(self, context, filters=None): def get_subnets_count(self, context, filters=None):
@@ -275,11 +274,11 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
defined plugin API. defined plugin API.
""" """
LOG.info("get_subnets_count for tenant %s with filters %s" % LOG.info("get_subnets_count for tenant %s with filters %s" %
(context.tenant_id, filters)) (context.tenant_id, filters))
query = context.session.query(sql_func.count(models.Subnet.id)) query = context.session.query(sql_func.count(models.Subnet.id))
if filters.get("network_id"): if filters.get("network_id"):
query = query.filter( query = query.filter(
models.Subnet.network_id == filters["network_id"]) models.Subnet.network_id == filters["network_id"])
return query.scalar() return query.scalar()
def _delete_subnet(self, subnet, session): def _delete_subnet(self, subnet, session):
@@ -294,10 +293,10 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
: param id: UUID representing the subnet to delete. : param id: UUID representing the subnet to delete.
""" """
LOG.info("delete_subnet %s for tenant %s with filters %s" % LOG.info("delete_subnet %s for tenant %s with filters %s" %
(id, context.tenant_id)) (id, context.tenant_id))
subnet = context.session.query(models.Subnet).\ subnet = context.session.query(models.Subnet).\
filter(models.Subnet.id == id).\ filter(models.Subnet.id == id).\
first() first()
if not subnet: if not subnet:
raise exceptions.SubnetNotFound(subnet_id=id) raise exceptions.SubnetNotFound(subnet_id=id)
@@ -348,11 +347,11 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
quantum/api/v2/attributes.py. quantum/api/v2/attributes.py.
""" """
LOG.info("update_network %s for tenant %s with filters %s" % LOG.info("update_network %s for tenant %s with filters %s" %
(id, context.tenant_id)) (id, context.tenant_id))
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
net = context.session.query(models.Network).\ net = context.session.query(models.Network).\
filter(models.Network.id == id).\ filter(models.Network.id == id).\
first() first()
if not network: if not network:
raise exceptions.NetworkNotFound(net_id=id) raise exceptions.NetworkNotFound(net_id=id)
net.update(network["network"]) net.update(network["network"])
@@ -371,7 +370,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
will be returned. will be returned.
""" """
LOG.info("get_network %s for tenant %s fields %s" % LOG.info("get_network %s for tenant %s fields %s" %
(id, context.tenant_id, fields)) (id, context.tenant_id, fields))
query = context.session.query(models.Network) query = context.session.query(models.Network)
network = query.filter(models.Network.id == id).first() network = query.filter(models.Network.id == id).first()
if not network: if not network:
@@ -397,7 +396,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
will be returned. will be returned.
""" """
LOG.info("get_networks for tenant %s with filters %s, fields %s" % LOG.info("get_networks for tenant %s with filters %s, fields %s" %
(context.tenant_id, filters, fields)) (context.tenant_id, filters, fields))
query = context.session.query(models.Network) query = context.session.query(models.Network)
# TODO(mdietz): we don't support "shared" networks yet. The concept # TODO(mdietz): we don't support "shared" networks yet. The concept
# is broken # is broken
@@ -428,10 +427,10 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
defined plugin API. defined plugin API.
""" """
LOG.info("get_networks_count for tenant %s filters %s" % LOG.info("get_networks_count for tenant %s filters %s" %
(context.tenant_id, filters)) (context.tenant_id, filters))
query = context.session.query(sql_func.count(models.Network.id)) query = context.session.query(sql_func.count(models.Network.id))
return query.filter(models.Network.tenant_id == context.tenant_id).\ return query.filter(models.Network.tenant_id == context.tenant_id).\
scalar() scalar()
def delete_network(self, context, id): def delete_network(self, context, id):
""" """
@@ -443,9 +442,9 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
session = context.session session = context.session
with session.begin(): with session.begin():
net = session.query(models.Network).\ net = session.query(models.Network).\
filter(models.Network.id == id).\ filter(models.Network.id == id).\
filter(models.Network.tenant_id == context.tenant_id).\ filter(models.Network.tenant_id == context.tenant_id).\
first() first()
if not net: if not net:
raise exceptions.NetworkNotFound(net_id=id) raise exceptions.NetworkNotFound(net_id=id)
if net.ports: if net.ports:
@@ -478,23 +477,21 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
net_id = port["port"]["network_id"] net_id = port["port"]["network_id"]
net = session.query(models.Network).\ net = session.query(models.Network).\
filter(models.Network.id == net_id).\ filter(models.Network.id == net_id).\
filter(models.Network.tenant_id == context.tenant_id).\ filter(models.Network.tenant_id == context.tenant_id).\
first() first()
if not net: if not net:
raise exceptions.NetworkNotFound(net_id=net_id) raise exceptions.NetworkNotFound(net_id=net_id)
addresses = self.ipam_driver.allocate_ip_address(session, addresses = self.ipam_driver.allocate_ip_address(
net_id, session, net_id, port_id, self.ipam_reuse_after)
port_id,
self.ipam_reuse_after)
mac = self.ipam_driver.allocate_mac_address(session, mac = self.ipam_driver.allocate_mac_address(session,
net_id, net_id,
port_id, port_id,
context.tenant_id, context.tenant_id,
self.ipam_reuse_after) self.ipam_reuse_after)
backend_port = self.net_driver.create_port(context, net_id, backend_port = self.net_driver.create_port(context, net_id,
port_id=port_id) port_id=port_id)
new_port = models.Port() new_port = models.Port()
new_port.update(port["port"]) new_port.update(port["port"])
new_port["id"] = port_id new_port["id"] = port_id
@@ -504,7 +501,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
session.add(new_port) session.add(new_port)
new_port["mac_address"] = str(netaddr.EUI(new_port["mac_address"], new_port["mac_address"] = str(netaddr.EUI(new_port["mac_address"],
dialect=netaddr.mac_unix)) dialect=netaddr.mac_unix))
LOG.debug("Port created %s" % new_port) LOG.debug("Port created %s" % new_port)
return self._make_port_dict(new_port) return self._make_port_dict(new_port)
@@ -531,10 +528,10 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
will be returned. will be returned.
""" """
LOG.info("get_port %s for tenant %s fields %s" % LOG.info("get_port %s for tenant %s fields %s" %
(id, context.tenant_id, fields)) (id, context.tenant_id, fields))
results = context.session.query(models.Port, models.IPAddress).\ results = context.session.query(models.Port, models.IPAddress).\
outerjoin(models.IPAddress).\ outerjoin(models.IPAddress).\
filter(models.Port.id == id).all() filter(models.Port.id == id).all()
if not results: if not results:
raise exceptions.PortNotFound(port_id=id, net_id='') raise exceptions.PortNotFound(port_id=id, net_id='')
port = {} port = {}
@@ -548,31 +545,31 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
def _ports_query(self, context, filters, query, fields=None): def _ports_query(self, context, filters, query, fields=None):
if filters.get("id"): if filters.get("id"):
query = query.filter( query = query.filter(
models.Port.id.in_(filters["id"])) models.Port.id.in_(filters["id"]))
if filters.get("name"): if filters.get("name"):
query = query.filter( query = query.filter(
models.Port.id.in_(filters["name"])) models.Port.id.in_(filters["name"]))
if filters.get("network_id"): if filters.get("network_id"):
query = query.filter( query = query.filter(
models.Port.network_id.in_(filters["network_id"])) models.Port.network_id.in_(filters["network_id"]))
if filters.get("device_id"): if filters.get("device_id"):
query = query.filter(models.Port.device_id.in_( query = query.filter(models.Port.device_id.in_(
filters["device_id"])) filters["device_id"]))
if filters.get("mac_address"): if filters.get("mac_address"):
query = query.filter( query = query.filter(
models.Port.mac_address.in_(filters["mac_address"])) models.Port.mac_address.in_(filters["mac_address"]))
if filters.get("tenant_id"): if filters.get("tenant_id"):
query = query.filter( query = query.filter(
models.Port.tenant_id.in_(filters["tenant_id"])) models.Port.tenant_id.in_(filters["tenant_id"]))
if filters.get("tenant_id"): if filters.get("tenant_id"):
query = query.filter( query = query.filter(
models.Port.tenant_id.in_(filters["tenant_id"])) models.Port.tenant_id.in_(filters["tenant_id"]))
return query return query
@@ -595,9 +592,9 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
will be returned. will be returned.
""" """
LOG.info("get_ports for tenant %s filters %s fields %s" % LOG.info("get_ports for tenant %s filters %s fields %s" %
(context.tenant_id, filters, fields)) (context.tenant_id, filters, fields))
query = context.session.query(models.Port, models.IPAddress).\ query = context.session.query(models.Port, models.IPAddress).\
outerjoin(models.IPAddress) outerjoin(models.IPAddress)
query = self._ports_query(context, filters, fields=fields, query=query) query = self._ports_query(context, filters, fields=fields, query=query)
return self._make_ports_list(query, fields) return self._make_ports_list(query, fields)
@@ -619,7 +616,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
defined plugin API. defined plugin API.
""" """
LOG.info("get_ports_count for tenant %s filters %s" % LOG.info("get_ports_count for tenant %s filters %s" %
(context.tenant_id, filters)) (context.tenant_id, filters))
query = context.session.query(sql_func.count(models.Port.id)) query = context.session.query(sql_func.count(models.Port.id))
return self._ports_query(context, filters, query=query).scalar() return self._ports_query(context, filters, query=query).scalar()
@@ -630,21 +627,21 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
: param id: UUID representing the port to delete. : param id: UUID representing the port to delete.
""" """
LOG.info("delete_port %s for tenant %s" % LOG.info("delete_port %s for tenant %s" %
(id, context.tenant_id)) (id, context.tenant_id))
session = context.session session = context.session
with session.begin(): with session.begin():
port = session.query(models.Port).\ port = session.query(models.Port).\
filter(models.Port.id == id).\ filter(models.Port.id == id).\
filter(models.Port.tenant_id == context.tenant_id).\ filter(models.Port.tenant_id == context.tenant_id).\
first() first()
if not port: if not port:
raise exceptions.NetworkNotFound(net_id=id) raise exceptions.NetworkNotFound(net_id=id)
backend_key = port["backend_key"] backend_key = port["backend_key"]
self.ipam_driver.deallocate_mac_address(session, self.ipam_driver.deallocate_mac_address(session,
port["mac_address"],) port["mac_address"])
self.ipam_driver.deallocate_ip_address(session, id, self.ipam_driver.deallocate_ip_address(
ipam_reuse_after=self.ipam_reuse_after) session, id, ipam_reuse_after=self.ipam_reuse_after)
session.delete(port) session.delete(port)
self.net_driver.delete_port(context, backend_key) self.net_driver.delete_port(context, backend_key)
@@ -657,7 +654,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
LOG.info("create_mac_address_range for tenant %s" % context.tenant_id) LOG.info("create_mac_address_range for tenant %s" % context.tenant_id)
new_range = models.MacAddressRange() new_range = models.MacAddressRange()
cidr = mac_range["mac_address_range"]["cidr"] cidr = mac_range["mac_address_range"]["cidr"]
cidr, first_address, last_address = self._to_mac(cidr) cidr, first_address, last_address = self.bto_mac_range(cidr)
new_range["cidr"] = cidr new_range["cidr"] = cidr
new_range["first_address"] = first_address new_range["first_address"] = first_address
new_range["last_address"] = last_address new_range["last_address"] = last_address
@@ -666,7 +663,7 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
context.session.flush() context.session.flush()
return self._make_mac_range_dict(new_range) return self._make_mac_range_dict(new_range)
def _to_mac(self, val): def _to_mac_range(self, val):
cidr_parts = val.split("/") cidr_parts = val.split("/")
prefix = cidr_parts[0] prefix = cidr_parts[0]
prefix = prefix.replace(':', '') prefix = prefix.replace(':', '')
@@ -689,9 +686,9 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
def get_route(self, context, id): def get_route(self, context, id):
LOG.info("get_route %s for tenant %s" % (id, context.tenant_id)) LOG.info("get_route %s for tenant %s" % (id, context.tenant_id))
route = context.session.query(models.Route).\ route = context.session.query(models.Route).\
filter(models.Route.tenant_id == context.tenant_id).\ filter(models.Route.tenant_id == context.tenant_id).\
filter(models.Route.id == id).\ filter(models.Route.id == id).\
first() first()
if not route: if not route:
raise quark_exceptions.RouteNotFound(route_id=id) raise quark_exceptions.RouteNotFound(route_id=id)
return self._make_route_dict(route) return self._make_route_dict(route)
@@ -699,8 +696,8 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
def get_routes(self, context): def get_routes(self, context):
LOG.info("get_routes for tenant %s" % context.tenant_id) LOG.info("get_routes for tenant %s" % context.tenant_id)
routes = context.session.query(models.Route).\ routes = context.session.query(models.Route).\
filter(models.Route.tenant_id == context.tenant_id).\ filter(models.Route.tenant_id == context.tenant_id).\
all() all()
return [self._make_route_dict(r) for r in routes] return [self._make_route_dict(r) for r in routes]
def create_route(self, context, route): def create_route(self, context, route):
@@ -708,9 +705,9 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
route = route["route"] route = route["route"]
subnet_id = route["subnet_id"] subnet_id = route["subnet_id"]
subnet = context.session.query(models.Subnet).\ subnet = context.session.query(models.Subnet).\
filter(models.Subnet.id == subnet_id).\ filter(models.Subnet.id == subnet_id).\
filter(models.Subnet.tenant_id == context.tenant_id).\ filter(models.Subnet.tenant_id == context.tenant_id).\
first() first()
if not subnet: if not subnet:
raise exceptions.SubnetNotFound(subnet_id=subnet_id) raise exceptions.SubnetNotFound(subnet_id=subnet_id)
@@ -727,9 +724,9 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
# for all the above later # for all the above later
LOG.info("delete_route %s for tenant %s" % (id, context.tenant_id)) LOG.info("delete_route %s for tenant %s" % (id, context.tenant_id))
route = context.session.query(models.Route).\ route = context.session.query(models.Route).\
filter(models.Route.id == id).\ filter(models.Route.id == id).\
filter(models.Route.tenant_id == context.tenant_id).\ filter(models.Route.tenant_id == context.tenant_id).\
first() first()
if not route: if not route:
raise quark_exceptions.RouteNotFound(route_id=id) raise quark_exceptions.RouteNotFound(route_id=id)
context.session.delete(route) context.session.delete(route)
@@ -738,15 +735,15 @@ class Plugin(quantum_plugin_base_v2.QuantumPluginBaseV2):
def get_ip_addresses(self, context): def get_ip_addresses(self, context):
LOG.info("get_ip_addresses for tenant %s" % context.tenant_id) LOG.info("get_ip_addresses for tenant %s" % context.tenant_id)
addrs = context.session.query(models.IPAddress).\ addrs = context.session.query(models.IPAddress).\
filter(models.IPAddress.tenant_id == context.tenant_id).\ filter(models.IPAddress.tenant_id == context.tenant_id).\
all() all()
return [self._make_ip_dict(ip) for ip in addrs] return [self._make_ip_dict(ip) for ip in addrs]
def get_ip_address(self, context, id): def get_ip_address(self, context, id):
LOG.info("get_ip_address %s for tenant %s" % LOG.info("get_ip_address %s for tenant %s" %
(id, context.tenant_id)) (id, context.tenant_id))
addr = context.session.query(models.IPAddress).\ addr = context.session.query(models.IPAddress).\
filter(models.IPAddress.tenant_id == context.tenant_id).\ filter(models.IPAddress.tenant_id == context.tenant_id).\
filter(models.IPAddress.id == id).\ filter(models.IPAddress.id == id).\
first() first()
return self._make_ip_dict(addr) return self._make_ip_dict(addr)