[sonic-host-services]: Fix import and invalid path (#10660)
Why I did it Can not start sonic-hostservice How I did it Install python3-dbus and systemd-python, and replace invalid path How to verify it Start the service with below commands: sudo systemctl start sonic-hostservice sudo systemctl status sonic-hostservice Signed-off-by: Gang Lv ganglv@microsoft.com
This commit is contained in:
parent
a06f5493b2
commit
9d7387a18e
@ -233,7 +233,10 @@ sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/
|
|||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install libcairo2-dev libdbus-1-dev libgirepository1.0-dev libsystemd-dev pkg-config
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install libcairo2-dev libdbus-1-dev libgirepository1.0-dev libsystemd-dev pkg-config
|
||||||
|
|
||||||
# Mark runtime dependencies as manually installed to avoid them being auto-removed while uninstalling build dependencies
|
# Mark runtime dependencies as manually installed to avoid them being auto-removed while uninstalling build dependencies
|
||||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-mark manual gir1.2-glib-2.0 libdbus-1-3 libgirepository-1.0-1 libsystemd0
|
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-mark manual gir1.2-glib-2.0 libdbus-1-3 libgirepository-1.0-1 libsystemd0 python3-dbus
|
||||||
|
|
||||||
|
# Install systemd-python for SONiC host services
|
||||||
|
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install systemd-python
|
||||||
|
|
||||||
# Install SONiC host services package
|
# Install SONiC host services package
|
||||||
SONIC_HOST_SERVICES_PY3_WHEEL_NAME=$(basename {{sonic_host_services_py3_wheel_path}})
|
SONIC_HOST_SERVICES_PY3_WHEEL_NAME=$(basename {{sonic_host_services_py3_wheel_path}})
|
||||||
|
@ -13,9 +13,16 @@ import dbus.mainloop.glib
|
|||||||
|
|
||||||
from gi.repository import GObject
|
from gi.repository import GObject
|
||||||
|
|
||||||
def register_modules():
|
def find_module_path():
|
||||||
|
"""Find path for host_moduels"""
|
||||||
|
try:
|
||||||
|
from host_modules import host_service
|
||||||
|
return os.path.dirname(host_service.__file__)
|
||||||
|
except ImportError as e:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def register_modules(mod_path):
|
||||||
"""Register all host modules"""
|
"""Register all host modules"""
|
||||||
mod_path = '/usr/local/lib/python3.7/dist-packages/host_modules'
|
|
||||||
sys.path.append(mod_path)
|
sys.path.append(mod_path)
|
||||||
for mod_file in glob.glob(os.path.join(mod_path, '*.py')):
|
for mod_file in glob.glob(os.path.join(mod_path, '*.py')):
|
||||||
if os.path.isfile(mod_file) and not mod_file.endswith('__init__.py'):
|
if os.path.isfile(mod_file) and not mod_file.endswith('__init__.py'):
|
||||||
@ -62,7 +69,9 @@ class SignalManager(object):
|
|||||||
loop.quit()
|
loop.quit()
|
||||||
|
|
||||||
sigmgr = SignalManager()
|
sigmgr = SignalManager()
|
||||||
register_modules()
|
mod_path = find_module_path()
|
||||||
|
if mod_path is not None:
|
||||||
|
register_modules(mod_path)
|
||||||
|
|
||||||
# Only run if we actually have some handlers
|
# Only run if we actually have some handlers
|
||||||
if handlers:
|
if handlers:
|
||||||
|
@ -24,6 +24,7 @@ setup(
|
|||||||
],
|
],
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dbus-python',
|
'dbus-python',
|
||||||
|
'systemd-python',
|
||||||
'Jinja2>=2.10',
|
'Jinja2>=2.10',
|
||||||
'PyGObject',
|
'PyGObject',
|
||||||
'sonic-py-common'
|
'sonic-py-common'
|
||||||
|
Loading…
Reference in New Issue
Block a user