<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 11/03/2016 04:56 PM, Oleg Fayans
wrote:<br>
</div>
<blockquote
cite="mid:c72237d5-63f2-4703-cab5-5d9e91345d49@redhat.com"
type="cite">Hi Martin,
<br>
<br>
The commit message was updated with the correct ticket link
<br>
Thanks for review!
<br>
<br>
On 11/03/2016 04:22 PM, Martin Basti wrote:
<br>
<blockquote type="cite">almost ACK, but the ticket in commit
message is closed as invalid. So
<br>
I'm quite puzzled now what to do.
<br>
<br>
<br>
On 03.11.2016 13:28, Oleg Fayans wrote:
<br>
<blockquote type="cite">ping for review
<br>
<br>
On 10/19/2016 04:54 PM, Oleg Fayans wrote:
<br>
<blockquote type="cite">Hi Martin,
<br>
<br>
Thanks for the review. Fixed both issues.
<br>
<br>
$ ipa-run-tests test_integration/test_topology.py -k
TestCASpecificRUVs
<br>
WARNING: Couldn't write lextab module 'pycparser.lextab'.
[Errno 13]
<br>
Permission denied: 'lextab.py'
<br>
WARNING: yacc table file version is out of date
<br>
WARNING: Couldn't create 'pycparser.yacctab'. [Errno 13]
Permission
<br>
denied: 'yacctab.py'
<br>
====================================================================================
<br>
<br>
test session starts
<br>
=====================================================================================
<br>
<br>
<br>
platform linux2 -- Python 2.7.11, pytest-2.9.2, py-1.4.31,
pluggy-0.3.1
<br>
rootdir: /usr/lib/python2.7/site-packages/ipatests, inifile:
pytest.ini
<br>
plugins: sourceorder-0.5, multihost-1.0
<br>
collected 5 items
<br>
<br>
test_integration/test_topology.py ..
<br>
<br>
================================================================================
<br>
<br>
2 passed in 2444.84 seconds
<br>
=================================================================================
<br>
<br>
<br>
<br>
<br>
On 10/17/2016 07:05 PM, Martin Basti wrote:
<br>
<blockquote type="cite">1)
<br>
<br>
you don't need to disable/enable dirsrv, just stop/start.
Please remove
<br>
disable/enable parts
<br>
<br>
<br>
2)
<br>
<br>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
traceback
<br>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
<br>
self =
<ipatests.test_integration.test_topology.TestCASpecificRUVs
<br>
object at 0x7f6a502eec90>
<br>
<br>
def test_delete_ruvs(self):
<br>
"""
<br>
<a class="moz-txt-link-freetext" href="http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/">http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/</a>
<br>
Test_Plan#Test_case:_clean-ruv_subcommand
<br>
"""
<br>
replica = self.replicas[0]
<br>
master = self.master
<br>
res1 = master.run_command(['ipa-replica-manage',
'list-ruv',
<br>
'-p',
<br>
master.config.dirman_password])
<br>
<blockquote type="cite">assert(res1.stdout_text.count(replica.hostname)
== 2 and
<br>
</blockquote>
"Certificate Server Replica Update Vectors"
in res1), (
<br>
"CA-specific RUVs are not displayed")
<br>
E TypeError: argument of type 'SSHCommand' is not
iterable
<br>
<br>
test_integration/test_topology.py:215: TypeError
<br>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
entering PDB
<br>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<blockquote
type="cite">
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
<blockquote type="cite">
<br>
</blockquote>
/usr/lib/python2.7/site-packages/ipatests/test_integration/test_topology.py(215)test_delete_ruvs()
<br>
<br>
<br>
<br>
<br>
-> assert(res1.stdout_text.count(replica.hostname) == 2
and
<br>
<br>
<br>
<br>
On 14.10.2016 11:36, Oleg Fayans wrote:
<br>
<blockquote type="cite">Right you are! I am sorry.
<br>
<br>
On 10/13/2016 06:10 PM, Martin Basti wrote:
<br>
<blockquote type="cite">I think that you forgot to
squash commits. Patch 47 doesn't apply
<br>
<br>
<br>
On 13.10.2016 14:01, Oleg Fayans wrote:
<br>
<blockquote type="cite">Hi Martin,
<br>
<br>
Thanks for the review.
<br>
With disabling directory server it works as well,
thanks for the
<br>
hint.
<br>
Also I moved the cleanup logic to the test itself
for the sake of
<br>
simplicity. Patch-0048 was not changed
<br>
<br>
On 10/12/2016 02:35 PM, Martin Basti wrote:
<br>
<blockquote type="cite">1)
<br>
<br>
Can you just turn off dirsrv on replica instead of
doing iptables
<br>
magic?
<br>
<br>
<br>
2) NACK
<br>
<br>
No more eval() ever in code, use 'getattr', 'get'
or whatever in
<br>
the
<br>
object that can be used.
<br>
<br>
+ evalhost = eval("args[0].%s" %
host)
<br>
<br>
Martin^2
<br>
<br>
On 12.10.2016 14:03, Oleg Fayans wrote:
<br>
<blockquote type="cite">Hi Martin,
<br>
<br>
After extensive discussion with Ludwig, I
finally got the clue on
<br>
how
<br>
does this feature work. When we uninstall the
replica, the master
<br>
cleans the replication agreements with this
replica and
<br>
automatically
<br>
cleans all replica's RUVs.
<br>
If we clean replica's RUVs on master without
uninstalling the
<br>
replica,
<br>
the replica's RUVs get recreated on master
(replication
<br>
works!). So,
<br>
the only way to test the clean-ruv subcommand is
to turn off the
<br>
replica, or block the traffic on it so it gets
inaccessible to
<br>
updates
<br>
from master.
<br>
The testcases were updated, see [1] and [2]
<br>
<br>
The updated versions of the patches are attached
<br>
<br>
[1]
<br>
<a class="moz-txt-link-freetext" href="http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/Test_Plan#Test_case:_.2A-ruv_subcommands_of_ipa-replica-manage_are_extended_to_handle_CA-specific_RUVs">http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/Test_Plan#Test_case:_.2A-ruv_subcommands_of_ipa-replica-manage_are_extended_to_handle_CA-specific_RUVs</a>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
[2]
<br>
<a class="moz-txt-link-freetext" href="http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/Test_Plan#Test_case:_clean-ruv_subcommand">http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/Test_Plan#Test_case:_clean-ruv_subcommand</a>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
On 08/05/2016 06:36 PM, Martin Basti wrote:
<br>
<blockquote type="cite">
<br>
<br>
On 03.08.2016 14:45, Oleg Fayans wrote:
<br>
<blockquote type="cite">Hi Martin,
<br>
<br>
Thanks for the review! Both patches were
updated.
<br>
<br>
On 07/28/2016 04:11 PM, Martin Basti wrote:
<br>
<blockquote type="cite">
<br>
<br>
On 08.07.2016 15:41, Oleg Fayans wrote:
<br>
<blockquote type="cite">Hi Martin,
<br>
<br>
Thanks for the review!
<br>
<br>
On 07/08/2016 02:18 PM, Martin Basti
wrote:
<br>
<blockquote type="cite">
<br>
<br>
On 27.06.2016 13:53, Oleg Fayans
wrote:
<br>
<blockquote type="cite">Hi guys,
<br>
<br>
Is there a chance the patches NN
0047.1 and 0048.1 get
<br>
reviewed
<br>
before
<br>
4.4 release? They cover a good part
of the Managed Topology
<br>
4.4
<br>
feature.
<br>
<br>
On 06/17/2016 11:18 AM, Oleg Fayans
wrote:
<br>
<blockquote type="cite">One more
test was added to the patch-0048
<br>
<br>
On 06/17/2016 09:43 AM, Oleg
Fayans wrote:
<br>
<blockquote type="cite">Fixed a
bug in the previous patch,
automated 2 more
<br>
testcases
<br>
from
<br>
<a class="moz-txt-link-freetext" href="http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/Test_Plan">http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/Test_Plan</a>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
On 06/16/2016 04:46 PM, Oleg
Fayans wrote:
<br>
<blockquote type="cite">
<br>
<br>
</blockquote>
<br>
<br>
</blockquote>
<br>
<br>
</blockquote>
</blockquote>
IIUC, this will turn off the machine
completely, how is
<br>
cleanup
<br>
done
<br>
then. AFAIK our tests cannot turn on
machine again and run
<br>
cleanup, so
<br>
you will not be able to run more tests
on the same topology
<br>
without
<br>
manual cleanup and manual start.
<br>
<br>
+ replica = self.replicas[0]
<br>
+
replica.run_command(['poweroff'])
<br>
<br>
IMO would be better to just call
'ipactl stop' instead of
<br>
'poweroff'
<br>
</blockquote>
<br>
Agreed! Fixed.
<br>
<br>
<blockquote type="cite">
<br>
Martin^2
<br>
<br>
</blockquote>
<br>
<br>
<br>
</blockquote>
*Automated ipa-replica-manage del tests*
<br>
<br>
1)
<br>
+ replica.run_command(['ipactl',
'stop'])
<br>
+ time.sleep(3)
<br>
<br>
Why do you need sleep here?
<br>
</blockquote>
<br>
Removed, it was left from the old "poweroff"
approach
<br>
<br>
<blockquote type="cite">
<br>
<br>
2)
<br>
+ ruvid_re = re.compile(".*%s:389:
(\d+).*" %
<br>
replica.hostname)
<br>
+ replica_ruvs =
ruvid_re.findall(result.stdout_text)
<br>
+
master.run_command(['ipa-replica-manage',
'clean-ruv',
<br>
'f',
<br>
+ '-p',
<br>
master.config.dirman_password,
<br>
+
replica_ruvs[0]])
<br>
<br>
Because you are using re.findall(),
without any match you will
<br>
receive
<br>
IndexError here replica_ruvs[0]. IMO it
deserves assert before
<br>
</blockquote>
<br>
Implemented the assert which checks that the
output contains
<br>
enough
<br>
replica RUVs
<br>
<br>
<blockquote type="cite">
<br>
3)
<br>
assert(replica.hostname in
result1.stdout_text)
<br>
<br>
I think that this is error prone. What if
there is just error
<br>
'could not
<br>
connect to replica <replica
hostname>', or something similar.
<br>
instead of
<br>
listing/cleaning/whatever operation was
executed. I think
<br>
that it
<br>
should
<br>
be more specific regexp than just finding
a replica name
<br>
substring
<br>
(Yes
<br>
In IPA we dont always print error so
stderr)
<br>
<br>
I'm not sure, but probably there might be
cases when non
<br>
critical
<br>
error
<br>
happen and exist status is still 0
<br>
</blockquote>
<br>
Agree. Implemented a regex-based search
<br>
<br>
<blockquote type="cite">
<br>
4)
<br>
<br>
+ replica.run_command(['poweroff'])
<br>
+ time.sleep(3)
<br>
<br>
There should not be poweroff, probably
sleep could be removed
<br>
too.
<br>
</blockquote>
<br>
Gone
<br>
<br>
<blockquote type="cite">
<br>
<br>
* Automated clean-ruv subcommand test*
<br>
<br>
1) PEP8, 2 new lines expected
<br>
./ipatests/test_integration/test_topology.py:163:1: E302
<br>
expected 2
<br>
blank lines, found 0
<br>
./ipatests/test_integration/test_topology.py:182:80: E501 line
<br>
too
<br>
long
<br>
(85 > 79 characters)
<br>
</blockquote>
<br>
Fixed
<br>
<br>
<blockquote type="cite">
<br>
<br>
2)
<br>
I dont like doing assert just with count
of occurences of
<br>
substring in
<br>
STDOUT, would be possible to improve this
somehow?
<br>
</blockquote>
<br>
Maybe, but frankly, I don't see how. In this
case we are making
<br>
sure
<br>
that both simple and CA-specific RUVs of a
replica are
<br>
displayed. The
<br>
format of the output is strict:
<br>
Replica Update Vectors:
<br>
replica1_hostname:389: RUV_id
<br>
replica2_hostname:389: RUV_id
<br>
Certificate Server Replica Update Vectors:
<br>
replica1_hostname:389: RUV_id
<br>
replica2_hostname:389: RUV_id
<br>
If we do not see 2 occurrences of the
replica hostname than
<br>
definitely
<br>
something went wrong
<br>
<br>
<blockquote type="cite">
<br>
3)
<br>
I'm not sure if clean-ruv is instant
operations or there is
<br>
some
<br>
magic
<br>
happening in background (we have
abort-clean-ruv). Maybe some
<br>
sleep
<br>
should be there, but this needs
investigation.
<br>
<br>
+ assert(replica.hostname in
result2.stdout_text), (
<br>
+ "The wrong RUV was deleted")
<br>
+ result3 =
master.run_command(['ipa-replica-manage',
<br>
'list-ruv',
<br>
+
'-p',
<br>
master.config.dirman_password])
<br>
+
assert(result3.stdout_text.count(replica.hostname)
== 1), (
<br>
+ "CA RUV of the replica is
still displayed")
<br>
<br>
</blockquote>
<br>
Based on my discussion with Stanislav
Laznicka, I understood
<br>
that by
<br>
default clean-ruv does not return the shell
until the
<br>
operation is
<br>
finished. You can force dropping into the
shell by pressing
<br>
CTRL+C, in
<br>
which case the background job will still be
running, but this is
<br>
not
<br>
the default behavior
<br>
<br>
</blockquote>
Test failed:
<br>
result4 =
master.run_command(['ipa-replica-manage',
<br>
'list-ruv',
<br>
'-p',
<br>
master.config.dirman_password])
<br>
<blockquote type="cite">assert(replica.hostname
not in result4.stdout_text), (
<br>
</blockquote>
"replica's RUV is still
displayed")
<br>
E AssertionError: replica's RUV is still
displayed
<br>
E assert 'replica3.ipa.test' not in
'Replica Update
<br>
V...ipa.test:389: 8\n'
<br>
E 'replica3.ipa.test' is contained
here:
<br>
E Replica Update Vectors:
<br>
E \tmaster.ipa.test:389: 4
<br>
E \treplica3.ipa.test:389: 3
<br>
E \treplica2.ipa.test:389: 7
<br>
E Certificate Server Replica Update
Vectors:
<br>
E \tmaster.ipa.test:389: 6
<br>
E \treplica2.ipa.test:389: 8
<br>
<br>
<br>
[root@master ~]# ipa topologysegment-find
<br>
Suffix name: domain
<br>
------------------
<br>
2 segments matched
<br>
------------------
<br>
Segment name:
master.ipa.test-to-replica2.ipa.test
<br>
Left node: master.ipa.test
<br>
Right node: replica2.ipa.test
<br>
Connectivity: both
<br>
<br>
Segment name:
master.ipa.test-to-replica3.ipa.test
<br>
Left node: master.ipa.test
<br>
Right node: replica3.ipa.test
<br>
Connectivity: both
<br>
----------------------------
<br>
Number of entries returned 2
<br>
----------------------------
<br>
[root@master ~]# ipa-replica-manage list-ruv
<br>
Directory Manager password:
<br>
<br>
Replica Update Vectors:
<br>
master.ipa.test:389: 4
<br>
replica2.ipa.test:389: 7
<br>
replica3.ipa.test:389: 3
<br>
Certificate Server Replica Update Vectors:
<br>
master.ipa.test:389: 6
<br>
replica2.ipa.test:389: 8
<br>
[root@master ~]#
<br>
<br>
Then I tried manually to clean RUV 3, and it
behaves somehow odd
<br>
<br>
[root@master ~]# 'ipa-replica-manage'
'clean-ruv' '3' '-p'
<br>
'Secret123' '-f'
<br>
Clean the Replication Update Vector for
replica3.ipa.test:389
<br>
Background task created to clean replication
data. This may
<br>
take a
<br>
while.
<br>
This may be safely interrupted with Ctrl+C
<br>
Cleanup task created
<br>
[root@master ~]# less
/var/log/dirsrv/slapd-IPA-TEST/errors
<br>
[root@master ~]# ipa-replica-manage list-ruv
<br>
Directory Manager password:
<br>
<br>
Replica Update Vectors:
<br>
master.ipa.test:389: 4
<br>
replica2.ipa.test:389: 7
<br>
replica3.ipa.test:389: 3
<br>
Certificate Server Replica Update Vectors:
<br>
master.ipa.test:389: 6
<br>
replica2.ipa.test:389: 8
<br>
[root@master ~]# 'ipa-replica-manage'
'clean-ruv' '3' '-p'
<br>
'Secret123' '-f'
<br>
Clean the Replication Update Vector for
replica3.ipa.test:389
<br>
CLEANALLRUV task for replica id 3 already
exists.
<br>
This may be safely interrupted with Ctrl+C
<br>
Cleanup task created
<br>
<br>
[root@master ~]# ipa-replica-manage
list-clean-ruv -p Secret123
<br>
No CLEANALLRUV tasks running
<br>
<br>
No abort CLEANALLRUV tasks running
<br>
[root@master ~]# 'ipa-replica-manage'
'clean-ruv' '3' '-p'
<br>
'Secret123' '-f'
<br>
Clean the Replication Update Vector for
replica3.ipa.test:389
<br>
Background task created to clean replication
data. This may
<br>
take a
<br>
while.
<br>
This may be safely interrupted with Ctrl+C
<br>
Cleanup task created
<br>
[root@master ~]# ipa-replica-manage
list-clean-ruv -p Secret123
<br>
CLEANALLRUV tasks
<br>
RID 3: Successfully cleaned rid(3).
<br>
<br>
No abort CLEANALLRUV tasks running
<br>
[root@master ~]# ipa-replica-manage list-ruv
-p Secret123
<br>
Replica Update Vectors:
<br>
master.ipa.test:389: 4
<br>
replica2.ipa.test:389: 7
<br>
Certificate Server Replica Update Vectors:
<br>
master.ipa.test:389: 6
<br>
replica2.ipa.test:389: 8
<br>
<br>
<br>
I'm not sure if this behavior is right, Ludwig
may know.
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
<p>ACK<br>
</p>
<pre class="moz-signature" cols="72">--
Milan Kubik</pre>
</body>
</html>