Having the db migration scripts within the openstack-placement pypi
distribution is desirable for deployment tools, such as
openstack-ansible. It provides a known good location for the script,
available with a pip install.
There are several ways to distribute files with a python package. The
method used here was chosen because it works both with tarballs and
wheels (the files are already in the tarball, as a result of the way pbr
works, but not in the wheel).
Here's what's done:
* The db migrate scripts are put in their own direcory,
placement_db_tools, so that only they are packaged, not the other
tools.
* To preserve how grenade interacts with these files as well as not
disrupt the docs, symlinks from tools to placement_db_tools have been
created.
* placement_db_tools is added to the list of packages included in the
openstack-placement distro. This means that when 'pip install
openstack-placement' happens, the python environment will then include
placement and placement_db_tools directories.
The end result is that the true path to the script can be found with:
pkg_resources.resource_filename('placement_db_tools', 'mysql-migrate-db.sh')
This has been noted in the to-stein.rst document.
A different package was chosen to not muddy the waters of what is
"actually placement".
Similarly, the 'data_files' functionality provided by pbr was not used,
because that requires the file be written to a location on the local
filesystem, relative to the install prefix. Dirtying the filesystem
outside the python lib with this sort of thing is inappropriate.
Change-Id: Ie326ce8a2a0692d20793bc18be606e034fa94a44
Story: 2005535
Task: 30671