#!/usr/bin/env python3 # services.py - Utility functions for pvcnoded external services # Part of the Parallel Virtual Cluster (PVC) system # # Copyright (C) 2018-2021 Joshua M. Boniface # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ############################################################################### import daemon_lib.common as common from time import sleep def start_zookeeper(logger, config): if config['daemon_mode'] == 'coordinator': logger.out('Starting Zookeeper daemon', state='i') # TODO: Move our handling out of Systemd and integrate it directly as a subprocess? common.run_os_command('systemctl start zookeeper.service') def start_libvirtd(logger, config): if config['enable_hypervisor']: logger.out('Starting Libvirt daemon', state='i') # TODO: Move our handling out of Systemd and integrate it directly as a subprocess? common.run_os_command('systemctl start libvirtd.service') def start_patroni(logger, config): if config['enable_networking'] and config['daemon_mode'] == 'coordinator': logger.out('Starting Patroni daemon', state='i') # TODO: Move our handling out of Systemd and integrate it directly as a subprocess? common.run_os_command('systemctl start patroni.service') def start_frrouting(logger, config): if config['enable_networking'] and config['daemon_mode'] == 'coordinator': logger.out('Starting FRRouting daemon', state='i') # TODO: Move our handling out of Systemd and integrate it directly as a subprocess? common.run_os_command('systemctl start frr.service') def start_ceph_mon(logger, config): if config['enable_storage'] and config['daemon_mode'] == 'coordinator': logger.out('Starting Ceph Monitor daemon', state='i') # TODO: Move our handling out of Systemd and integrate it directly as a subprocess? common.run_os_command(f'systemctl start ceph-mon@{config["node_hostname"]}.service') def start_ceph_mgr(logger, config): if config['enable_storage'] and config['daemon_mode'] == 'coordinator': logger.out('Starting Ceph Manager daemon', state='i') # TODO: Move our handling out of Systemd and integrate it directly as a subprocess? common.run_os_command(f'systemctl start ceph-mgr@{config["node_hostname"]}.service') def start_system_services(logger, config): start_zookeeper(logger, config) start_libvirtd(logger, config) start_patroni(logger, config) start_frrouting(logger, config) start_ceph_mon(logger, config) start_ceph_mgr(logger, config) logger.out('Waiting 3 seconds for daemons to start', state='s') sleep(3)