History log of /openbmc/service-config-manager/src/main.cpp (Results 1 – 25 of 25)
Revision Date Author Comments
# 23ecbb6c 17-Jun-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://githu

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://github.com/codespell-project/codespell

Change-Id: I1312ecaf815d2967f2ac52df0965303455490e25
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# d8effd63 20-Oct-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: I89ad2c8e776db7ad76d256853ebf83fc5f8fbb35
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# dfc7270a 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: I85b6e82cdf14da2fb4fa197abed9a6820c0f1e71
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# ba287d8a 01-Mar-2023 Ed Tanous <edtanous@google.com>

Change io_service to io_context

This was renamed a while back in boost to be compliant with the
std::executors proposal.

Change-Id: Ie95657cdff79b725d189ee0b36de72813248b52e
Signed-off-by: Ed Tanou

Change io_service to io_context

This was renamed a while back in boost to be compliant with the
std::executors proposal.

Change-Id: Ie95657cdff79b725d189ee0b36de72813248b52e
Signed-off-by: Ed Tanous <edtanous@google.com>

show more ...


# 2ff3728d 22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I0f252203148d6202f2b161c1c36baef0e1e49f0f

show more ...


# 4b8637db 01-Apr-2022 Jiaqing Zhao <jiaqing.zhao@intel.com>

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 @). Th

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>

show more ...


# 430d7ea5 01-Apr-2022 Jiaqing Zhao <jiaqing.zhao@intel.com>

Use unit name to distinguish USB code update service

In incoming patch, the object path of services will be encoded by
sdbusplus, using object path to distinguish the dummy USB code update
service i

Use unit name to distinguish USB code update service

In incoming patch, the object path of services will be encoded by
sdbusplus, using object path to distinguish the dummy USB code update
service is no longer suitable. This patch uses the unit name instead.

Tested:
Verified modifying the property of USB code update service will use
these special handlers as before. Other services are not affected.

Change-Id: I9d14ae57ca3f5a68744011e18e3ae45905edcacf
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>

show more ...


# ef5ceced 09-Dec-2021 Jiaqing Zhao <jiaqing.zhao@intel.com>

Add obmc-console-ssh (SOL over SSH) support

This patch adds obmc-console-ssh service support. Like dropbear, it is
also a socket-activated service.

Tested:
1. Changing obmc-console-ssh service stat

Add obmc-console-ssh (SOL over SSH) support

This patch adds obmc-console-ssh service support. Like dropbear, it is
also a socket-activated service.

Tested:
1. Changing obmc-console-ssh service status and its port number works.
2. When disabling obmc-console-ssh, all active SOL SSH connections will
be terminated in a few seconds.
3. All operations on obmc-console-ssh service will not affect dropbear
service, and vice versa.

Change-Id: Ibf56967236a08cb34535c175e0dc5eea7fc4c84c
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>

show more ...


# f476683c 28-Feb-2022 Jiaqing Zhao <jiaqing.zhao@intel.com>

Improve socket-activated service handling

This patch provides a more generic way of handling socket-activated
services like dropbear. A socket-activated service only has base socket
unit and spawns

Improve socket-activated service handling

This patch provides a more generic way of handling socket-activated
services like dropbear. A socket-activated service only has base socket
unit and spawns service unit with instance name on incoming connection,
so the instanced units of it need to be ignored. And whether a service
is socket-activated can be determined by checking the existance of its
service object path.

Tested:
* Two socket-activated service, dropbear and obmc-console-ssh, can be
controlled as expected.
* Instances of socket-activated services are no loger added to monitor
list.

Change-Id: If8faa2248e5794a410f804125410608aa69b858d
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>

show more ...


# d2a99a4d 25-Feb-2022 Jiaqing Zhao <jiaqing.zhao@intel.com>

Ignore non-existent units

In systemd, if a non-existent unit is referenced by other unit, it will
be listed in ListUnits response. This commit ignores these non-existent
entries to prevent performin

Ignore non-existent units

In systemd, if a non-existent unit is referenced by other unit, it will
be listed in ListUnits response. This commit ignores these non-existent
entries to prevent performing operations on them.

Tested:
In dropbear.socket, there is a Conflicts=dropbear.service which creates
a non-existent service entry. With this commit, it will not be added to
the service object path in /etc/srvcfg-mgr.json.

Change-Id: I2ce360ea3a0b10f527672d1601ae4d6234c1a9aa
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>

show more ...


# aa41e674 14-Dec-2021 Jiaqing Zhao <jiaqing.zhao@intel.com>

Support reading socket-only systemd unit info

Current code will only read unit info like unit name and instance name
from service unit. For socket-only unit, these fields are blank. This
patch adds

