[Freeipa-devel] [PATCH 016, 024, 025] First part of the replica promotion tests + testplan

Lukas Slebodnik lslebodn at redhat.com
Thu Mar 17 10:28:36 UTC 2016


On (10/03/16 23:09), Oleg Fayans wrote:
>Hi Martin,
>
>
>
>On 03/08/2016 08:18 PM, Martin Basti wrote:
>> 
>> 
>> On 08.03.2016 18:24, Martin Basti wrote:
>>>
>>>
>>> On 08.03.2016 12:38, Oleg Fayans wrote:
>>>> The patches were rebased against the current master
>>>>
>>>> On 03/04/2016 05:33 PM, Martin Basti wrote:
>>>>> * old messages have been removed *
>>>>>>>>> 1)
>>>>>>>>> this method is unused please remove it
>>>>>>>>>
>>>>>>>>>       def test_kra_install_master(self):
>>>>>> Well, in fact it is used twice: in both domain levels, so I'd better
>>>>>> keep it:
>>>>>>
>>>>>> -bash-4.3$ ipa-run-tests test_integration/test_replica_promotion.py
>>>>>> --collect-only
>>>>>> ====================================================================================
>>>>>>
>>>>>>
>>>>>> test session starts
>>>>>> =====================================================================================
>>>>>>
>>>>>>
>>>>>> platform linux2 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.3
>>>>>> rootdir: /usr/lib/python2.7/site-packages/ipatests, inifile:
>>>>>> pytest.ini
>>>>>> plugins: sourceorder, multihost
>>>>>> collected 8 items
>>>>>> <Module 'test_integration/test_replica_promotion.py'>
>>>>>>     <Class 'TestReplicaPromotionLevel0'>
>>>>>>       <Instance '()'>
>>>>>>         <Function 'test_kra_install_master'>
>>>>>>         <Function 'test_promotion_disabled'>
>>>>>>         <Function 'test_backup_restore'>
>>>>>>     <Class 'TestKRAInstall'>
>>>>>>       <Instance '()'>
>>>>>>         <Function 'test_kra_install_without_replica_file'>
>>>>>>     <Class 'TestCAInstall'>
>>>>>>       <Instance '()'>
>>>>>>         <Function 'test_ca_install_without_replica_file'>
>>>>>>     <Class 'TestReplicaPromotionLevel1'>
>>>>>>       <Instance '()'>
>>>>>>         <Function 'test_kra_install_master'>
>>>>>>         <Function 'test_replica_prepare_disabled'>
>>>>>>     <Class 'TestReplicaManageCommands'>
>>>>>>       <Instance '()'>
>>>>>>         <Function 'test_replica_manage_commands'>
>>>>> aah my bad, I forgot that pytest executes it when it begins with test_*
>>>>> even in parent class
>>>>>>>>> 2)
>>>>>>>>> Why are these there? I do not see any usage
>>>>>>>>>
>>>>>>>>> from env_config import get_global_config
>>>>>>>>> config = get_global_config()
>>>>>> Removed
>>>>>>
>>>>>>>>> 3) nitpick
>>>>>>>>> +    num_clients = 0
>>>>>>>>> this is set by default
>>>>>> Removed
>>>>>>
>>>>>>>>> otherwise LGTM
>>>>>>>>>
>>>>>>>>> Results of testing tomorrow.
>>>>>>>>>
>>>>>>>>> Martin^2
>>>>>>>>>
>>>>>>>> I applied all patches including workarounds, but test failed.
>>>>>>>>
>>>>>>>> ipatests.test_integration.test_replica_promotion.TestReplicaPromotionLevel0
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> [ipa.ipatests.test_integration.host.Host.replica1.cmd51] RUN
>>>>>>>> ['ipa-replica-install', '-U', '-p', 'Secret123', '-w', 'Secret123',
>>>>>>>> '--setup-ca', '--ip-address', '192.168.144.102',
>>>>>>>> '/root/ipatests/replica-info.gpg']
>>>>>>>> [ipa.ipatests.test_integration.host.Host.replica1.cmd51] The host
>>>>>>>> replica1.ipa.test already exists on the master server.
>>>>>>>> [ipa.ipatests.test_integration.host.Host.replica1.cmd51] You should
>>>>>>>> remove it before proceeding:
>>>>>>>> [ipa.ipatests.test_integration.host.Host.replica1.cmd51] % ipa
>>>>>>>> host-del replica1.ipa.test
>>>>>>>> [ipa.ipatests.test_integration.host.Host.replica1.cmd51]
>>>>>>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    The
>>>>>>>> ipa-replica-install command failed. See
>>>>>>>> /var/log/ipareplica-install.log for more information
>>>>>>>> [ipa.ipatests.test_integration.host.Host.replica1.cmd51] Exit
>>>>>>>> code: 3
>>>>>>>> FAILED
>>>>>> this is exactly the error that happens when a workaround for 5627
>>>>>> is not
>>>>>> applied. I have re-run the tests with all the patches and everything
>>>>>> passed. Could you please double-check, whether patch 0027 was applied
>>>>>> correctly?
>>>>>>
>>>>>> bash-4.3$ ipa-run-tests test_integration/test_replica_promotion.py
>>>>>> --pdb
>>>>>> ====================================================================================
>>>>>>
>>>>>>
>>>>>> test session starts
>>>>>> =====================================================================================
>>>>>>
>>>>>>
>>>>>> platform linux2 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.3
>>>>>> rootdir: /usr/lib/python2.7/site-packages/ipatests, inifile:
>>>>>> pytest.ini
>>>>>> plugins: sourceorder, multihost
>>>>>> collected 8 items
>>>>>>
>>>>>> test_integration/test_replica_promotion.py ........
>>>>>>
>>>>>> ================================================================================
>>>>>>
>>>>>>
>>>>>> 8 passed in 7561.93 seconds
>>>>>> =================================================================================
>>>>>>
>>>>>>
>>>>>>
>>>>> I will
>>>>>
>>>>>>> And it needs ticket, otherwise it will not be in 4-3 branch.
>>>>>> https://fedorahosted.org/freeipa/ticket/5723
>>> NACK
>>>
>>> 1)
>>> ipatests.test_integration.test_replica_promotion.TestReplicaPromotionLevel0
>>>
>>>
>>> [ipa.ipatests.test_integration.host.Host.replica2.ParamikoTransport]
>>> RUN ['ipa-replica-install', '-U', '-p', 'Secret123', '-w',
>>> 'Secret123', '--setup-ca', '--ip-address', '192.168.200.103', '-r',
>>> 'IPA.TEST']
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65] RUN
>>> ['ipa-replica-install', '-U', '-p', 'Secret123', '-w', 'Secret123',
>>> '--setup-ca', '--ip-address', '192.168.200.103', '-r', 'IPA.TEST']
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65] IPA client is
>>> already configured on this system, ignoring the --domain, --server,
>>> --realm, --hostname, --password and --keytab options.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65] Your system
>>> may be partly configured.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65] Run
>>> /usr/sbin/ipa-server-install --uninstall to clean up.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65]
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65]
>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    You must
>>> provide a file generated by ipa-replica-prepare to create a replica
>>> when the domain is at level 0.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65]
>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    The
>>> ipa-replica-install command failed. See
>>> /var/log/ipareplica-install.log for more information
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd65] Exit code: 1
>>> FAILED
>>>
>>> 2)
>>> ipatests.test_integration.test_replica_promotion.TestKRAInstall
>>>
>>> [ipa.ipatests.test_integration.host.Host.replica2.ParamikoTransport]
>>> RUN ['ipa-replica-install', '-U', '-p', 'Secret123', '-w',
>>> 'Secret123', '--setup-ca', '--ip-address', '192.168.200.103', '-r',
>>> 'IPA.TEST']
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] RUN
>>> ['ipa-replica-install', '-U', '-p', 'Secret123', '-w', 'Secret123',
>>> '--setup-ca', '--ip-address', '192.168.200.103', '-r', 'IPA.TEST']
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] IPA client is
>>> already configured on this system, ignoring the --domain, --server,
>>> --realm, --hostname, --password and --keytab options.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] Your system
>>> may be partly configured.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] Run
>>> /usr/sbin/ipa-server-install --uninstall to clean up.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22]
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22]
>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    You must
>>> provide a file generated by ipa-replica-prepare to create a replica
>>> when the domain is at level 0.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22]
>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    The
>>> ipa-replica-install command failed. See
>>> /var/log/ipareplica-install.log for more information
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] Exit code: 1
>>> FAILED
>>>
>>>
>>> 3)
>>> ipatests.test_integration.test_replica_promotion.TestCAInstall
>>>
>>> [ipa.ipatests.test_integration.host.Host.replica2.ParamikoTransport]
>>> RUN ['ipa-replica-install', '-U', '-p', 'Secret123', '-w',
>>> 'Secret123', '--setup-dns', '--forwarder', '10.34.78.1',
>>> '--ip-address', '192.168.200.103', '-r', 'IPA.TEST']
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] RUN
>>> ['ipa-replica-install', '-U', '-p', 'Secret123', '-w', 'Secret123',
>>> '--setup-dns', '--forwarder', '10.34.78.1', '--ip-address',
>>> '192.168.200.103', '-r', 'IPA.TEST']
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] IPA client is
>>> already configured on this system, ignoring the --domain, --server,
>>> --realm, --hostname, --password and --keytab options.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] Your system
>>> may be partly configured.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] Run
>>> /usr/sbin/ipa-server-install --uninstall to clean up.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22]
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22]
>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    You must
>>> provide a file generated by ipa-replica-prepare to create a replica
>>> when the domain is at level 0.
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22]
>>> ipa.ipapython.install.cli.install_tool(Replica): ERROR    The
>>> ipa-replica-install command failed. See
>>> /var/log/ipareplica-install.log for more information
>>> [ipa.ipatests.test_integration.host.Host.replica2.cmd22] Exit code: 1
>>> FAILED
>>>
>>>
>>> Reason:
>>>
>>>  def install_replica(master, replica, setup_ca=True, setup_dns=False,
>>> -                    setup_kra=False, extra_args=()):
>>> +                    setup_kra=False, extra_args=(), domain_level=None):
>>> +    if domain_level is None:
>>> +        domain_level = domainlevel(master)
>
>Oops. Sorry, must have been a result of inaccurate rebase. Fixed
>The successful run is attached
>
>>>
>>> -    if domainlevel(master) == DOMAIN_LEVEL_0:
>>> +    if domainlevel == DOMAIN_LEVEL_0:
>>>
>>> domain_level variable is actually unused
>>>
>> Also with your patch that removes host_prepare, I see many following
>> errors in test debug output
>> 
>> [ipa.ipatests.test_integration.host.Host.replica1.cmd8] -bash: line 1:
>> cd: /root/ipatests: No such file or directory
>> [ipa.ipatests.test_integration.host.Host.replica1.cmd8] -bash: line 2:
>> /root/ipatests/env.sh: No such file or directory
>> 
>> 
>> I do not see these errors in current tests, so the patch does not seem
>> right to me.
>
>http://jenkins.idm.lab.eng.brq.redhat.com:8080/job/freeipa-integration-f23master-customized_ds_config_install-domlevel-1/23/consoleFull
>
>I've been experimenting a lot to find get rid of it but was
>unsuccessful. Seemingly it does not affect the tests.
>
Oleg it looks like you broke something
in the test_integration/test_external_ca.py

