--- # Copyright 2018, SUSE Linux GmbH # # 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. # Note (odyssey4me): # These python libraries have C bindings which tend to be very # particular about the version of their companion packages. # To ensure things run smoothly for stable releases, we opt to # use the distro packages for these and symlink the appropriate # library files and binding into the venv. - name: Find the venv's python version find: paths: "{{ nova_bin | dirname }}/lib/" patterns: "python*" file_type: directory recurse: no register: python_venv_details - name: Set python venvs details set_fact: venv_python_version: "{{ (python_venv_details.files[0].path | basename) }}" venv_python_major_version: "{{ (python_venv_details.files[0].path | basename)[:-2] }}" venv_python_lib_folder: "{{ python_venv_details.files[0].path }}" - name: Search for lib files to link shell: >- {{ (ansible_pkg_mgr == 'apt') | ternary('dpkg -L ' ~ (nova_compute_kvm_packages_to_symlink | join(' ')), 'rpm -ql ' ~ (nova_compute_kvm_packages_to_symlink | join(' ')) ) }} | egrep '^.*{{ venv_python_major_version }}.*/(site|dist)-packages/.*' args: warn: no changed_when: false register: _python_files tags: - nova-pip-packages - name: Link the python host package files into venv file: src: "{{ item }}" dest: "{{ venv_python_lib_folder }}/site-packages/{{ item | basename }}" state: link force: yes with_items: "{{ _python_files.stdout_lines }}" tags: - nova-pip-packages