mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
07.39.2007 6e9528b36acbdfa713479c9ddb6a342908071844
Update the code of the installer and Replication CLI main to be able to handle the case where an instance was uninstalled (but the registry not properly cleaned up) and we want to register it again.  Instead of failing with an 'already registered' error, the code will try to update the registration information in the ADS.
3 files modified
52 ■■■■ changed files
opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java 46 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java 4 ●●● patch | view | raw | blame | history
opendj-sdk/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
@@ -3792,11 +3792,11 @@
          if (registry2.size() == 0)
          {
            server2.updateAdsPropertiesWithServerProperties();
            adsCtx1.registerServer(server2.getAdsProperties());
            registerServer(adsCtx1, server2.getAdsProperties());
          }
          else
          {
            adsCtx1.registerServer(registry2.iterator().next());
            registerServer(adsCtx1, registry2.iterator().next());
          }
          ctxSource = ctx1;
@@ -3813,11 +3813,11 @@
          if (registry1.size() == 0)
          {
            server1.updateAdsPropertiesWithServerProperties();
            adsCtx2.registerServer(server1.getAdsProperties());
            registerServer(adsCtx2, server1.getAdsProperties());
          }
          else
          {
            adsCtx2.registerServer(registry1.iterator().next());
            registerServer(adsCtx2, registry1.iterator().next());
          }
          ctxSource = ctx2;
@@ -3849,7 +3849,7 @@
          adsCtx2.createAdministrator(getAdministratorProperties(uData));
        }
        server1.updateAdsPropertiesWithServerProperties();
        adsCtx2.registerServer(server1.getAdsProperties());
        registerServer(adsCtx2, server1.getAdsProperties());
        ctxSource = ctx2;
        ctxDestination = ctx1;
@@ -3863,7 +3863,7 @@
          adsCtx1.createAdministrator(getAdministratorProperties(uData));
        }
        server2.updateAdsPropertiesWithServerProperties();
        adsCtx1.registerServer(server2.getAdsProperties());
        registerServer(adsCtx1, server2.getAdsProperties());
        ctxSource = ctx1;
        ctxDestination = ctx2;
@@ -6106,4 +6106,38 @@
    }
    return mustInitializeSchema;
  }
  /**
   * This method registers a server in a given ADSContext.  If the server was
   * already registered it unregisters it and registers again (some properties
   * might have changed).
   * @param adsContext the ADS Context to be used.
   * @param server the server to be registered.
   * @throws ADSContextException if an error occurs during the registration or
   * unregistration of the server.
   */
  private void registerServer(ADSContext adsContext,
      Map<ADSContext.ServerProperty, Object> serverProperties)
  throws ADSContextException
  {
    try
    {
      adsContext.registerServer(serverProperties);
    }
    catch (ADSContextException ade)
    {
      if (ade.getError() ==
        ADSContextException.ErrorType.ALREADY_REGISTERED)
      {
        LOG.log(Level.WARNING, "The server was already registered: "+
            serverProperties);
        adsContext.unregisterServer(serverProperties);
        adsContext.registerServer(serverProperties);
      }
      else
      {
        throw ade;
      }
    }
  }
}
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
@@ -125,7 +125,7 @@
      }
    else
    {
        // User cancelled installation.
        // User cancelled operation.
        returnValue = ReturnCode.CANCELLED;
      }
    }
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -2201,7 +2201,9 @@
                  ADSContextException.ErrorType.ALREADY_REGISTERED)
          {
            notifyListeners(getFormattedWarning(
                    INFO_ADMINISTRATOR_ALREADY_REGISTERED.get()));
                INFO_ADMINISTRATOR_ALREADY_REGISTERED.get()));
            adsContext.unregisterServer(server.getAdsProperties());
            adsContext.registerServer(server.getAdsProperties());
          }
          else
          {