_______________________ TestExternalCA.test_external_ca ________________________

self = <ipatests.test_integration.test_external_ca.TestExternalCA object at 0x7ff560a51750>

    def test_external_ca(self):
        # Step 1 of ipa-server-install
        self.master.run_command([
            'ipa-server-install', '-U',
            '-a', self.master.config.admin_password,
            '-p', self.master.config.dirman_password,
            '--setup-dns', '--no-forwarders',
            '-n', self.master.domain.name,
            '-r', self.master.domain.realm,
            '--domain-level=%i' % self.master.config.domain_level,
            '--external-ca'
        ])
    
        nss_db = os.path.join(self.master.config.test_dir, 'testdb')
        external_cert_file = os.path.join(nss_db, 'ipa.crt')
        external_ca_file = os.path.join(nss_db, 'ca.crt')
        noisefile = os.path.join(self.master.config.test_dir, 'noise.txt')
        pwdfile = os.path.join(self.master.config.test_dir, 'pwdfile.txt')
    
        # Create noise and password files for NSS database
>       self.master.run_command('date | sha256sum > %s' % noisefile)

test_integration/test_external_ca.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../pytest_multihost/host.py:246: in run_command
    command.wait(raiseonerr=raiseonerr)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_multihost.transport.SSHCommand object at 0x7ff5609eb610>
raiseonerr = True

    def wait(self, raiseonerr=True):
        """Wait for the remote process to exit
    
            Raises an excption if the exit code is not 0, unless raiseonerr is
            true.
            """
        if self._done:
            return self.returncode
    
        self._end_process()
    
        self._done = True
    
        if raiseonerr and self.returncode:
            self.log.error('Exit code: %s', self.returncode)
>           raise subprocess.CalledProcessError(self.returncode, self.argv)
E           CalledProcessError: Command 'date | sha256sum > /root/ipatests/noise.txt' returned non-zero exit status 1

../pytest_multihost/transport.py:159: CalledProcessError
---------------------------- Captured stdout setup -----------------------------
<ipatests.test_integration.config.Config object at 0x7ff560a51cd0>
========================== 1 failed in 32.25 seconds ===========================



The command "date | sha256sum > /root/ipatests/noise.txt"

The only explanation is that the directory /root/ipatests/ does not exist.

LS




More information about the Freeipa-devel mailing list