<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 02/23/2017 08:30 AM, Martin Basti
      wrote:<br>
    </div>
    <blockquote
      cite="mid:b10b831b-e186-5081-5050-3cba71d78c33@redhat.com"
      type="cite">
      <meta content="text/html; charset=windows-1252"
        http-equiv="Content-Type">
      <br>
      <div class="moz-cite-prefix">On 23.02.2017 00:17, Diogenes S.
        Jesus wrote:<br>
      </div>
      <blockquote
cite="mid:CAD8MJvC5c5hi3DLMdP-6Aq8+k=zV9LNC58W+TSuyhPHC6_HEcw@mail.gmail.com"
        type="cite">
        <div dir="ltr">
          <div>We are ansible-playbooking FreeIPA and we don't want to
            care about if freeipa is installed, we just want to ignore
            errors if it already is - but for that the exit code is
            relevant. </div>
          <div>Either the return code is wrong in the code or in the
            manual - according to the manual, it should be 3, but it's
            currently 1.</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>ubuntu@ipa02:~$ sudo -i</div>
          <div>root@ipa02:~# http_proxy='' https_proxy=''
            ipa-replica-install
            --dirsrv-cert-file=/etc/ssl/private/ipa02.dev.pfx
            --http-cert-file=/etc/ssl/private/ipa02.dev.pfx
            --dirsrv-pin=export --http-pin=export</div>
          <div>ipa.ipapython.install.cli.install_tool(Replica): ERROR  
             IPA server is already configured on this system.</div>
          <div>If you want to reinstall the IPA server, please uninstall
            it first using 'ipa-server-install --uninstall'.</div>
          <div>ipa.ipapython.install.cli.install_tool(Replica): ERROR  
             The ipa-replica-install command failed. See
            /var/log/ipareplica-install.log for more information</div>
          <div><br>
          </div>
          <div>root@ipa02:~# echo $?</div>
          <div>1</div>
          <div><br>
          </div>
          <div>root@ipa02:~# cat /var/log/ipareplica-install.log</div>
          <div>2017-02-22T22:49:45Z DEBUG Logging to
            /var/log/ipareplica-install.log</div>
          <div>2017-02-22T22:49:45Z DEBUG ipa-replica-install was
            invoked with arguments [] and options: {'no_dns_sshfp':
            None, 'skip_schema_check': None, 'setup_kra': None,
            'ip_addresses': None, 'mkhomedir': None, 'no_pkinit': None,
            'http_cert_files': ['/etc/ssl/private/ipa02.dev.pfx'],
            'no_ntp': None, 'verbose': False, 'no_forwarders': None,
            'keytab': None, 'ssh_trust_dns': None, 'domain_name': None,
            'http_cert_name': None, 'dirsrv_cert_files':
            ['/etc/ssl/private/ipa02.dev.pfx'], 'no_dnssec_validation':
            None, 'no_reverse': None, 'pkinit_cert_files': None,
            'unattended': False, 'auto_reverse': None,
            'auto_forwarders': None, 'no_host_dns': None, 'no_sshd':
            None, 'no_ui_redirect': None, 'dirsrv_config_file': None,
            'forwarders': None, 'pkinit_cert_name': None, 'setup_ca':
            None, 'realm_name': None, 'skip_conncheck': None, 'no_ssh':
            None, 'dirsrv_cert_name': None, 'quiet': False, 'server':
            None, 'setup_dns': None, 'host_name': None, 'log_file':
            None, 'reverse_zones': None, 'allow_zone_overlap': None}</div>
          <div>2017-02-22T22:49:45Z DEBUG IPA version 4.3.1</div>
          <div>2017-02-22T22:49:45Z DEBUG Loading StateFile from
            '/var/lib/ipa/sysrestore/sysrestore.state'</div>
          <div>2017-02-22T22:49:45Z DEBUG Loading Index file from
            '/var/lib/ipa/sysrestore/sysrestore.index'</div>
          <div>2017-02-22T22:49:45Z DEBUG httpd is configured</div>
          <div>2017-02-22T22:49:45Z DEBUG kadmin is configured</div>
          <div>2017-02-22T22:49:45Z DEBUG dirsrv is configured</div>
          <div>2017-02-22T22:49:45Z DEBUG pki-tomcatd is not configured</div>
          <div>2017-02-22T22:49:45Z DEBUG install is not configured</div>
          <div>2017-02-22T22:49:45Z DEBUG krb5kdc is configured</div>
          <div>2017-02-22T22:49:45Z DEBUG ntpd is configured</div>
          <div>2017-02-22T22:49:45Z DEBUG named is not configured</div>
          <div>2017-02-22T22:49:45Z DEBUG ipa_memcached is configured</div>
          <div>2017-02-22T22:49:45Z DEBUG filestore has files</div>
          <div>2017-02-22T22:49:45Z DEBUG   File
            "/usr/lib/python2.7/dist-packages/ipapython/admintool.py",
            line 171, in execute</div>
          <div>    return_value = self.run()</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/cli.py",
            line 318, in run</div>
          <div>    cfgr.run()</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 308, in run</div>
          <div>    self.validate()</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 317, in validate</div>
          <div>    for nothing in self._validator():</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 372, in __runner</div>
          <div>    self._handle_exception(exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 394, in _handle_exception</div>
          <div>    six.reraise(*exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 362, in __runner</div>
          <div>    step()</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 359, in <lambda></div>
          <div>    step = lambda: next(self.__gen)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/util.py",
            line 81, in run_generator_with_yield_from</div>
          <div>    six.reraise(*exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/util.py",
            line 59, in run_generator_with_yield_from</div>
          <div>    value = gen.send(prev_value)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 564, in _configure</div>
          <div>    next(validator)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 372, in __runner</div>
          <div>    self._handle_exception(exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 449, in _handle_exception</div>
          <div>    self.__parent._handle_exception(exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 394, in _handle_exception</div>
          <div>    six.reraise(*exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 446, in _handle_exception</div>
          <div>    super(ComponentBase,
            self)._handle_exception(exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 394, in _handle_exception</div>
          <div>    six.reraise(*exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 362, in __runner</div>
          <div>    step()</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/core.py",
            line 359, in <lambda></div>
          <div>    step = lambda: next(self.__gen)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/util.py",
            line 81, in run_generator_with_yield_from</div>
          <div>    six.reraise(*exc_info)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/util.py",
            line 59, in run_generator_with_yield_from</div>
          <div>    value = gen.send(prev_value)</div>
          <div>  File
            "/usr/lib/python2.7/dist-packages/ipapython/install/common.py",
            line 63, in _install</div>
          <div>    for nothing in self._installer(self.parent):</div>
          <div>  File
"/usr/lib/python2.7/dist-packages/ipaserver/install/server/replicainstall.py",
            line 1650, in main</div>
          <div>    promote_check(self)</div>
          <div>  File
"/usr/lib/python2.7/dist-packages/ipaserver/install/server/replicainstall.py",
            line 375, in decorated</div>
          <div>    func(installer)</div>
          <div>  File
"/usr/lib/python2.7/dist-packages/ipaserver/install/server/replicainstall.py",
            line 397, in decorated</div>
          <div>    func(installer)</div>
          <div>  File
"/usr/lib/python2.7/dist-packages/ipaserver/install/server/replicainstall.py",
            line 952, in promote_check</div>
          <div>    sys.exit("IPA server is already configured on this
            system.\n"</div>
          <div><br>
          </div>
          <div>2017-02-22T22:49:45Z DEBUG The ipa-replica-install
            command failed, exception: SystemExit: IPA server is already
            configured on this system.</div>
          <div>If you want to reinstall the IPA server, please uninstall
            it first using 'ipa-server-install --uninstall'.</div>
          <div>2017-02-22T22:49:45Z ERROR IPA server is already
            configured on this system.</div>
          <div>If you want to reinstall the IPA server, please uninstall
            it first using 'ipa-server-install --uninstall'.</div>
          <div>2017-02-22T22:49:45Z ERROR The ipa-replica-install
            command failed. See /var/log/ipareplica-install.log for more
            information</div>
          <div><br>
          </div>
          <div>------</div>
          <div><br>
          </div>
          <div>For those looking for a workaround meanwhile  do:</div>
          <div>
            <p
style="margin:0px;font-size:12px;line-height:normal;font-family:menlo;color:rgb(0,0,0)"><span
                style="font-variant-ligatures:no-common-ligatures">python
                -c 'import sys; from ipaserver.install.installutils
                import is_ipa_configured; sys.exit(is_ipa_configured())'</span></p>
            <p
style="margin:0px;font-size:12px;line-height:normal;font-family:menlo;color:rgb(0,0,0)"><span
                style="font-variant-ligatures:no-common-ligatures"><br>
              </span></p>
            <p
style="margin:0px;font-size:12px;line-height:normal;font-family:menlo;color:rgb(0,0,0)"><span
                style="font-variant-ligatures:no-common-ligatures">As
                proposed here: <a moz-do-not-send="true"
                  href="https://fedorahosted.org/freeipa/ticket/4884">https://fedorahosted.org/freeipa/ticket/4884</a></span></p>
          </div>
          <div><br>
          </div>
          <div>Dio</div>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
      </blockquote>
      <br>
      <br>
      Hello,<br>
      <br>
      return code 1 is expected for already installed server. Return
      code 3 on replica is somehow special it doesn't mean that replica
      is already installed but more or less issues that may happen
      during replica installation.<br>
      <br>
      If you think that we should return an extra return code for "IPA
      already installed", please file a RFE ticket. <a
        moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://fedorahosted.org/freeipa/newticket">https://fedorahosted.org/freeipa/newticket</a><br>
      <br>
      Martin<br>
      <br>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <p>Hello,</p>
    <p>Thank you for raising your concern. The documentation there is
      quite puzzling from what I see, it should say that 3 is returned
      when the host with such a hostname already exists in the topology
      or when the remote server has a replication agreement to this host
      (the doc is completely wrong there). This does not imply replica
      is already installed on the given server.<br>
    </p>
    <p>While I was going through the code, I found quite some more cases
      where 3 would be returned. So my advice is - check whether the
      returned value is not 0. I believe we should deprecate rval 3 as
      it is bound to only cause more confusion. If the installation
      failed, you need to go checking the logs anyway, right?</p>
    HTH,<br>
    Standa<br>
  </body>
</html>