Conditional enable the ldap configuration

If any of the existing ldap config(openldap/AD) is
already enabled,The other ldap configuration can't be
enabled.

TestedBy: Unit-Tested

          Tested the above behaviour.It throws the
          error back if try to enable the configuration
          when there is already active configuration.

          If there is no active configuration then it
          allows to enable the configuration.

Signed-off-by: Ratan Gupta <ratagupt@linux.vnet.ibm.com>
Change-Id: I5b6008036152cd36e5422bb372a05c8a3ec3d24b
diff --git a/phosphor-ldap-config/ldap_config.cpp b/phosphor-ldap-config/ldap_config.cpp
index 126cc46..03c6ffc 100644
--- a/phosphor-ldap-config/ldap_config.cpp
+++ b/phosphor-ldap-config/ldap_config.cpp
@@ -444,22 +444,28 @@
 
 bool Config::enabled(bool value)
 {
-    bool isEnable;
+    if (value == enabled())
+    {
+        return value;
+    }
+    // Let parent decide that can we enable this config.
+    // It may happen that other config is already enabled,
+    // Current implementation support only one config can
+    // be active at a time.
+    return parent.enableService(*this, value);
+}
+
+bool Config::enableService(bool value)
+{
+    bool isEnable = false;
     try
     {
-        if (value == enabled())
-        {
-            return value;
-        }
         isEnable = EnableIface::enabled(value);
         if (isEnable)
         {
             writeConfig();
         }
-        // TODO in later commit, one of the config would be active
-        // at any moment of time.
         parent.startOrStopService(nslcdService, value);
-        // save the object.
         serialize();
     }
     catch (const InternalFailure& e)