340
338
fixed_ip_ref.save(session=session)
341
def fixed_ip_disassociate_all_by_timeout(_context, host, time):
342
session = get_session()
343
# NOTE(vish): The nested select is because sqlite doesn't support
345
result = session.execute('UPDATE fixed_ips SET instance_id = NULL, '
347
'WHERE network_id IN (SELECT id FROM networks '
348
'WHERE host = :host) '
349
'AND updated_at < :time '
350
'AND instance_id IS NOT NULL '
353
'time': time.isoformat()})
354
return result.rowcount
343
357
def fixed_ip_get_by_address(_context, address):
344
358
session = get_session()
345
with session.begin():
347
return session.query(models.FixedIp
348
).options(joinedload_all('instance')
349
).filter_by(address=address
350
).filter_by(deleted=False
352
except NoResultFound:
353
new_exc = exception.NotFound("No model for address %s" % address)
354
raise new_exc.__class__, new_exc, sys.exc_info()[2]
359
result = session.query(models.FixedIp
360
).options(joinedload_all('instance')
361
).filter_by(address=address
362
).filter_by(deleted=False
365
raise exception.NotFound("No model for address %s" % address)
357
369
def fixed_ip_get_instance(_context, address):