Increase retry time and interval when calling get_subtree_paths()

In create_object(), mapper.get_subtree_paths() may raise DBusException
which is not handled, it will cause settings_manager failure.

This is a follow up commit after review #1751, where retry interval is
added as function parameter, so that it will sleep for an interval
between retries.
When calling get_subtree_paths(), use retry time 10 and sleep interval
0.1, so far the exception is not raised any more.

Make HostSettingsObject to inherit DbusObjectManager helps ObjectMapper
to get HostSettingsObject's info more efficiently, otherwise it falls
back to call Introspect.

Partially fix openbmc/openbmc#862

Change-Id: I87c856e372a20a0ad577ce52f099074cdf5a4355
Signed-off-by: Lei YU <mine260309@gmail.com>
diff --git a/settings_manager.py b/settings_manager.py
index 0205ea5..cf358d8 100644
--- a/settings_manager.py
+++ b/settings_manager.py
@@ -7,7 +7,7 @@
 import os
 import os.path as path
 import sys
-from obmc.dbuslib.bindings import DbusProperties, get_dbus
+from obmc.dbuslib.bindings import DbusProperties, DbusObjectManager, get_dbus
 from IPy import IP
 
 settings_file_path = os.path.join(
@@ -68,7 +68,8 @@
         for setting in settings.itervalues():
             if setting['type'] is not 'instance_query':
                 continue
-            paths = mapper.get_subtree_paths(setting['subtree'], 0)
+            paths = mapper.get_subtree_paths(setting['subtree'], 0,
+                                             retries=10, interval=0.1)
 
             if setting['keyregex'] == 'host':
                 # Always create at least one host object.
@@ -82,7 +83,7 @@
                     "/org/openbmc/settings/" + m.group(1), settings)
     return allobjects
 
-class HostSettingsObject(DbusProperties):
+class HostSettingsObject(DbusProperties, DbusObjectManager):
     def __init__(self, bus, name, settings, path):
         super(HostSettingsObject, self).__init__(
             conn=bus,