Encode object path with sdbusplus

Currently the object path of service-config-manager are encoded by
simply replacing characters, which only support a limited number of
characters (only - and @). This patch uses sdbusplus to encode the
object paths to support more charaters and make it more general for
other applications to use.

Tested:
Object paths of service-config-manager are now in the sdbusplus format
like below:
  /xyz/openbmc_project/control/service/_70hosphor_2dipmi_2dnet_40eth0
  /xyz/openbmc_project/control/service/bmcweb

Change-Id: Ia2738d555a8ba921f6ac2eb4753ba319f489dc4f
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
1 file changed
tree: 2e0be861125a9eb0ac76f9567f9f631a966f3b1f
  1. inc/
  2. src/
  3. subprojects/
  4. .clang-format
  5. .gitignore
  6. LICENSE
  7. MAINTAINERS
  8. meson.build
  9. meson_options.txt
  10. OWNERS
  11. README.md
  12. srvcfg-manager.service
README.md

Service config manager

The service config manager provides a D-Bus interface to manage BMC services as described by the service management D-Bus interfaces.

The configuration settings are intended to persist across BMC reboots.

An example use case for this service is BMCWeb's implementation of the Redfish NetworkProtocol schema.

Design

Implementation details are described in the D-Bus interface README.

The service config manager generally makes configuration changes to systemd units via D-Bus interfaces.

The design pattern to add new services or controls is:

  • Determine if the service you want to control is socket activated.
  • To control the Running and Enabled properties of a service:
    • For a service which uses socket activation, control the socket.
    • For other services, control the service unit itself.