Hello Nir Soffer, Milan Zamazal,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/65307
to review the following change.
Change subject: virt: Make boolean values from boolean migration options
......................................................................
virt: Make boolean values from boolean migration options
`compressed' and `autoConverge' migration options have boolean values in
the string form. They must be converted to actual booleans before they
are checked.
Change-Id: I642eb607785a1b6f877092e187c91b7a065b38e1
Bug-Url: https://bugzilla.redhat.com/1380822
Backport-To: 4.0
Signed-off-by: Milan Zamazal <mzamazal(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/65007
Continuous-Integration: Jenkins CI
Reviewed-by: Nir Soffer <nsoffer(a)redhat.com>
Reviewed-by: Francesco Romani <fromani(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/65108
---
M vdsm/virt/migration.py
1 file changed, 4 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/07/65307/1
diff --git a/vdsm/virt/migration.py b/vdsm/virt/migration.py
index e502756..edd2c79 100644
--- a/vdsm/virt/migration.py
+++ b/vdsm/virt/migration.py
@@ -100,6 +100,8 @@
self._dstparams = dstparams
self._enableGuestEvents = kwargs.get('enableGuestEvents', False)
self._machineParams = {}
+ # TODO: utils.tobool shouldn't be used in this constructor, the
+ # conversions should be handled properly in the API layer
self._tunneled = utils.tobool(tunneled)
self._abortOnError = utils.tobool(abortOnError)
self._consoleAddress = consoleAddress
@@ -110,8 +112,8 @@
kwargs.get('maxBandwidth') or
config.getint('vars', 'migration_max_bandwidth')
)
- self._autoConverge = autoConverge
- self._compressed = compressed
+ self._autoConverge = utils.tobool(autoConverge)
+ self._compressed = utils.tobool(compressed)
self._incomingLimit = kwargs.get('incomingLimit')
self._outgoingLimit = kwargs.get('outgoingLimit')
self.status = {
--
To view, visit https://gerrit.ovirt.org/65307
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I642eb607785a1b6f877092e187c91b7a065b38e1
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-4.0.5
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Milan Zamazal <mzamazal(a)redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer(a)redhat.com>
Hello Michal Skrivanek, Milan Zamazal,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/65306
to review the following change.
Change subject: virt: Don't crash in migration progress on compression bytes
......................................................................
virt: Don't crash in migration progress on compression bytes
If compression is not enabled for a migration then compression stats are
not provided by libvirt. So when we try to retrieve them in migration
Progress, we must not expect their presence, otherwise we crash there.
Backport-To: 4.0
Bug-Url: https://bugzilla.redhat.com/1380822
Change-Id: I1885940843d705ead161c13258f1979025a03873
Signed-off-by: Milan Zamazal <mzamazal(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/64468
Reviewed-by: Michal Skrivanek <michal.skrivanek(a)redhat.com>
Continuous-Integration: Jenkins CI
Reviewed-by: Francesco Romani <fromani(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/64499
---
M vdsm/virt/migration.py
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/06/65306/1
diff --git a/vdsm/virt/migration.py b/vdsm/virt/migration.py
index 8f2af23..e502756 100644
--- a/vdsm/virt/migration.py
+++ b/vdsm/virt/migration.py
@@ -769,7 +769,7 @@
stats[libvirt.VIR_DOMAIN_JOB_MEMORY_REMAINING],
stats[libvirt.VIR_DOMAIN_JOB_MEMORY_BPS],
stats[libvirt.VIR_DOMAIN_JOB_MEMORY_CONSTANT],
- stats[libvirt.VIR_DOMAIN_JOB_COMPRESSION_BYTES],
+ stats.get(libvirt.VIR_DOMAIN_JOB_COMPRESSION_BYTES, 0),
# available since libvirt 1.3
stats.get('memory_dirty_rate', -1),
# available since libvirt 1.3
--
To view, visit https://gerrit.ovirt.org/65306
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1885940843d705ead161c13258f1979025a03873
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-4.0.5
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Michal Skrivanek <michal.skrivanek(a)redhat.com>
Gerrit-Reviewer: Milan Zamazal <mzamazal(a)redhat.com>
Hello Nir Soffer, Freddy Rolland,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/65305
to review the following change.
Change subject: spec: Require selinux-policy-targeted for CephFS
......................................................................
spec: Require selinux-policy-targeted for CephFS
RHEL bug https://bugzilla.redhat.com/1365640 describes an selinux
denial encountered when attempting to use CephFS as a POSIX
storage domain in oVirt.
This patch requires selinux-policy-3.13.1-60 which solves that issue.
Change-Id: I88fed5ee17a7f7f12cb4c442671c5d28dc83626e
Bug-Url: https://bugzilla.redhat.com/1303550
Signed-off-by: Allon Mureinik <amureini(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/64505
Continuous-Integration: Jenkins CI
Reviewed-by: Freddy Rolland <frolland(a)redhat.com>
Reviewed-by: Nir Soffer <nsoffer(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/65054
Reviewed-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm.spec.in
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/05/65305/1
diff --git a/vdsm.spec.in b/vdsm.spec.in
index d7544e7..9c2f613 100644
--- a/vdsm.spec.in
+++ b/vdsm.spec.in
@@ -225,7 +225,7 @@
Requires: lvm2 >= 7:2.02.130-5.el7_2.5
Requires: python >= 2.7.5-18.el7_1.1
Requires: policycoreutils-python
-Requires: selinux-policy-targeted >= 3.13.1-16.el7
+Requires: selinux-policy-targeted >= 3.13.1-60.el7
Requires: systemd >= 219-11.el7
%if ! 0%{?centos}
# TODO drop this if when this initscripts is available on centos
--
To view, visit https://gerrit.ovirt.org/65305
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I88fed5ee17a7f7f12cb4c442671c5d28dc83626e
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-4.0.5
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Freddy Rolland <frolland(a)redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer(a)redhat.com>
Hello Petr Horáček, Dan Kenigsberg, Edward Haas,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/65304
to review the following change.
Change subject: net: Consume ifcfg files that have a non vdsm standard name
......................................................................
net: Consume ifcfg files that have a non vdsm standard name
VDSM assumes that the ifcfg files which represent network devices are
named in the following format: ifcfg-<dev name>
If the host is set initially by Network Manager, the names of the files
do no correspond to the expected format.
This patch adjusts the ifcfg file name to the mentioned format and
erases any other ifcfg files that correspond to the same device.
This is not a NM friendly patch, it assumes that NM is not active while
setupNetworks is issued.
Change-Id: I0bf70ba936d5de1f17a90742644719216018f674
Bug-Url: https://bugzilla.redhat.com/1367378
Signed-off-by: Edward Haas <edwardh(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/64096
Continuous-Integration: Jenkins CI
Reviewed-by: Petr Horáček <phoracek(a)redhat.com>
Reviewed-by: Dan Kenigsberg <danken(a)redhat.com>
---
M lib/vdsm/network/configurators/ifcfg.py
M tests/network/func_net_basic_test.py
2 files changed, 70 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/04/65304/1
diff --git a/lib/vdsm/network/configurators/ifcfg.py b/lib/vdsm/network/configurators/ifcfg.py
index bd3eec1..f49693a 100644
--- a/lib/vdsm/network/configurators/ifcfg.py
+++ b/lib/vdsm/network/configurators/ifcfg.py
@@ -106,6 +106,8 @@
self.runningConfig = None
def configureBridge(self, bridge, **opts):
+ if not self.owned_device(bridge.name):
+ self.normalize_device_filename(bridge.name)
self.configApplier.addBridge(bridge, **opts)
ifdown(bridge.name)
if bridge.port:
@@ -114,12 +116,16 @@
_ifup(bridge)
def configureVlan(self, vlan, **opts):
+ if not self.owned_device(vlan.name):
+ self.normalize_device_filename(vlan.name)
self.configApplier.addVlan(vlan, **opts)
vlan.device.configure(**opts)
self._addSourceRoute(vlan)
_ifup(vlan)
def configureBond(self, bond, **opts):
+ if not self.owned_device(bond.name):
+ self.normalize_device_filename(bond.name)
self.configApplier.addBonding(bond, **opts)
if not vlans.is_vlanned(bond.name):
for slave in bond.slaves:
@@ -143,6 +149,9 @@
nicsToSet = frozenset(nic.name for nic in bond.slaves)
currentNics = frozenset(_netinfo.getNicsForBonding(bond.name))
nicsToAdd = nicsToSet - currentNics
+
+ if not self.owned_device(bond.name):
+ self.normalize_device_filename(bond.name)
# Create bond configuration in case it was a non ifcfg controlled bond.
# Needed to be before slave configuration for initscripts to add slave
@@ -181,6 +190,8 @@
'switch': 'legacy'})
def configureNic(self, nic, **opts):
+ if not self.owned_device(nic.name):
+ self.normalize_device_filename(nic.name)
self.configApplier.addNic(nic, **opts)
self._addSourceRoute(nic)
if nic.bond is None:
@@ -189,6 +200,8 @@
_ifup(nic)
def removeBridge(self, bridge):
+ if not self.owned_device(bridge.name):
+ self.normalize_device_filename(bridge.name)
DynamicSourceRoute.addInterfaceTracking(bridge)
ifdown(bridge.name)
self._removeSourceRoute(bridge, StaticSourceRoute)
@@ -198,6 +211,8 @@
bridge.port.remove()
def removeVlan(self, vlan):
+ if not self.owned_device(vlan.name):
+ self.normalize_device_filename(vlan.name)
DynamicSourceRoute.addInterfaceTracking(vlan)
ifdown(vlan.name)
self._removeSourceRoute(vlan, StaticSourceRoute)
@@ -219,6 +234,8 @@
DynamicSourceRoute.addInterfaceTracking(netEnt)
def removeBond(self, bonding):
+ if not self.owned_device(bonding.name):
+ self.normalize_device_filename(bonding.name)
to_be_removed = self._ifaceDownAndCleanup(bonding)
if to_be_removed:
self.configApplier.removeBonding(bonding.name)
@@ -248,6 +265,8 @@
self.configApplier.dropBridgeParameter(bonding.name)
def removeNic(self, nic, remove_even_if_used=False):
+ if not self.owned_device(nic.name):
+ self.normalize_device_filename(nic.name)
to_be_removed = self._ifaceDownAndCleanup(nic, remove_even_if_used)
if to_be_removed:
self.configApplier.removeNic(nic.name)
@@ -300,6 +319,33 @@
else:
return content.startswith(CONFFILE_HEADER_SIGNATURE)
+ @staticmethod
+ def normalize_device_filename(device):
+ """
+ Attempts to detect a device ifcfg file and rename it to a vdsm
+ supported format.
+ In case of multiple ifcfg files that treat the same device, all except
+ the first are deleted.
+ """
+ device_files = []
+ paths = glob.iglob(NET_CONF_PREF + '*')
+ for ifcfg_file in paths:
+ with open(ifcfg_file) as f:
+ for line in f:
+ if line.startswith('#'):
+ continue
+ key, value = line.rstrip().split('=', 1)
+ if value and value[0] == '\"' and value[-1] == '\"':
+ value = value[1:-1]
+ if key.upper() == 'DEVICE':
+ if value == device:
+ device_files.append(ifcfg_file)
+ break
+ if device_files:
+ os.rename(device_files[0], NET_CONF_PREF + device)
+ for filepath in device_files[1:]:
+ utils.rmFile(filepath)
+
class ConfigWriter(object):
CONFFILE_HEADER = (CONFFILE_HEADER_SIGNATURE + ' ' +
diff --git a/tests/network/func_net_basic_test.py b/tests/network/func_net_basic_test.py
index f937202..213187a 100644
--- a/tests/network/func_net_basic_test.py
+++ b/tests/network/func_net_basic_test.py
@@ -20,6 +20,8 @@
from __future__ import absolute_import
+import os
+
from nose.plugins.attrib import attr
from .netfunctestlib import NetFuncTestCase, NOCHK
@@ -70,6 +72,28 @@
__test__ = True
switch = 'legacy'
+ def test_add_net_based_on_device_with_non_standard_ifcfg_file(self):
+ with dummy_device() as nic:
+ NETCREATE = {NETWORK_NAME: {'nic': nic, 'switch': self.switch}}
+ NETREMOVE = {NETWORK_NAME: {'remove': True}}
+ with self.setupNetworks(NETCREATE, {}, NOCHK):
+ self.setupNetworks(NETREMOVE, {}, NOCHK)
+ self.assertNoNetwork(NETWORK_NAME)
+
+ NET_CONF_DIR = '/etc/sysconfig/network-scripts/'
+ NET_CONF_PREF = NET_CONF_DIR + 'ifcfg-'
+
+ nic_ifcfg_file = NET_CONF_PREF + nic
+ self.assertTrue(os.path.exists(nic_ifcfg_file))
+ nic_ifcfg_badname_file = nic_ifcfg_file + 'tail123'
+ os.rename(nic_ifcfg_file, nic_ifcfg_badname_file)
+
+ # Up until now, we have set the test setup, now start the test.
+ with self.setupNetworks(NETCREATE, {}, NOCHK):
+ self.assertNetwork(NETWORK_NAME, NETCREATE[NETWORK_NAME])
+ self.assertTrue(os.path.exists(nic_ifcfg_file))
+ self.assertFalse(os.path.exists(nic_ifcfg_badname_file))
+
@attr(type='functional', switch='ovs')
class NetworkBasicOvsTest(NetworkBasicTemplate):
--
To view, visit https://gerrit.ovirt.org/65304
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0bf70ba936d5de1f17a90742644719216018f674
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-4.0.5
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Edward Haas <edwardh(a)redhat.com>
Gerrit-Reviewer: Petr Horáček <phoracek(a)redhat.com>
Hello Petr Horáček, Dan Kenigsberg, Edward Haas,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/65303
to review the following change.
Change subject: net ifcfg: fix bond rollback
......................................................................
net ifcfg: fix bond rollback
When setupNetworks(NET, BOND) fails on NET configuration, BOND ifcfg
file is removed, but it still exists in the system. We have to remove
it manually like we do in removeBonding().
This must be backported to fix new functional tests on 4.0.
Change-Id: I5cea6ec71c913d74d95317ff7318259d64b40969
Signed-off-by: Petr Horáček <phoracek(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/59940
Reviewed-by: Edward Haas <edwardh(a)redhat.com>
Continuous-Integration: Jenkins CI
Reviewed-by: Dan Kenigsberg <danken(a)redhat.com>
Bug-Url: https://bugzilla.redhat.com/1374194
Reviewed-on: https://gerrit.ovirt.org/64509
---
M lib/vdsm/network/configurators/ifcfg.py
1 file changed, 16 insertions(+), 4 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/03/65303/1
diff --git a/lib/vdsm/network/configurators/ifcfg.py b/lib/vdsm/network/configurators/ifcfg.py
index 710dec1..bd3eec1 100644
--- a/lib/vdsm/network/configurators/ifcfg.py
+++ b/lib/vdsm/network/configurators/ifcfg.py
@@ -754,6 +754,10 @@
if os.path.exists('/sys/class/net/%s/bridge' % dev):
# ifdown is not enough to remove nicless bridges
commands.execCmd([constants.EXT_BRCTL, 'delbr', dev])
+ if _is_bond_name(dev):
+ if _is_running_bond(dev):
+ with open(netinfo_bonding.BONDING_MASTERS, 'w') as f:
+ f.write("-%s\n" % dev)
def start_devices(device_ifcfgs):
@@ -761,10 +765,8 @@
try:
# this is an ugly way to check if this is a bond but picking into
# the ifcfg files is even worse.
- if dev.startswith('bond') and '.' not in dev:
- with open(netinfo_bonding.BONDING_MASTERS) as info:
- names = info.read().split()
- if dev not in names:
+ if _is_bond_name(dev):
+ if not _is_running_bond(dev):
with open(netinfo_bonding.BONDING_MASTERS, 'w') as masters:
masters.write('+%s\n' % dev)
_exec_ifup_by_name(dev)
@@ -773,6 +775,16 @@
exc_info=True)
+def _is_bond_name(dev):
+ return dev.startswith('bond') and '.' not in dev
+
+
+def _is_running_bond(bond):
+ with open(netinfo_bonding.BONDING_MASTERS) as info:
+ names = info.read().split()
+ return bond in names
+
+
def _sort_device_ifcfgs(device_ifcfgs):
devices = {'Bridge': [],
'Vlan': [],
--
To view, visit https://gerrit.ovirt.org/65303
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5cea6ec71c913d74d95317ff7318259d64b40969
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-4.0.5
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Edward Haas <edwardh(a)redhat.com>
Gerrit-Reviewer: Petr Horáček <phoracek(a)redhat.com>
Nir Soffer has uploaded a new change for review.
Change subject: clientIF: Fix reactor life cycle
......................................................................
clientIF: Fix reactor life cycle
Previously we created the reactor when initializing clientIF, and
started the reactor thread in clientIF.start(). However, the reactor was
closed from the acceptor. This works since we stop both the acceptor and
reactor during shutdown, but it is wrong design, leftover from the time
the reactor was created by the acceptor.
Things should be started and stopped in the same place. If clientIF is
starting the reactor, it should also stop it. The reactor cannot depend
on the acceptor using it.
This patch fixes the wrong dependency by stopping the reactor in
clientIF.prepareForShutdown.
Change-Id: I319d06e8cffd86f87417053137f94eab90a4998d
Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
---
M lib/vdsm/protocoldetector.py
M tests/protocoldetectorTests.py
M vdsm/clientIF.py
3 files changed, 3 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/88/65188/1
diff --git a/lib/vdsm/protocoldetector.py b/lib/vdsm/protocoldetector.py
index e505aa7..09226b9 100644
--- a/lib/vdsm/protocoldetector.py
+++ b/lib/vdsm/protocoldetector.py
@@ -208,7 +208,6 @@
def stop(self):
self.log.debug("Stopping Acceptor")
self._acceptor.close()
- self._reactor.stop()
class _CannotDetectProtocol(Exception):
diff --git a/tests/protocoldetectorTests.py b/tests/protocoldetectorTests.py
index 887a8c6..d30a6df 100644
--- a/tests/protocoldetectorTests.py
+++ b/tests/protocoldetectorTests.py
@@ -112,6 +112,8 @@
def tearDown(self):
if self.acceptor:
self.acceptor.stop()
+ if self.reactor:
+ self.reactor.stop()
# Testing
diff --git a/vdsm/clientIF.py b/vdsm/clientIF.py
index fefc915..6404e27 100644
--- a/vdsm/clientIF.py
+++ b/vdsm/clientIF.py
@@ -289,6 +289,7 @@
self._acceptor.stop()
for binding in self.bindings.values():
binding.stop()
+ self._reactor.stop()
self._enabled = False
secret.clear()
--
To view, visit https://gerrit.ovirt.org/65188
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I319d06e8cffd86f87417053137f94eab90a4998d
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer(a)redhat.com>
Francesco Romani has posted comments on this change.
Change subject: tests: Add tests for poll and wait failures
......................................................................
Patch Set 6: Code-Review+1
--
To view, visit https://gerrit.ovirt.org/65294
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I8674c9c3c2118041c74213cd8ce0d383086d6cbf
Gerrit-PatchSet: 6
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer(a)redhat.com>
Gerrit-Reviewer: Adam Litke <alitke(a)redhat.com>
Gerrit-Reviewer: Allon Mureinik <amureini(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Jenkins CI
Gerrit-Reviewer: Nir Soffer <nsoffer(a)redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: gerrit-hooks <automation(a)ovirt.org>
Gerrit-HasComments: No
gerrit-hooks has posted comments on this change.
Change subject: tests: Add tests for poll and wait failures
......................................................................
Patch Set 6:
* Update tracker: IGNORE, no Bug-Url found
* Check Bug-Url::WARN, no bug url found, make sure header matches 'Bug-Url: ' and is a valid url.
* Check merged to previous::IGNORE, Not in stable branch (['ovirt-3.6', 'ovirt-4.0'])
--
To view, visit https://gerrit.ovirt.org/65294
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I8674c9c3c2118041c74213cd8ce0d383086d6cbf
Gerrit-PatchSet: 6
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer(a)redhat.com>
Gerrit-Reviewer: Adam Litke <alitke(a)redhat.com>
Gerrit-Reviewer: Allon Mureinik <amureini(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Jenkins CI
Gerrit-Reviewer: Nir Soffer <nsoffer(a)redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: gerrit-hooks <automation(a)ovirt.org>
Gerrit-HasComments: No