<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body>
<div class="moz-cite-prefix">On 11/09/2016 04:34 PM, Milan Kubík
wrote:<br>
</div>
<blockquote
cite="mid:72c34ab8-5076-0d70-73dd-f6143ac62569@redhat.com"
type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<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 moz-do-not-send="true" 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 moz-do-not-send="true"
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 moz-do-not-send="true"
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 moz-do-not-send="true"
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>
</blockquote>
On the other hand, make it a conditional one. The link in the
comment does not work. Please fix that.<br>
<blockquote
cite="mid:72c34ab8-5076-0d70-73dd-f6143ac62569@redhat.com"
type="cite">
<p> </p>
<pre class="moz-signature" cols="72">--
Milan Kubik</pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Milan Kubik</pre>
</body>
</html>