nova/nova/db/sqlalchemy
Matt Riedemann 81f05f53d3 Add functional recreate test for bug 1764556
This attempts to recreate the following scenario:

1) boot instance on ocata host where the compute service
   does not have a uuid
2) migrate instance
3) delete the ocata service (thus deleting the compute node)
4) start compute service with the same name
5) migrate instance to newly-created compute node
6) upgrade to pike where services.uuid data migration happens
7) list instances as admin to join on the services table

The failure occurs when listing instances because the deleted
service with the same name as the compute host that the instance
is running on gets pulled from the DB and the Service object
attempts to set a uuid on it, which fails since it's not using
a read_deleted="yes" context.

While working on this, the service_get_all_by_binary DB API
method had to be fixed to not hard-code read_deleted="no" since
the test needs to be able to read deleted services, which it can
control via its own context object (note that
RequestContext.read_deleted already defaults to "no" so the
hard-coding in the DB API is unnecessarily restrictive).

Change-Id: I4d60da26fcf0a77628d1fdf4e818884614fa4f02
Related-Bug: #1764556
2019-07-30 18:48:46 +00:00
..
api_migrations Add placeholder migrations for Stein backports 2019-04-08 18:08:40 +01:00
migrate_repo db: Add vpmems to instance_extra 2019-07-09 15:36:49 +08:00
__init__.py Remove SQLite BigInteger/Integer translation logic 2015-12-07 12:49:22 -05:00
api.py Add functional recreate test for bug 1764556 2019-07-30 18:48:46 +00:00
api_models.py Drop delete_build_requests_with_no_instance_uuid online migration 2019-04-08 17:48:14 -04:00
migration.py Delete the placement code 2019-04-28 20:06:15 +00:00
models.py db: Add vpmems to instance_extra 2019-07-09 15:36:49 +08:00
types.py Use is_valid_cidr and is_valid_ipv6_cidr from oslo_utils 2017-01-31 11:45:00 +00:00
utils.py Remove translation of log messages 2017-07-18 09:03:39 +00:00