Support reading socket-only systemd unit info

Current code will only read unit info like unit name and instance name
from service unit. For socket-only unit, these fields are blank. This
patch adds support to read these fields from socket units.

Tested:
1. Existing entries in generated srvcfg-mgr.json is the same as before
2. Unit and instance name of socket-only units can be successfully read

Change-Id: Ibb4d75231f1767f2164d95294e126dd649d466f0
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>

show more ...


# 25a0f634 11-Nov-2021 Chicago Duan <duanzhijia01@inspur.com>

ADD USB Code Update enable/disable

phosphor_usb_code_update is an application that use USB to do FW
update. phosphor_usb_code_update service is not a daemon, but an app
that will be called after ins

ADD USB Code Update enable/disable

phosphor_usb_code_update is an application that use USB to do FW
update. phosphor_usb_code_update service is not a daemon, but an app
that will be called after inserting a USB flash disk.

This commit creates an object of phosphor_usb_code_update when
phosphor_usb_code_update is not started. We can enable/disable
phosphor_usb_code_update by setting the "Enabled" property to
true/false.

Please configure the “usb-code-update” option in your bb/bbappend to
enable this feature.

For phosphor_usb_code_update, useful rules files is
/lib/udev/rules.d/70-bmc-usb.rules. When usb code update is disabled,
srvcfg_manager creates an empty symlink
/etc/udev/rules.d/70-bmc-usb.rules, which causes
/lib/udev/rules.d/70-bmc-usb.rules inoperative. When usb code update is
enabled, srvcfg_manager deletes /etc/udev/rules.d/70-bmc-usb.rules.

The commits of phosphor_usb_code_update is:
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-bmc-code-mgmt/+/48742/1

Test:
get "Enabled" property:
busctl get-property xyz.openbmc_project.Control.Service.Manager
/xyz/openbmc_project/control/service/phosphor_2dusb_2dcode_2dupdate
xyz.openbmc_project.Control.Service.Attributes Enabled
b true

set "Enabled" property to false:
busctl set-property xyz.openbmc_project.Control.Service.Manager
/xyz/openbmc_project/control/service/phosphor_2dusb_2dcode_2dupdate
xyz.openbmc_project.Control.Service.Attributes Enabled b false

busctl get-property xyz.openbmc_project.Control.Service.Manager
/xyz/openbmc_project/control/service/phosphor_2dusb_2dcode_2dupdate
xyz.openbmc_project.Control.Service.Attributes Enabled
b false

The "Enabled" property will be persisted,reboot the BMC, then get the
"Enabled" property:
busctl get-property xyz.openbmc_project.Control.Service.Manager
/xyz/openbmc_project/control/service/phosphor_2dusb_2dcode_2dupdate
xyz.openbmc_project.Control.Service.Attributes Enabled
b false

Signed-off-by: Chicago Duan <duanzhijia01@inspur.com>
Change-Id: Iba7ffb541628d563e2c54c3e1c8c4dbe85f1507b

show more ...


# f2744893 05-Jan-2022 George Liu <liuxiwei@inspur.com>

Fix loading json file causing coredump

If the json file is damaged, when the process is running and
deserializing, a coredump will occur and a cereal::RapidJSONException
will be thrown.

Error messa

Fix loading json file causing coredump

If the json file is damaged, when the process is running and
deserializing, a coredump will occur and a cereal::RapidJSONException
will be thrown.

Error message:
```
terminate called after throwing an instance of'cereal::RapidJSONException'
what(): rapidjson internal assertion failure: IsObject()
```

Add try-catch to catch the exception, and when the exception occurs,
we need to re-serialize the json file and record the log.

Tested: Use broken json file and restart the process

hosphor-srvcfg-manager[753]: Failed to load json file, need to rewrite,
ERROR = rapidjson internal assertion failure: IsObject(),
file path = /etc/srvcfg-mgr.json

Also, we can seen a bad json file in `/tmp`, like this:
/tmp/srvcfg-mgr.json.bad

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I996e9e32f87c25d584a3b5912334d1a137b55b6c

show more ...


# cb267c8f 05-Jan-2022 George Liu <liuxiwei@inspur.com>

logging: switch to lg2

After switching to C++20, it is recommended to use `phosphor::lg2`
to format log, and the correct `CODE_LINE` and `CODE_FUNC` values
can be used in log tracking.

Tested: buil

logging: switch to lg2

After switching to C++20, it is recommended to use `phosphor::lg2`
to format log, and the correct `CODE_LINE` and `CODE_FUNC` values
can be used in log tracking.

Tested: built phosphor-srvcfg-manager successfully and Unit Test
passes.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ib676a0d8082b0e3e72b51bd5115bf5b05599e6ec

