Use venv_packages_to_symlink to symlink to import libvirt-python
Currently on CentOS7, while deploying nova, it gives libvirt module import error. By adding venv_packages_to_symlink in nova_source_install will symlink the packages defined in nova_compute_kvm_packages_to_symlink and fixes the issue. It removes nova_compute_kvm_install.yml to use python_venv_build role. Change-Id: I20a181c6c4901b3cc846a9f665e5def98aac5059
This commit is contained in:
parent
adf9af4998
commit
76a1b307a0
@ -54,7 +54,3 @@
|
||||
state: link
|
||||
owner: "{{ nova_qemu_user }}"
|
||||
group: "{{ nova_qemu_group }}"
|
||||
|
||||
- name: Install nova kvm packages from PIP
|
||||
include_tasks: nova_compute_kvm_install_source.yml
|
||||
when: nova_install_method == 'source'
|
||||
|
@ -1,56 +0,0 @@
|
||||
---
|
||||
# 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
|
@ -43,6 +43,7 @@
|
||||
venv_build_distro_package_list: "{{ nova_devel_distro_packages }}"
|
||||
venv_install_destination_path: "{{ nova_bin | dirname }}"
|
||||
venv_pip_install_args: "{{ nova_pip_install_args }}"
|
||||
venv_packages_to_symlink: "{{ (nova_services['nova-compute']['group'] in group_names) | ternary(nova_compute_kvm_packages_to_symlink, []) }}"
|
||||
venv_pip_packages: >-
|
||||
{{ nova_pip_packages +
|
||||
((nova_services['nova-novncproxy']['group'] in group_names) and (nova_console_type == 'novnc')) | ternary(nova_novnc_pip_packages, []) +
|
||||
|
Loading…
x
Reference in New Issue
Block a user