Bug 1721414
| Summary: | Adding service into permanent configuration via DBus api suddenly requires 9 values instead of 8 | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Sanne Raymaekers <sraymaek> |
| Component: | firewalld | Assignee: | Eric Garver <egarver> |
| Status: | CLOSED ERRATA | QA Contact: | Tomas Dolezal <todoleza> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | urgent | ||
| Version: | 8.1 | CC: | dcbw, mpitt, rgerardi, rkhan, todoleza, wchadwic |
| Target Milestone: | rc | Keywords: | Regression |
| Target Release: | 8.1 | Flags: | pm-rhel:
mirror+
|
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | firewalld-0.7.0-3.el8 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-11-05 22:31:34 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1660400, 1721548 | ||
(In reply to Sanne Raymaekers from comment #0) > Description of problem: > Caught by cockpit tests. > > Adding service into permanent configuration via DBus api suddenly requires 9 > values. While the documentation clearly states only 8 are required to make > up the settings structure. This is a documentation failure. The section for org.fedoraproject.FirewallD1.Methods.getServiceSettings() was updated in firewalld.dbus(5), but not org.fedoraproject.FirewallD1.config.service.Methods.getSettings(). > Version-Release number of selected component (if applicable): > 0.7.0 > > How reproducible: > A dbus call to > object path: /org/fedoraproject/FirewallD1/config > interface: org.fedoraproject.FirewallD1.config > method: addService > arguments: [service, ["", name, "", ports, [], {}, [], []]* > > *with name and ports as valid arguments > > > Actual results: > org.freedesktop.DBus.Error.InvalidArgs: Too few values in tuple/struct > > > Using [service, ["", name, "", ports, [], {}, [], [], []] as the arguments > works. Upstream added a setting to the argument list for the "service includes" feature. In the past, methods were extended in an append-only manner without changing the dbus version and bumping the minor number on an internal "interface_version". When "service includes" were added the same approach was taken. I don't think this is valid as per DBUS API guidelines (https://dbus.freedesktop.org/doc/dbus-api-design.html#api-versioning). Instead a new API should be added to get/set the service includes. Fixed upstream. The old dbus signature was restored and new APIs were added to use the new features.
91c1434de861 ("fix: firewall-offline-cmd: service: use dict based APIs")
632380e6efcd ("fix: client: service: use dict based dbus APIs")
335f23848140 ("test: dbus: coverage for new service APIs")
bbadd3943dab ("fix: dbus: new dict based APIs for services")
b0ecd9e3916a ("test: dbus: service API coverage")
5f32c24dec88 ("test: functions: add macro DBUS_INTROSPECT")
a8b90c38c197 ("test: functions: add CHOMP macro for shell output")
15346d6ff16e ("fix: tests/functions: use gdbus instead of dbus-send")
bcdc1e2bf1e7 ("fix: dbus: add missing APIs for service includes")
335a68c1bba5 ("fix: dbus: fix service API break")
*** Bug 1733277 has been marked as a duplicate of this bug. *** Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2019:3635 |
Description of problem: Caught by cockpit tests. Adding service into permanent configuration via DBus api suddenly requires 9 values. While the documentation clearly states only 8 are required to make up the settings structure. Version-Release number of selected component (if applicable): 0.7.0 How reproducible: A dbus call to object path: /org/fedoraproject/FirewallD1/config interface: org.fedoraproject.FirewallD1.config method: addService arguments: [service, ["", name, "", ports, [], {}, [], []]* *with name and ports as valid arguments Actual results: org.freedesktop.DBus.Error.InvalidArgs: Too few values in tuple/struct Using [service, ["", name, "", ports, [], {}, [], [], []] as the arguments works.