show more ...


# a19b5093 24-May-2021 George Liu <liuxiwei@inspur.com>

Allow disabling SSH

The intent behind this commit is to add the dropbear service, monitor
the Enabled and Running properties, and then update the
dropbear.socket to allow disabling/enabling SSH.

Te

Allow disabling SSH

The intent behind this commit is to add the dropbear service, monitor
the Enabled and Running properties, and then update the
dropbear.socket to allow disabling/enabling SSH.

Tested:
1.
busctl introspect xyz.openbmc_project.Control.Service.Manager /xyz/openbmc_project/control/service/dropbear
xyz.openbmc_project.Control.Service.Attributes interface
.Enabled property b false emits-change writable
.Masked property b false emits-change writable
.Running property b true emits-change writable

Open a new SSH connection:
sudo ssh username@<IP>
Successfully connected

2.
busctl set-property xyz.openbmc_project.Control.Service.Manager /xyz/openbmc_project/control/service/dropbear xyz.openbmc_project.Control.Service.Attributes Running b false

busctl introspect xyz.openbmc_project.Control.Service.Manager /xyz/openbmc_project/control/service/dropbear
xyz.openbmc_project.Control.Service.Attributes interface
.Enabled property b false emits-change writable
.Masked property b false emits-change writable
.Running property b false emits-change writable

Open a new SSH connection:
sudo ssh username@<IP>
ssh: connect to host <IP> port 22: Connection refused

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I5d004f7f49c25fc90b93dabd124fe0d3d93ca822

show more ...


# 1f3813f8 27-Jul-2020 Tom Joseph <tomjoseph@in.ibm.com>

add_manager adds the ObjectManager interface

add_manager adds the interface org.freedesktop.DBus.ObjectManager
in the object path /xyz/openbmc_project/control/service.

srcCfgMgrIntf had / in the in

add_manager adds the ObjectManager interface

add_manager adds the interface org.freedesktop.DBus.ObjectManager
in the object path /xyz/openbmc_project/control/service.

srcCfgMgrIntf had / in the interface name and phosphor-srvcfg-manager
terminates with "Invalid path or interface"

Tested:

1) Verified phosphor-srvcfg-manager is not terminating
2) Verified org.freedesktop.DBus.ObjectManager interface is implemented
by /xyz/openbmc_project/control/service.

Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Change-Id: I3f0286b4bc36929b15e6e915200d381034bf8663

show more ...


# ba2c083e 15-Jul-2020 Vernon Mauery <vernon.mauery@linux.intel.com>

Change files to use standard unix file endings

CRLF line endings are non-standard for this project. Change them to use
the standard unix LF ending.

Tested: `git show -w` shows no difference

Change

Change files to use standard unix file endings

CRLF line endings are non-standard for this project. Change them to use
the standard unix LF ending.

Tested: `git show -w` shows no difference

Change-Id: I353adcd2054c48a040b4e3a09bc46913cb6422fa
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>

show more ...


# 130b6bbb 15-Jul-2020 Vernon Mauery <vernon.mauery@linux.intel.com>

Use a valid D-Bus interface name

D-Bus interfaces require a dotted name with at least two parts, with the
recommended name reverse FQDN style. Without this change, the service
config manager was con

Use a valid D-Bus interface name

D-Bus interfaces require a dotted name with at least two parts, with the
recommended name reverse FQDN style. Without this change, the service
config manager was constantly aborting because of the invalid name (with
the latest sdbusplus changes)

Tested: The service config manager is back up and running and can
interact with other entities on the bus.

Change-Id: I4d3683548d61c71f7a56b86d65b7e48a50f91e4d
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>

show more ...


# 1a885d98 10-Jul-2020 Tom Joseph <tomjoseph@in.ibm.com>

Remove adding an empty interface

