Add full Associations support

Associations are D-Bus objects that this application
creates when another application creates an instance
of an org.openbmc.Associations interface.

For example, if an application with D-Bus path 'pathA'
creates an instance of org.openbmc.Associations with
an 'associations' property of:

['forward', 'reverse', 'pathB']

the mapper will create 2 new D-Bus objects:

1) 'pathA/forward'
2) 'pathB/reverse'

1) will have an xyz.openbmc_project.Association interface
with an 'endpoints' property that contains ['pathB']

2) will have an xyz.openbmc_project.Association interface
with an 'endpoints' property that contains ['pathA']

If pathA is removed from the bus, 1) should be completely removed,
and 2) should have 'pathA' removed from the endpoints property.
If the endpoints property in 2) is now empty, that whole
object should be removed as well.

If, when adding the xyz.openbmc_project.Association interface, it
already exists, then the endpoints property should just be added
to.

This commit finishes adding support for all of this.

Change-Id: Ib1b3d39407a4b75992664552a766e49fdb27123f
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
1 file changed
tree: 07c5fef501f5d0a1e0051b964462995e7feaf316
  1. fail-monitor/
  2. libmapper/
  3. obmc/
  4. src/
  5. .clang-format
  6. .gitignore
  7. bootstrap.sh
  8. configure.ac
  9. LICENSE
  10. MAINTAINERS
  11. Makefile.am
  12. phosphor-mapper
  13. README.md
  14. setup.cfg
  15. setup.py.in
README.md

To Build

To build this package, do the following steps:

    1. ./bootstrap.sh
    2. ./configure ${CONFIGURE_FLAGS}
    3. make

To clean the repository run `./bootstrap.sh clean`.