Bug 1127706 - Unify runtime and permanent D-Bus API
Summary: Unify runtime and permanent D-Bus API
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: firewalld
Version: 7.1
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: ---
Assignee: Thomas Woerner
QA Contact: Tomas Dolezal
URL:
Whiteboard:
Depends On:
Blocks: 1082756
TreeView+ depends on / blocked
 
Reported: 2014-08-07 11:34 UTC by Radek Novacek
Modified: 2016-12-01 00:33 UTC (History)
5 users (show)

Fixed In Version: firewalld-0.3.9-10.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-05 13:23:23 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:0520 normal SHIPPED_LIVE firewalld bug fix and enhancement update 2015-03-05 16:33:07 UTC

Description Radek Novacek 2014-08-07 11:34:49 UTC
FirewallD D-Bus API currently provides two different sets of APIs, one for runtime configuration and one for permanent configuration.

Having two different sets of APIs for almost the same thing complicates the implementation of clients that will consume the API.

It would be great if FirewallD can provide same set of APIs for both runtime and permanent configuration, for example only D-Bus object path would differ or method argument would specify if we want to alter runtime or permanent configuration.

Comment 7 Radek Novacek 2014-10-07 08:04:59 UTC
Thanks, this is much better. I can imagine a code that would handle both runtime and permanent configuration.

However, those APIs are still a bit different. For example, adding port to the zone would look like this:

Runtime:
dbus.call("/org/fedoraproject/FirewallD1", "org.fedoraproject.FirewallD1.zone", "addPort", "public", "1234", "tcp", 0)

Permanent:
zone = dbus.call("/org/fedoraproject/FirewallD1/config", "org.fedoraproject.FirewallD1.config", "getZoneByName", "public")
dbus.call(zone, "org.fedoraproject.FirewallD1.zone", "addPort", "1234", "tcp")


So, I'm satisfied with using the current API, but unifying those two ways completely would be awesome.

Comment 8 Thomas Woerner 2014-10-07 11:29:03 UTC
I am sorry, but it is not possible to unify the runtime and permanent interfaces more than this within the Python version because of name conflicts in the server classes.

With the C++ recode version this will be possible, but it is not finished and available, yet.

Comment 9 Jiri Popelka 2014-10-14 16:42:47 UTC
Thomas, the following upstream commits should be included too:

0207d50
e2408ad
0cc032c

Comment 12 errata-xmlrpc 2015-03-05 13:23:23 UTC
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://rhn.redhat.com/errata/RHBA-2015-0520.html


Note You need to log in before you can comment on or make changes to this bug.