```
terminate called after throwing an instance of 'sdbusplus::exception::SdBusError'
what(): sd_bus_add_object_vtable: org.freedesktop.DBus.Error.InvalidArgs:
Inva

Remove adding an empty interface

```
terminate called after throwing an instance of 'sdbusplus::exception::SdBusError'
what(): sd_bus_add_object_vtable: org.freedesktop.DBus.Error.InvalidArgs:
Invalid argument
```
phosphor-srvcfg-manager is throwing the above exception and coredumping.
Adding an empty interface will throw an exception after the below change in
sdbusplus.

https://github.com/openbmc/sdbusplus/commit/017a19da5f67a74daedf4d63111569902d4764e6
https://github.com/openbmc/sdbusplus/commit/fb0366b5c15d196c62498b8c3c35c5231c372262

Tested:

1) Patched witherspoon-tacoma and phosphor-srvcfg-manager did not coredump.
2) ObjectManager interface is implemented by /xyz/openbmc_project/control/service.
3) Disabled and enabled net-ipmi successfully.

Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Change-Id: I5e66f0244c07345b5caea5f94578bf0592b4a91a

show more ...


# 82e9557e 07-May-2020 Tom Joseph <tomjoseph@in.ibm.com>

Add support for building with meson

Follow the OpenBMC herd and support a modern, comprehensible build framework.

To build with meson:
meson build
ninja -C build

The OpenBMC CI scripts look

Add support for building with meson

Follow the OpenBMC herd and support a modern, comprehensible build framework.

To build with meson:
meson build
ninja -C build

The OpenBMC CI scripts look for meson.build before looking for CMakelists so
approval of this patch would change the build system during CI to meson.

Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Change-Id: I23d023d8db8048579926231841f497366ab3d516

show more ...


# ee853eb2 28-May-2020 AppaRao Puli <apparao.puli@linux.intel.com>

update to latest clang-format-10

Update the .clang-format and run the
latest clang-format-10 on existing source.

Tested:
It builds fine locally.

Signed-off-by: AppaRao Puli <apparao.puli@linux.int

update to latest clang-format-10

Update the .clang-format and run the
latest clang-format-10 on existing source.

Tested:
It builds fine locally.

Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
Change-Id: I903b94b8334af2b50ec2c9b929c1e028901df20e

show more ...


# 33816cf9 14-Jun-2019 Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

srvcfg-mgr: Use poll method to trigger init

Latest up-stream sync causes issue, due to which unable to receive
StartupFinished signal from systemd1. Hence triggering the poll
method too, so service

srvcfg-mgr: Use poll method to trigger init

Latest up-stream sync causes issue, due to which unable to receive
StartupFinished signal from systemd1. Hence triggering the poll
method too, so service will be able to init, once all units are
loaded by systemd1

Tested:
1. Verified objects are exposed during boot-up and working
as expected

Change-Id: I0757faf50f8d8915d4641d1dbd6e13f85420a913
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

show more ...


# 90f2da3f 22-May-2019 Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

srvcfg: Updated for dynamic service/socket mgmt

Fixed srvcfg crash manager issue, by doing the service &
socket unit file queries dynamically and exposing the objects
to be controlled. This takes ca

srvcfg: Updated for dynamic service/socket mgmt

Fixed srvcfg crash manager issue, by doing the service &
socket unit file queries dynamically and exposing the objects
to be controlled. This takes care of instanced service &
socket files like phosphor-ipmi-net@eth0 or
phosphor-ipmi-net@eth1 dynamically.

Tested:
1. Verified as per the base service name, all the instanced
service & socket names are dynamically queried and exposed
2. Made sure to list the disabled services thorugh this method
3. Made sure new services listed after fw-update are also
exposed as objects
4. Verfied phosphor-ipmi-net@eth0 port change using ipmitool
-p <newport> option
5. Verified permanent disable of the unit.
6. Verified run time enable / disable of the service.
7. Verified phosphor-ipmi-kcs service permanent & run time
enable / disable

Change-Id: Ib933a2fbff73eae4348a5940d350ae7972db03fb
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

show more ...


# 4ae87cdb 28-Jan-2019 Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

Fix: srvcfg-manager - ObjectManager base path

Create ObjectManager under root base path for srvcfg
/xyz/openbmc_project/control/service, so that
dynamic detection of service name can be performed un

Fix: srvcfg-manager - ObjectManager base path

Create ObjectManager under root base path for srvcfg
/xyz/openbmc_project/control/service, so that
dynamic detection of service name can be performed under
the above path with org.freedesktop.DBus.ObjectManager
interface

Unit-Test:
1. Verified that service executes fine after this change
2. Verified the detection of service name using GetObject
from ObjectMapper

Tested-by:
1. Verified the bmccontrolsevice ipmi command to initiate
the https disable

Change-Id: Id46f5bb348039bdeb69ece079ffeec45e88011cc
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

show more ...


# 0084047d 03-Oct-2018 AppaRao Puli <apparao.puli@linux.intel.com>

Config service manager implementation.

Added new service for managing the service(RMCP+, ssh, web)
properties like state, port, channel etc. This is common
service supports both systemctl and iptabl

Config service manager implementation.

Added new service for managing the service(RMCP+, ssh, web)
properties like state, port, channel etc. This is common
service supports both systemctl and iptables.

Example usage: Blocking specific service port and restricting
network traffic on specific channels etc.

Unit Test:
- Changed port of RMCP+ service and validated.
- Restricted network traffic on specific channel(eth0)
and cross validated functionality.

Change-Id: I835a4723bc5d5a65efb6ec329f74f3932e841522
Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>

show more ...