Hi all
Last week, I sent a mail listed issues I met during upgrading nfv to support python3 task. With further investigating, here is my solution of the issues:
1. to build python3 "fm-api" rpm, pkg “python3-rpm-generators” is required. But it is conflict with pkg “rpm-build” built in the compile layer, because both of them have file (/usr/lib/rpm/pythondistdeps.py).
// this is a general issue which will be met each time we build rpm pkg with requirement(build requirement) of python3-devel, such as python3-deamon required by logmgmt.
My workaround is: rebuild python3-rpm-generators pkg from official srpm with file (usr/lib/rpm/pythondistdeps.py) removed. Pkg “rpm-build” will be the build requirement of python3-rpm-generators
pkg to ensure file (usr/lib/rpm/pythondistdeps.py) is existed after python3-rpm-generators pkg is built.
2. as other flock services, like sysinv, are still running in python2, so it require fm-api to both run in python2 env and python3 env. It introduces a new topic: ensure it is safe
to run python2-fm-api and python3-fm-api at the same time.
// the methods
fm_api provides are thread safe. So it should be safe
to run python2-fm-api and python3-fm-api at the same time.
I’ll start to build
python3 "fm-api" rpm, then model “fm-api” will supported both in python2 and python3.
Thanks
Ran
From: An, Ran1 <ran1.an@intel.com>
Sent: Thursday, March 12, 2020 2:19 PM
To: starlingx-discuss@lists.starlingx.io; Tao Liu <tao.liu@windriver.com>; Al Bailey <al.bailey@windriver.com>; Bart Wensley <barton.wensley@windriver.com>
Cc: Sun, Austin <austin.sun@intel.com>
Subject: [Starlingx-discuss] [Python3] Analysis of nfv using python3
Hi all:
I’m working on task “upgrade project nfv to support python3 runtime env”. By analyzing and testing, there will be 32 new python3 rpms, which may impact current system.
·
16 new rpms from official centos7 repo;
·
12 new stx-rpms rebuilt with srpms from official centos7 repo (turn on python3 supported switch in spec);
·
4 stx-rpms built from tar.gz files.
Details including pkg dependency trees and current status could be found in [1]
With patches [2], we could get an iso with nfv services (vim,vim-api, vim-webserver) running in python3.
However, there is an run-time issues.
Model “fm_api” in python3 is required to support vim service reporting alarms/event_logs to fault manager (service fm-mgr). It brings following issues:
1. to build python3 "fm-api" rpm, pkg “python3-rpm-generators” is required. But it is conflict with pkg “rpm-build” built in the compile layer, because both of them have file (/usr/lib/rpm/pythondistdeps.py).
2. as other flock services, like sysinv, are still running in python2, so it require fm-api to both run in python2 env and python3 env. It introduces a new topic: ensure it is safe
to run python2-fm-api and python3-fm-api at the same time.
The scope of this task seems expand. Is there any suggestions?
[2] patches:
https://review.opendev.org/709958;
https://review.opendev.org/709960;
https://review.opendev.org/709983/1 ;
https://review.opendev.org/709980
Thanks
Ran