c62ed6ccba
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
22 lines
956 B
Python
22 lines
956 B
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
"""
|
|
This package provides a way to distribute useful database management tools as
|
|
part of the Python package of the placement service: openstack-placement.
|
|
|
|
Their filenames may be discovered using ``pkg_resources`` to look in the
|
|
``placement_db_tools`` package:
|
|
|
|
pkg_resources.resource_filename('placement_db_tools',
|
|
'mysql-migrate-db.sh')
|
|
"""
|