tree ef27bbfdf3128c43a8d5fadb8e3eb58f9c55f1d3
parent f566c964cab791bb9427fdd31bca9f63e437de65
author Amithash Prasasd <amithash@meta.com> 1723601947 -0700
committer Amithash Prasasd <amithash@meta.com> 1724174016 -0700

Fix getManagedObjects on ObjectManager returning no objects

Currently, when calling getManagedObjects
```
busctl call xyz.openbmc_project.State.Host \
/xyz/openbmc_project/state/host0 org.freedesktop.DBus.ObjectManager \
GetManagedObjects
```
we end up getting no objects `a{oa{sa{sv}}} 0`. This is incorrect
and we technically should return the managed objects.
Looking further at the spec:
```
All returned object paths are children of the object path implementing
this interface, i.e. their object paths start with the ObjectManager's
object path plus '/'.
```
This implies that the the path owned by the object manager should
not be the hostX sub-entries but `/xyz/openbmc_project/state`

Tested by building a harma image and in qemu calling introspect on
each of the object paths and ensuring that we get the correct responses
```
busctl introspect xyz.openbmc_project.State.BMC \
    /xyz/openbmc_project/state
busctl introspect xyz.openbmc_project.State.BMC \
    /xyz/openbmc_project/state/bmc0
busctl introspect xyz.openbmc_project.State.Host \
    /xyz/openbmc_project/state
busctl introspect xyz.openbmc_project.State.Host \
    /xyz/openbmc_project/state/host0
busctl introspect xyz.openbmc_project.State.Chassis \
    /xyz/openbmc_project/state
busctl introspect xyz.openbmc_project.State.Chassis \
    /xyz/openbmc_project/state/chassis0
```
Also tested that we get the correct managed object
```
busctl call xyz.openbmc_project.State.Host /xyz/openbmc_project/state \
    org.freedesktop.DBus.ObjectManager GetManagedObjects
busctl call xyz.openbmc_project.State.BMC /xyz/openbmc_project/state \
    org.freedesktop.DBus.ObjectManager GetManagedObjects
busctl call xyz.openbmc_project.State.Chassis \
    /xyz/openbmc_project/state \
    org.freedesktop.DBus.ObjectManager GetManagedObjects
```

Change-Id: I525c8719c326cfbbe568c4f1f7fe95e3aa13c660
Signed-off-by: Amithash Prasad <amithash@meta.com>
