163 lines
6.2 KiB
Python
163 lines
6.2 KiB
Python
#
|
|
# DBus interface for the Services module.
|
|
#
|
|
# Copyright (C) 2018 Red Hat, Inc.
|
|
#
|
|
# This copyrighted material is made available to anyone wishing to use,
|
|
# modify, copy, or redistribute it subject to the terms and conditions of
|
|
# the GNU General Public License v.2, or (at your option) any later version.
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY expressed or implied, including the implied warranties 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, write to the
|
|
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
|
|
# source code or documentation are not subject to the GNU General Public
|
|
# License and may only be used or replicated with the express permission of
|
|
# Red Hat, Inc.
|
|
#
|
|
from dasbus.server.property import emits_properties_changed
|
|
from dasbus.typing import * # pylint: disable=wildcard-import
|
|
from dasbus.server.interface import dbus_interface
|
|
from pyanaconda.modules.common.base import KickstartModuleInterface
|
|
from pyanaconda.modules.common.constants.services import SERVICES
|
|
from pyanaconda.modules.services.constants import SetupOnBootAction
|
|
|
|
|
|
@dbus_interface(SERVICES.interface_name)
|
|
class ServicesInterface(KickstartModuleInterface):
|
|
"""DBus interface for Services module."""
|
|
|
|
def connect_signals(self):
|
|
"""Connect signals to the implementation."""
|
|
super().connect_signals()
|
|
self.watch_property("EnabledServices", self.implementation.enabled_services_changed)
|
|
self.watch_property("DisabledServices", self.implementation.disabled_services_changed)
|
|
self.watch_property("DefaultTarget", self.implementation.default_target_changed)
|
|
self.watch_property("DefaultDesktop", self.implementation.default_desktop_changed)
|
|
self.watch_property("SetupOnBoot", self.implementation.setup_on_boot_changed)
|
|
self.watch_property("PostInstallToolsEnabled",
|
|
self.implementation.post_install_tools_enabled_changed)
|
|
|
|
@property
|
|
def DisabledServices(self) -> List[Str]:
|
|
"""List of disabled services."""
|
|
return self.implementation.disabled_services
|
|
|
|
@DisabledServices.setter
|
|
@emits_properties_changed
|
|
def DisabledServices(self, services: List[Str]):
|
|
"""Set the disabled services.
|
|
|
|
Modifies the default set of services that will run under the default runlevel.
|
|
The services listed in the disabled list will be disabled before the services
|
|
listed in the enabled list are enabled.
|
|
|
|
:param services: a list of service names.
|
|
"""
|
|
self.implementation.set_disabled_services(services)
|
|
|
|
@property
|
|
def EnabledServices(self) -> List[Str]:
|
|
"""List of enabled services."""
|
|
return self.implementation.enabled_services
|
|
|
|
@EnabledServices.setter
|
|
@emits_properties_changed
|
|
def EnabledServices(self, services: List[Str]):
|
|
"""Set the enabled services.
|
|
|
|
Modifies the default set of services that will run under the default runlevel.
|
|
The services listed in the disabled list will be disabled before the services
|
|
listed in the enabled list are enabled.
|
|
|
|
:param services: a list of service names
|
|
"""
|
|
self.implementation.set_enabled_services(services)
|
|
|
|
@property
|
|
def DefaultTarget(self) -> Str:
|
|
"""Default target of the installed system."""
|
|
return self.implementation.default_target
|
|
|
|
@DefaultTarget.setter
|
|
@emits_properties_changed
|
|
def DefaultTarget(self, target: Str):
|
|
"""Set the default target of the installed system.
|
|
|
|
Supported values are:
|
|
multi-user.target
|
|
graphical.target
|
|
|
|
:param target: a string with the target
|
|
"""
|
|
self.implementation.set_default_target(target)
|
|
|
|
@property
|
|
def DefaultDesktop(self) -> Str:
|
|
"""Default desktop of the installed system."""
|
|
return self.implementation.default_desktop
|
|
|
|
@DefaultDesktop.setter
|
|
@emits_properties_changed
|
|
def DefaultDesktop(self, desktop: Str):
|
|
"""Set the default desktop of the installed system.
|
|
|
|
Supported values are:
|
|
GNOME
|
|
KDE
|
|
|
|
:param desktop: a string with the desktop
|
|
"""
|
|
self.implementation.set_default_desktop(desktop)
|
|
|
|
@property
|
|
def SetupOnBoot(self) -> Int:
|
|
"""Set up the installed system on the first boot."""
|
|
return self.implementation.setup_on_boot.value
|
|
|
|
@SetupOnBoot.setter
|
|
@emits_properties_changed
|
|
def SetupOnBoot(self, value: Int):
|
|
"""Set up the installed system on the first boot.
|
|
|
|
Determine whether the Setup Agent starts the first
|
|
time the system is booted.
|
|
|
|
Allowed values:
|
|
-1 Default.
|
|
0 Disable.
|
|
1 Enable.
|
|
2 Enable in the reconfiguration mode.
|
|
|
|
:param value: a number of the action
|
|
"""
|
|
self.implementation.set_setup_on_boot(SetupOnBootAction(value))
|
|
|
|
@property
|
|
def PostInstallToolsEnabled(self) -> Bool:
|
|
"""Disable post installation setup tools.
|
|
|
|
This option tells post installation tools
|
|
if they should start after the installation.
|
|
|
|
:return: True to start post install tools, False otherwise
|
|
:rtype: bool
|
|
"""
|
|
return self.implementation.post_install_tools_enabled
|
|
|
|
@PostInstallToolsEnabled.setter
|
|
@emits_properties_changed
|
|
def PostInstallToolsEnabled(self, post_install_tools_enabled: Bool):
|
|
"""Set if post installation tools should be disabled.
|
|
|
|
Setting this value to False will result in the post_install_tools_disabled
|
|
key being written to the user interaction config file with the value of 1.
|
|
|
|
Setting this value to True (the default value) will not result in the
|
|
post_install_tools_disabled key being written into th user interaction config file.
|
|
|
|
:param post_install_tools_enabled: set to False to disable post installation tools
|
|
"""
|
|
self.implementation.set_post_install_tools_enabled(post_install_tools_enabled)
|