Change in vdsm[master]: qemuimg: add backing file to convert
by Federico Simoncelli
Federico Simoncelli has uploaded a new change for review.
Change subject: qemuimg: add backing file to convert
......................................................................
qemuimg: add backing file to convert
This patch adds the support for the backing file in the convert qemu-img
command.
Change-Id: I2d6f254f5750fa249809469ecc764a73c91914d4
Signed-off-by: Federico Simoncelli <fsimonce(a)redhat.com>
---
M lib/vdsm/qemuimg.py
M tests/qemuimgTests.py
2 files changed, 83 insertions(+), 9 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/54/33354/1
diff --git a/lib/vdsm/qemuimg.py b/lib/vdsm/qemuimg.py
index e845ba3..7b0d5a3 100644
--- a/lib/vdsm/qemuimg.py
+++ b/lib/vdsm/qemuimg.py
@@ -183,8 +183,21 @@
return check
-def convert(srcImage, dstImage, stop, srcFormat=None, dstFormat=None):
+def _qcow2_backing_opts(backing, backingFormat):
+ options = []
+
+ options.append('backing_file=' + str(backing))
+ if backingFormat:
+ options.append('backing_fmt=' + str(backingFormat))
+
+ return options
+
+
+def convert(srcImage, dstImage, stop, srcFormat=None, dstFormat=None,
+ backing=None, backingFormat=None):
cmd = [_qemuimg.cmd, "convert", "-t", "none"]
+ options = []
+ cwdPath = None
if srcFormat:
cmd.extend(("-f", srcFormat))
@@ -193,13 +206,26 @@
if dstFormat:
cmd.extend(("-O", dstFormat))
- if dstFormat == FORMAT.QCOW2 and _supports_qcow2_compat('convert'):
- cmd.extend(('-o', 'compat=' + QCOW2_COMPAT))
+
+ if dstFormat == FORMAT.QCOW2:
+ if _supports_qcow2_compat('convert'):
+ options.append('compat=' + QCOW2_COMPAT)
+
+ if backing:
+ if not os.path.isabs(backing):
+ cwdPath = os.path.dirname(srcImage)
+
+ options.extend(
+ _qcow2_backing_opts(backing, backingFormat))
+
+ if options:
+ cmd.extend(('-o', ','.join(options)))
cmd.append(dstImage)
(rc, out, err) = utils.watchCmd(
- cmd, stop=stop, nice=utils.NICENESS.HIGH, ioclass=utils.IOCLASS.IDLE)
+ cmd, cwd=cwdPath, stop=stop, nice=utils.NICENESS.HIGH,
+ ioclass=utils.IOCLASS.IDLE)
if rc != 0:
raise QImgError(rc, out, err)
diff --git a/tests/qemuimgTests.py b/tests/qemuimgTests.py
index 73d897b..6e2adc9 100644
--- a/tests/qemuimgTests.py
+++ b/tests/qemuimgTests.py
@@ -185,21 +185,69 @@
with FakeCmd(utils, 'watchCmd', convert):
qemuimg.convert('src', 'dst', True, dstFormat='qcow2')
- def test_qcow2_compat_supported(self):
- def qcow2_compat_supported(cmd, **kw):
- self.check_supports_qcow2_compat(cmd, **kw)
- return 0, 'Supported options:\ncompat ...\n', ''
+ def qcow2_compat_supported(self, cmd, **kw):
+ self.check_supports_qcow2_compat(cmd, **kw)
+ return 0, 'Supported options:\ncompat ...\n', ''
+ def test_qcow2_compat_supported(self):
def convert(cmd, **kw):
expected = [QEMU_IMG, 'convert', '-t', 'none', 'src', '-O',
'qcow2', '-o', 'compat=0.10', 'dst']
self.assertEqual(cmd, expected)
return 0, '', ''
- with FakeCmd(utils, 'execCmd', qcow2_compat_supported):
+ with FakeCmd(utils, 'execCmd', self.qcow2_compat_supported):
with FakeCmd(utils, 'watchCmd', convert):
qemuimg.convert('src', 'dst', True, dstFormat='qcow2')
def check_supports_qcow2_compat(self, cmd, **kw):
expected = [QEMU_IMG, 'convert', '-O', 'qcow2', '-o', '?', '/dev/null']
self.assertEqual(cmd, expected)
+
+ def test_qcow2_no_backing_file(self):
+ def qcow2_no_backing_file(cmd, **kw):
+ assert cmd == [qemuimg._qemuimg.cmd, 'convert', '-t', 'none',
+ 'source', '-O', 'qcow2', '-o', 'compat=0.10',
+ 'target']
+ return 0, '', ''
+
+ with FakeCmd(utils, 'execCmd', self.qcow2_compat_supported):
+ with FakeCmd(utils, 'watchCmd', qcow2_no_backing_file):
+ qemuimg.convert('source', 'target', None, dstFormat='qcow2')
+
+ def test_qcow2_backing_file(self):
+ def qcow2_backing_file(cmd, **kw):
+ assert cmd == [qemuimg._qemuimg.cmd, 'convert', '-t', 'none',
+ 'source', '-O', 'qcow2', '-o',
+ 'compat=0.10,backing_file=backing', 'target']
+ return 0, '', ''
+
+ with FakeCmd(utils, 'execCmd', self.qcow2_compat_supported):
+ with FakeCmd(utils, 'watchCmd', qcow2_backing_file):
+ qemuimg.convert('source', 'target', None, dstFormat='qcow2',
+ backing='backing')
+
+ def test_qcow2_backing_format(self):
+ def qcow2_backing_format(cmd, **kw):
+ assert cmd == [qemuimg._qemuimg.cmd, 'convert', '-t', 'none',
+ 'source', '-O', 'qcow2', '-o', 'compat=0.10',
+ 'target']
+ return 0, '', ''
+
+ with FakeCmd(utils, 'execCmd', self.qcow2_compat_supported):
+ with FakeCmd(utils, 'watchCmd', qcow2_backing_format):
+ qemuimg.convert('source', 'target', None, dstFormat='qcow2',
+ backingFormat='qcow2')
+
+ def test_qcow2_backing_file_and_format(self):
+ def qcow2_backing_format(cmd, **kw):
+ assert cmd == [qemuimg._qemuimg.cmd, 'convert', '-t', 'none',
+ 'source', '-O', 'qcow2', '-o',
+ 'compat=0.10,backing_file=backing,'
+ 'backing_fmt=qcow2', 'target']
+ return 0, '', ''
+
+ with FakeCmd(utils, 'execCmd', self.qcow2_compat_supported):
+ with FakeCmd(utils, 'watchCmd', qcow2_backing_format):
+ qemuimg.convert('source', 'target', None, dstFormat='qcow2',
+ backing='backing', backingFormat='qcow2')
--
To view, visit http://gerrit.ovirt.org/33354
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2d6f254f5750fa249809469ecc764a73c91914d4
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <fsimonce(a)redhat.com>
9 years, 6 months
Change in vdsm[master]: Makefile: add vdsm-reg-setup.in to pyflakes
by Douglas Schilling Landgraf
Douglas Schilling Landgraf has uploaded a new change for review.
Change subject: Makefile: add vdsm-reg-setup.in to pyflakes
......................................................................
Makefile: add vdsm-reg-setup.in to pyflakes
We should run pyflakes in vdsm-reg-setup.in as well.
Change-Id: I6be99965f3249374c99c1d4ab71145d571c13921
Signed-off-by: Douglas Schilling Landgraf <dougsland(a)redhat.com>
---
M Makefile.am
1 file changed, 2 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/25/27025/1
diff --git a/Makefile.am b/Makefile.am
index a7fc23f..ea3a4c3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -66,7 +66,8 @@
check-local:
find . -path './.git' -prune -type f -o \
- -name '*.py' -o -name '*.py.in' | xargs $(PYFLAKES) | \
+ -name '*.py' -o -name '*.py.in' -o \
+ -name 'vdsm-reg-setup.in' | xargs $(PYFLAKES) | \
grep -w -v $(SKIP_PYFLAKES_ERR) | \
while read LINE; do echo "$$LINE"; false; done
$(PEP8) --version
--
To view, visit http://gerrit.ovirt.org/27025
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6be99965f3249374c99c1d4ab71145d571c13921
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Douglas Schilling Landgraf <dougsland(a)redhat.com>
9 years, 6 months
Change in vdsm[ovirt-3.5]: Support ioTune values >2^31 in getStats over xml-rpc
by Martin Sivak
Martin Sivák has uploaded a new change for review.
Change subject: Support ioTune values >2^31 in getStats over xml-rpc
......................................................................
Support ioTune values >2^31 in getStats over xml-rpc
This fixes issue with getStats over xml-rpc when ioTune value
is accidentally increased beyond cca 2e9 (2GB per second).
Change-Id: If5005d7fdc5397df2480fa8d0c15b003a52e8626
Signed-off-by: Martin Sivak <msivak(a)redhat.com>
---
M vdsm/virt/vm.py
1 file changed, 8 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/33/30233/1
diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 50c0fa2..8ecb3fe 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -2823,7 +2823,14 @@
except Exception:
self.log.error("Error fetching vm stats", exc_info=True)
for var in decStats:
- if type(decStats[var]) is not dict:
+ if var == "ioTune":
+ # Convert ioTune numbers to strings to avoid xml-rpc issue
+ # with numbers bigger than int32_t
+ for ioTune in decStats["ioTune"]:
+ ioTune["ioTune"] = dict((k, utils.convertToStr(v)) for k, v
+ in ioTune["ioTune"].iteritems())
+ stats[var] = decStats[var]
+ elif type(decStats[var]) is not dict:
stats[var] = utils.convertToStr(decStats[var])
elif var in ('network', 'balloonInfo', 'vmJobs',
'vNodeRuntimeInfo'):
--
To view, visit http://gerrit.ovirt.org/30233
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If5005d7fdc5397df2480fa8d0c15b003a52e8626
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.5
Gerrit-Owner: Martin Sivák <msivak(a)redhat.com>
9 years, 6 months
Change in vdsm[master]: utils: Use ovirt node for persist files
by ykaplan@redhat.com
Yeela Kaplan has uploaded a new change for review.
Change subject: utils: Use ovirt node for persist files
......................................................................
utils: Use ovirt node for persist files
Change-Id: Ice245d54497862f9fb86cb32acd13b8a790026b2
Signed-off-by: Yeela Kaplan <ykaplan(a)redhat.com>
---
M lib/vdsm/utils.py
1 file changed, 9 insertions(+), 5 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/68/33468/1
diff --git a/lib/vdsm/utils.py b/lib/vdsm/utils.py
index e08ec3c..d619e98 100644
--- a/lib/vdsm/utils.py
+++ b/lib/vdsm/utils.py
@@ -53,6 +53,15 @@
from cpopen import CPopen
from . import constants
+try:
+ from ovirt.node.utils.fs import Config
+ cfg = Config()
+ persistFile = cfg.persist
+ del cfg
+except ImportError:
+ persistFile = lambda name: None
+
+
# Buffsize is 1K because I tested it on some use cases and 1K was fastest. If
# you find this number to be a bottleneck in any way you are welcome to change
# it
@@ -141,11 +150,6 @@
logging.warning("Directory: %s already removed", directoryToRemove)
else:
raise
-
-
-def persistFile(name):
- if isOvirtNode():
- execCmd([constants.EXT_PERSIST, name], sudo=True)
def _parseMemInfo(lines):
--
To view, visit http://gerrit.ovirt.org/33468
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ice245d54497862f9fb86cb32acd13b8a790026b2
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yeela Kaplan <ykaplan(a)redhat.com>
9 years, 6 months
Change in vdsm[master]: supervdsm: Switch multiprocessing to CPopen
by dkuznets@redhat.com
Dima Kuznetsov has uploaded a new change for review.
Change subject: supervdsm: Switch multiprocessing to CPopen
......................................................................
supervdsm: Switch multiprocessing to CPopen
Default implementation of multiprocessing.Process used Popen to create
processes, this resulted in zombies being present after the process was
done. This change monkeypatches Process to use cpopen.
Change-Id: I5333caf7a1162c5d783f556bb9204fb74d1ab469
Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=841486
Signed-off-by: Dima Kuznetsov <dkuznets(a)redhat.com>
---
M vdsm/supervdsmServer
1 file changed, 2 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/15/28915/1
diff --git a/vdsm/supervdsmServer b/vdsm/supervdsmServer
index f9395eb..0a88a21 100755
--- a/vdsm/supervdsmServer
+++ b/vdsm/supervdsmServer
@@ -44,7 +44,9 @@
log.warn("Could not init proper logging", exc_info=True)
from storage import fuser
+import cpopen
from multiprocessing import Pipe, Process
+Process._Popen = cpopen.CPopen
try:
from gluster import listPublicFunctions
_glusterEnabled = True
--
To view, visit http://gerrit.ovirt.org/28915
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5333caf7a1162c5d783f556bb9204fb74d1ab469
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dima Kuznetsov <dkuznets(a)redhat.com>
9 years, 6 months
Change in vdsm[master]: sampling: rename generic window constant
by fromani@redhat.com
Francesco Romani has uploaded a new change for review.
Change subject: sampling: rename generic window constant
......................................................................
sampling: rename generic window constant
Until we have support for one element sampling windows,
we make use of this constant.
This patch just renames it to make it usable for generic samplings.
Change-Id: Ibb9351170c0b0971d01e0c35ed434f0260a12fd9
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm/virt/vm.py
1 file changed, 2 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/07/31607/1
diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 5b607b5..ad1ef2f 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -195,7 +195,7 @@
# CPU tune sampling window
# minimum supported value is 2
- CPU_TUNE_SAMPLING_WINDOW = 2
+ GENERIC_SAMPLING_WINDOW = 2
# This flag will prevent excessive log flooding when running
# on libvirt with no support for metadata xml elements.
@@ -258,7 +258,7 @@
AdvancedStatsFunction(
self._sampleCpuTune,
config.getint('vars', 'vm_sample_cpu_tune_interval'),
- self.CPU_TUNE_SAMPLING_WINDOW))
+ self.GENERIC_SAMPLING_WINDOW))
self.addStatsFunction(
self.highWrite, self.updateVolumes, self.sampleCpu,
--
To view, visit http://gerrit.ovirt.org/31607
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb9351170c0b0971d01e0c35ed434f0260a12fd9
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
9 years, 7 months
Change in vdsm[master]: net_tests: Move network unit tests into package
by asegurap@redhat.com
Antoni Segura Puimedon has uploaded a new change for review.
Change subject: net_tests: Move network unit tests into package
......................................................................
net_tests: Move network unit tests into package
This patch brings together the network unit tests under a directory
to improve the organization and as a possible step for a future
cohesive network package with code and tests.
Change-Id: I6960ce365d67ab4bb0a5475d7957e6117bef7e60
Signed-off-by: Antoni S. Puimedon <asegurap(a)redhat.com>
---
M configure.ac
M tests/Makefile.am
A tests/network/Makefile.am
R tests/network/apiTests.py
R tests/network/ipwrapperTests.py
R tests/network/modelsTests.py
R tests/network/netconfTests.py
R tests/network/netconfpersistenceTests.py
R tests/network/netinfoTests.py
R tests/network/netmaskconversions
R tests/network/tcTests.py
R tests/network/tc_filter_show.out
M tests/run_tests_local.sh.in
13 files changed, 63 insertions(+), 15 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/74/26874/1
diff --git a/configure.ac b/configure.ac
index 12828be..944e17f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -267,6 +267,7 @@
lib/zombiereaper/Makefile
tests/Makefile
tests/functional/Makefile
+ tests/network/Makefile
vds_bootstrap/Makefile
vdsm-tool/Makefile
vdsm/Makefile
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 39c6cad..6fb834f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2012 Red Hat, Inc.
+# Copyright 2012-2014 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
include $(top_srcdir)/build-aux/Makefile.subs
-SUBDIRS = functional
+SUBDIRS = functional network
test_modules = \
alignmentScanTests.py \
@@ -29,7 +29,6 @@
cPopenTests.py \
capsTests.py \
clientifTests.py \
- configNetworkTests.py \
fileVolumeTests.py \
fileUtilTests.py \
fuserTests.py \
@@ -38,7 +37,6 @@
glusterTestData.py \
guestagentTests.py \
hooksTests.py \
- ipwrapperTests.py \
iscsiTests.py \
jsonRpcTests.py \
jsonRpcUtils.py \
@@ -52,10 +50,6 @@
mkimageTests.py \
monkeypatchTests.py \
mountTests.py \
- netconfpersistenceTests.py \
- netconfTests.py \
- netinfoTests.py \
- netmodelsTests.py \
outOfProcessTests.py \
parted_utils_tests.py \
permutationTests.py \
@@ -66,7 +60,6 @@
securableTests.py \
sslTests.py \
storageMailboxTests.py \
- tcTests.py \
toolTests.py \
transportWrapperTests.py \
utilsTests.py \
@@ -111,8 +104,6 @@
glusterVolumeTasks.xml \
lvs_3386c6f2-926f-42c4-839c-38287fac8998.out \
mem_info.out \
- netmaskconversions \
- tc_filter_show.out \
$(NULL)
dist_vdsmtests_PYTHON = \
diff --git a/tests/network/Makefile.am b/tests/network/Makefile.am
new file mode 100644
index 0000000..f241a4b
--- /dev/null
+++ b/tests/network/Makefile.am
@@ -0,0 +1,53 @@
+#
+# Copyright 2014 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Refer to the README and COPYING files for full details of the license
+#
+
+net_testsdir = ${vdsmtestsdir}/network
+
+dist_net_tests_PYTHON = \
+ apiTests.py \
+ ipwrapperTests.py \
+ netconfpersistenceTests.py \
+ netconfTests.py \
+ netinfoTests.py \
+ modelsTests.py \
+ tcTests.py \
+ $(NULL)
+
+MODULES = \
+ network/apiTests.py \
+ network/ipwrapperTests.py \
+ network/netconfpersistenceTests.py \
+ network/netconfTests.py \
+ network/netinfoTests.py \
+ network/modelsTests.py \
+ network/tcTests.py \
+ $(NULL)
+
+
+
+dist_net_tests_DATA = \
+ netmaskconversions \
+ tc_filter_show.out \
+ $(NULL)
+
+check-local:
+ @echo '*** Running network tests. To skip this step place NOSE_EXCLUDE=.* ***'
+ @echo '*** into your environment. Do not submit untested code! ***'
+ $(top_srcdir)/tests/run_tests_local.sh $(MODULES)
diff --git a/tests/configNetworkTests.py b/tests/network/apiTests.py
similarity index 100%
rename from tests/configNetworkTests.py
rename to tests/network/apiTests.py
diff --git a/tests/ipwrapperTests.py b/tests/network/ipwrapperTests.py
similarity index 100%
rename from tests/ipwrapperTests.py
rename to tests/network/ipwrapperTests.py
diff --git a/tests/netmodelsTests.py b/tests/network/modelsTests.py
similarity index 98%
rename from tests/netmodelsTests.py
rename to tests/network/modelsTests.py
index a2a3ee3..5da708b 100644
--- a/tests/netmodelsTests.py
+++ b/tests/network/modelsTests.py
@@ -34,7 +34,7 @@
from monkeypatch import MonkeyPatch
-class TestNetmodels(TestCaseBase):
+class TestModels(TestCaseBase):
def testIsVlanIdValid(self):
vlanIds = ('badValue', Vlan.MAX_ID + 1)
diff --git a/tests/netconfTests.py b/tests/network/netconfTests.py
similarity index 100%
rename from tests/netconfTests.py
rename to tests/network/netconfTests.py
diff --git a/tests/netconfpersistenceTests.py b/tests/network/netconfpersistenceTests.py
similarity index 100%
rename from tests/netconfpersistenceTests.py
rename to tests/network/netconfpersistenceTests.py
diff --git a/tests/netinfoTests.py b/tests/network/netinfoTests.py
similarity index 100%
rename from tests/netinfoTests.py
rename to tests/network/netinfoTests.py
diff --git a/tests/netmaskconversions b/tests/network/netmaskconversions
similarity index 100%
rename from tests/netmaskconversions
rename to tests/network/netmaskconversions
diff --git a/tests/tcTests.py b/tests/network/tcTests.py
similarity index 100%
rename from tests/tcTests.py
rename to tests/network/tcTests.py
diff --git a/tests/tc_filter_show.out b/tests/network/tc_filter_show.out
similarity index 100%
rename from tests/tc_filter_show.out
rename to tests/network/tc_filter_show.out
diff --git a/tests/run_tests_local.sh.in b/tests/run_tests_local.sh.in
index 0a229c0..787d9b2 100644
--- a/tests/run_tests_local.sh.in
+++ b/tests/run_tests_local.sh.in
@@ -3,8 +3,11 @@
PYTHON_EXE="@PYTHON@"
fi
-if [ ! -f @top_srcdir(a)/tests/jsonrpc-tests.server.crt ] || [ ! -f @top_srcdir(a)/tests/jsonrpc-tests.server.csr ] || [ ! -f @top_srcdir(a)/tests/jsonrpc-tests.server.key ]; then
- @top_srcdir(a)/tests/makecert.sh
+# The following line is taken from http://stackoverflow.com/a/246128/206009
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+if [ ! -f "$DIR/jsonrpc-tests.server.crt" ] || [ ! -f "$DIR/jsonrpc-tests.server.csr" ] || [ ! -f "$DIR/jsonrpc-tests.server.key" ]; then
+ $DIR/makecert.sh
fi
-PYTHONDONTWRITEBYTECODE=1 LC_ALL=C PYTHONPATH="@top_srcdir@/lib:@top_srcdir@/vdsm:@top_srcdir@/client:@top_srcdir@/vdsm_api:$PYTHONPATH" "$PYTHON_EXE" @top_srcdir(a)/tests/testrunner.py --local-modules $@
+PYTHONDONTWRITEBYTECODE=1 LC_ALL=C PYTHONPATH="$DIR/../lib:$DIR/../vdsm:$DIR/../client:$DIR/../vdsm_api:$PYTHONPATH" "$PYTHON_EXE" $DIR/testrunner.py --local-modules $@
--
To view, visit http://gerrit.ovirt.org/26874
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6960ce365d67ab4bb0a5475d7957e6117bef7e60
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap(a)redhat.com>
9 years, 7 months
Change in vdsm[master]: cleanup: drop several unused local variables
by asegurap@redhat.com
Antoni Segura Puimedon has uploaded a new change for review.
Change subject: cleanup: drop several unused local variables
......................................................................
cleanup: drop several unused local variables
Change-Id: Ib81c292f900154819e8852c21ae389c323034999
Signed-off-by: Antoni S. Puimedon <asegurap(a)redhat.com>
---
M client/vdsClient.py
M lib/vdsm/netinfo.py
M lib/yajsonrpc/protonReactor.py
M tests/functional/networkTests.py
M tests/functional/virtTests.py
M tests/hookValidation.py
M tests/hooksTests.py
M tests/jsonRpcTests.py
M tests/miscTests.py
M tests/testValidation.py
M tests/vmTests.py
M vds_bootstrap/setup
M vds_bootstrap/vds_bootstrap.py
M vds_bootstrap/vds_bootstrap_complete.py
M vdsm/storage/hsm.py
M vdsm/storage/iscsi.py
M vdsm/storage/misc.py
M vdsm/storage/remoteFileHandler.py
M vdsm/storage/resourceManager.py
M vdsm/storage/sp.py
M vdsm/storage/task.py
M vdsm/vm.py
M vdsm_api/Bridge.py
M vdsm_api/process-schema.py
M vdsm_api/vdsmapi.py
25 files changed, 23 insertions(+), 49 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/35/20535/1
diff --git a/client/vdsClient.py b/client/vdsClient.py
index 37dd7cb..4c09546 100644
--- a/client/vdsClient.py
+++ b/client/vdsClient.py
@@ -842,7 +842,6 @@
masterDom = args[3]
domList = args[4].split(",")
mVer = int(args[5])
- pool = None
if len(args) > 6:
pool = self.s.createStoragePool(poolType, spUUID,
poolName, masterDom,
diff --git a/lib/vdsm/netinfo.py b/lib/vdsm/netinfo.py
index e8f2b8d..cf70089 100644
--- a/lib/vdsm/netinfo.py
+++ b/lib/vdsm/netinfo.py
@@ -93,8 +93,6 @@
The list of nics is built by filtering out nics defined
as hidden, fake or hidden bonds (with related nics'slaves).
"""
- res = []
-
def isHiddenNic(device):
"""
Returns boolean given the device name stating
@@ -397,7 +395,7 @@
"Convert an integer to the corresponding ip address in the dot-notation"
ip_address = []
- for i in xrange(4):
+ for _ in xrange(4):
ip_num, ip_val = divmod(ip_num, 256)
ip_address.append(str(ip_val))
diff --git a/lib/yajsonrpc/protonReactor.py b/lib/yajsonrpc/protonReactor.py
index 557600c..7892e3c 100644
--- a/lib/yajsonrpc/protonReactor.py
+++ b/lib/yajsonrpc/protonReactor.py
@@ -376,7 +376,6 @@
proton.pn_link_advance(link)
def createListener(self, address, acceptHandler):
- host, port = address
return self._scheduleOp(True, self._createListener, address,
acceptHandler)
diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py
index a9149be..ba93343 100644
--- a/tests/functional/networkTests.py
+++ b/tests/functional/networkTests.py
@@ -377,7 +377,7 @@
for index in range(VLAN_COUNT)]
with dummyIf(1) as nics:
firstVlan, firstVlanId = NET_VLANS[0]
- status, msg = self.vdsm_net.addNetwork(firstVlan, vlan=firstVlanId,
+ _ = self.vdsm_net.addNetwork(firstVlan, vlan=firstVlanId,
bond=BONDING_NAME,
nics=nics, opts=opts)
with nonChangingOperstate(BONDING_NAME):
diff --git a/tests/functional/virtTests.py b/tests/functional/virtTests.py
index cdb695a..85781f7 100644
--- a/tests/functional/virtTests.py
+++ b/tests/functional/virtTests.py
@@ -83,7 +83,7 @@
def _genInitramfs():
fd, path = tempfile.mkstemp()
cmd = [_mkinitrd.cmd, "-f", path, _kernelVer]
- rc, out, err = execCmd(cmd, sudo=False)
+ _ = execCmd(cmd, sudo=False)
os.chmod(path, 0o644)
return path
diff --git a/tests/hookValidation.py b/tests/hookValidation.py
index 80e7239..208ed35 100644
--- a/tests/hookValidation.py
+++ b/tests/hookValidation.py
@@ -67,8 +67,6 @@
cookie_file = _createHookScript(hook_path, hook_name, hook_script)
- output = None
-
try:
kwargs['hook_cookiefile'] = cookie_file
output = test_function(*args, **kwargs)
diff --git a/tests/hooksTests.py b/tests/hooksTests.py
index 1018a4e..ddb3530 100644
--- a/tests/hooksTests.py
+++ b/tests/hooksTests.py
@@ -42,7 +42,7 @@
echo -n %s >> "$_hook_domxml"
"""
scripts = [tempfile.NamedTemporaryFile(dir=dirName, delete=False)
- for n in xrange(Q)]
+ for _ in xrange(Q)]
scripts.sort(key=lambda f: f.name)
for n, script in enumerate(scripts):
script.write(code % n)
diff --git a/tests/jsonRpcTests.py b/tests/jsonRpcTests.py
index a7b565f..00025ae 100644
--- a/tests/jsonRpcTests.py
+++ b/tests/jsonRpcTests.py
@@ -85,7 +85,7 @@
def serve(reactor):
try:
reactor.process_requests()
- except socket.error as e:
+ except socket.error:
pass
except Exception as e:
self.log.error("Reactor died unexpectedly", exc_info=True)
diff --git a/tests/miscTests.py b/tests/miscTests.py
index c836e55..1a9a16c 100644
--- a/tests/miscTests.py
+++ b/tests/miscTests.py
@@ -432,7 +432,7 @@
os.chmod(dstPath, 0o666)
#Copy
- rc, out, err = misc.ddWatchCopy(srcPath, dstPath, None, len(data))
+ _ = misc.ddWatchCopy(srcPath, dstPath, None, len(data))
#Get copied data
readData = open(dstPath).read()
@@ -448,7 +448,7 @@
fd, path = tempfile.mkstemp()
try:
- for i in xrange(repetitions):
+ for _ in xrange(repetitions):
os.write(fd, data)
self.assertEquals(os.stat(path).st_size, misc.MEGA)
except:
@@ -474,7 +474,7 @@
self.assertEquals(os.stat(path).st_size, misc.MEGA * 2)
with open(path, "r") as f:
- for i in xrange(repetitions):
+ for _ in xrange(repetitions):
self.assertEquals(f.read(len(data)), data)
finally:
os.unlink(path)
@@ -501,7 +501,7 @@
misc.MEGA * 2 + len(add_data))
with open(path, "r") as f:
- for i in xrange(repetitions):
+ for _ in xrange(repetitions):
self.assertEquals(f.read(len(data)), data)
# Checking the additional data
self.assertEquals(f.read(len(add_data)), add_data)
@@ -535,7 +535,7 @@
os.chmod(dstPath, 0o666)
#Copy
- rc, out, err = misc.ddWatchCopy(srcPath, dstPath, None, len(data))
+ _ = misc.ddWatchCopy(srcPath, dstPath, None, len(data))
#Get copied data
readData = open(dstPath).read()
diff --git a/tests/testValidation.py b/tests/testValidation.py
index d370971..92790d9 100644
--- a/tests/testValidation.py
+++ b/tests/testValidation.py
@@ -110,7 +110,7 @@
def wrapper(*args, **kwargs):
if not os.path.exists('/sys/module/dummy'):
cmd_modprobe = [modprobe.cmd, "dummy"]
- rc, out, err = utils.execCmd(cmd_modprobe, sudo=True)
+ _ = utils.execCmd(cmd_modprobe, sudo=True)
return f(*args, **kwargs)
return wrapper
diff --git a/tests/vmTests.py b/tests/vmTests.py
index 1f69f0a..9d91723 100644
--- a/tests/vmTests.py
+++ b/tests/vmTests.py
@@ -390,7 +390,7 @@
driveInput.update({'shared': 'UNKNOWN-VALUE'})
with self.assertRaises(ValueError):
- drive = vm.Drive({}, self.log, **driveInput)
+ _ = vm.Drive({}, self.log, **driveInput)
def testDriveXML(self):
SERIAL = '54-a672-23e5b495a9ea'
diff --git a/vds_bootstrap/setup b/vds_bootstrap/setup
index 778dc12..701df8b 100755
--- a/vds_bootstrap/setup
+++ b/vds_bootstrap/setup
@@ -63,7 +63,6 @@
return False, HYPERVISOR_RELEASE_FILE + ", " + REDHAT_RELEASE_FILE
def get_id_line():
- line = ''
RELEASE_FILE = None
try:
@@ -193,7 +192,6 @@
import calendar
return_value = False
- ticket = None
try:
time_struct = time.strptime(systime, '%Y-%m-%dT%H:%M:%S')
diff --git a/vds_bootstrap/vds_bootstrap.py b/vds_bootstrap/vds_bootstrap.py
index a9dc901..e45c8b6 100755
--- a/vds_bootstrap/vds_bootstrap.py
+++ b/vds_bootstrap/vds_bootstrap.py
@@ -289,7 +289,6 @@
"""
status = "OK"
message = 'Host properly registered with RHN/Satellite.'
- rc = True
try:
rc = bool(deployUtil.yumListPackages(VDSM_NAME))
@@ -316,7 +315,6 @@
"""
status = "OK"
message = 'Available VDSM matches requirements'
- rc = True
try:
rc = deployUtil.yumSearchVersion(VDSM_NAME, VDSM_MIN_VER)
@@ -393,7 +391,6 @@
"""
os_status = "FAIL"
kernel_status = "FAIL"
- os_message = "Unsupported platform version"
os_name = "Unknown OS"
kernel_message = ''
self.rc = True
@@ -741,8 +738,6 @@
return self.rc
def _addNetwork(self, vdcName, vdcPort):
- fReturn = True
-
#add management bridge
try:
fReturn = deployUtil.makeBridge(
@@ -859,9 +854,6 @@
# TODO remove legacy
if deployUtil.getBootstrapInterfaceVersion() == 1 and \
engine_ssh_key is None:
- vdcAddress = None
- vdcPort = None
-
vdcAddress, vdcPort = deployUtil.getAddress(url)
if vdcAddress is not None:
strKey = deployUtil.getAuthKeysFile(vdcAddress, vdcPort)
diff --git a/vds_bootstrap/vds_bootstrap_complete.py b/vds_bootstrap/vds_bootstrap_complete.py
index fd18847..07c3610 100755
--- a/vds_bootstrap/vds_bootstrap_complete.py
+++ b/vds_bootstrap/vds_bootstrap_complete.py
@@ -101,7 +101,6 @@
except:
arg = 1
- res = True
try:
res = deployUtil.instCert(rnum, VDSM_CONF_FILE)
if res:
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index 4579763..322ee8b 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -1095,7 +1095,7 @@
misc.validateN(hostID, 'hostID')
# already disconnected/or pool is just unknown - return OK
try:
- pool = self.getPool(spUUID)
+ _ = self.getPool(spUUID)
except se.StoragePoolUnknown:
self.log.warning("disconnect sp: %s failed. Known pools %s",
spUUID, self.pools)
@@ -1861,7 +1861,7 @@
self.log.info("spUUID=%s master=%s", spUUID, masterDom)
try:
- pool = self.getPool(spUUID)
+ _ = self.getPool(spUUID)
except se.StoragePoolUnknown:
pool = sp.StoragePool(spUUID, self.domainMonitor, self.taskMng)
else:
diff --git a/vdsm/storage/iscsi.py b/vdsm/storage/iscsi.py
index 7da94ab..9976026 100644
--- a/vdsm/storage/iscsi.py
+++ b/vdsm/storage/iscsi.py
@@ -415,7 +415,7 @@
log.debug("Performing SCSI scan, this will take up to %s seconds",
maxTimeout)
time.sleep(minTimeout)
- for i in xrange(maxTimeout - minTimeout):
+ for _ in xrange(maxTimeout - minTimeout):
for p in processes[:]:
(hba, proc) = p
if proc.wait(0):
@@ -429,7 +429,7 @@
time.sleep(1)
else:
log.warning("Still waiting for scsi scan of hbas: %s",
- tuple(hba for p in processes))
+ tuple(hba for _ in processes))
def devIsiSCSI(dev):
diff --git a/vdsm/storage/misc.py b/vdsm/storage/misc.py
index fc13a9c..5245264 100644
--- a/vdsm/storage/misc.py
+++ b/vdsm/storage/misc.py
@@ -484,7 +484,6 @@
log.debug("dir: %s, prefixName: %s, versions: %s" %
(directory, prefixName, gen))
gen = int(gen)
- files = os.listdir(directory)
files = glob.glob("%s*" % prefixName)
fd = {}
for fname in files:
@@ -614,7 +613,6 @@
return self.acquire(True)
def acquire(self, exclusive):
- currentEvent = None
currentThread = threading.currentThread()
# Handle reacquiring lock in the same thread
@@ -1081,7 +1079,7 @@
maxthreads -= 1
# waiting for rest threads to end
- for i in xrange(threadsCount):
+ for _ in xrange(threadsCount):
yield respQueue.get()
diff --git a/vdsm/storage/remoteFileHandler.py b/vdsm/storage/remoteFileHandler.py
index 5b24053..accf51c 100644
--- a/vdsm/storage/remoteFileHandler.py
+++ b/vdsm/storage/remoteFileHandler.py
@@ -275,7 +275,7 @@
def __init__(self, numOfHandlers):
self._numOfHandlers = numOfHandlers
self.handlers = [None] * numOfHandlers
- self.occupied = [Lock() for i in xrange(numOfHandlers)]
+ self.occupied = [Lock() for _ in xrange(numOfHandlers)]
def _isHandlerAvailable(self, poolHandler):
if poolHandler is None:
diff --git a/vdsm/storage/resourceManager.py b/vdsm/storage/resourceManager.py
index 14049dc..486ea18 100644
--- a/vdsm/storage/resourceManager.py
+++ b/vdsm/storage/resourceManager.py
@@ -926,7 +926,7 @@
return req.wait(timeout)
# req not found - check that it is not granted
- for fullName in self.resources:
+ for _ in self.resources:
return True
# Note that there is a risk of another thread that is racing with us
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 38cd453..db66662 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -1326,7 +1326,6 @@
self.log.info("spUUID=%s sdUUID=%s", self.spUUID, sdUUID)
vms = self._getVMsPath(sdUUID)
# We should exclude 'masterd' link from IMG_METAPATTERN globing
- vmUUID = ovf = imgList = ''
for vm in vmList:
if not vm:
continue
diff --git a/vdsm/storage/task.py b/vdsm/storage/task.py
index 4eff5c1..0532b02 100644
--- a/vdsm/storage/task.py
+++ b/vdsm/storage/task.py
@@ -872,10 +872,7 @@
def _runJobs(self):
result = ""
- code = 100
- message = "Unknown Error"
i = 0
- j = None
try:
if self.aborting():
raise se.TaskAborted("shutting down")
@@ -891,7 +888,6 @@
if result is None:
result = ""
i += 1
- j = None
self._updateResult(0, "%s jobs completed successfully" % i, result)
self._updateState(State.finished)
self.log.debug('Task.run: exit - success: result %s' % result)
diff --git a/vdsm/vm.py b/vdsm/vm.py
index 0c12334..5e1c7f1 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -3058,7 +3058,7 @@
self._dom.attachDevice(nicXml)
except libvirt.libvirtError as e:
self.log.error("Hotplug failed", exc_info=True)
- nicXml = hooks.after_nic_hotplug_fail(
+ _ = hooks.after_nic_hotplug_fail(
nicXml, self.conf, params=customProps)
if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN:
return errCode['noVM']
@@ -3760,7 +3760,7 @@
"trying again without it (%s)", e)
try:
self._dom.snapshotCreateXML(snapxml, snapFlags)
- except Exception as e:
+ except Exception:
self.log.error("Unable to take snapshot", exc_info=True)
if memoryParams:
self.cif.teardownVolumePath(memoryVol)
diff --git a/vdsm_api/Bridge.py b/vdsm_api/Bridge.py
index b9fdaf8..4812354 100644
--- a/vdsm_api/Bridge.py
+++ b/vdsm_api/Bridge.py
@@ -34,7 +34,6 @@
def dispatch(self, name, argobj):
methodName = name.replace('.', '_')
- result = None
try:
fn = getattr(self, methodName)
except AttributeError:
diff --git a/vdsm_api/process-schema.py b/vdsm_api/process-schema.py
index c4bda0d..307d498 100755
--- a/vdsm_api/process-schema.py
+++ b/vdsm_api/process-schema.py
@@ -255,12 +255,12 @@
# Union member types
names = strip_stars(s.get('data', []))
types = filter_types(names)
- details = [None for n in names]
+ details = [None for _ in names]
attr_table('Types', names, types, details)
elif 'enum' in s:
# Enum values
names = strip_stars(s.get('data', []))
- types = [None for n in names]
+ types = [None for _ in names]
details = [s['info_data'][n] for n in names]
attr_table('Values', names, types, details)
elif 'map' in s:
diff --git a/vdsm_api/vdsmapi.py b/vdsm_api/vdsmapi.py
index db29c13..c38ff01 100644
--- a/vdsm_api/vdsmapi.py
+++ b/vdsm_api/vdsmapi.py
@@ -92,7 +92,6 @@
def parse_schema(fp):
exprs = []
expr = ''
- expr_eval = None
for line in fp:
if line.startswith('#') or line == '\n':
--
To view, visit http://gerrit.ovirt.org/20535
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib81c292f900154819e8852c21ae389c323034999
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap(a)redhat.com>
9 years, 7 months
Change in vdsm[master]: utils: Use ovirt node for persist and unpersist files
by ykaplan@redhat.com
Yeela Kaplan has uploaded a new change for review.
Change subject: utils: Use ovirt node for persist and unpersist files
......................................................................
utils: Use ovirt node for persist and unpersist files
Change-Id: Ifaf19e5f8f5beca38d34a606c3eb370385dc206d
Signed-off-by: Yeela Kaplan <ykaplan(a)redhat.com>
---
M lib/vdsm/utils.py
1 file changed, 19 insertions(+), 15 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/84/31584/1
diff --git a/lib/vdsm/utils.py b/lib/vdsm/utils.py
index e88007c..b02daa8 100644
--- a/lib/vdsm/utils.py
+++ b/lib/vdsm/utils.py
@@ -143,6 +143,18 @@
raise
+def persistFile(name):
+ if isOvirtNode():
+ from ovirt.node.utils.fs import Config as NodeCfg
+ NodeCfg().persist(name)
+
+
+def unpersistFile(name):
+ if isOvirtNode():
+ from ovirt.node.utils.fs import Config as NodeCfg
+ NodeCfg().unpersist(name)
+
+
def rotateFiles(directory, prefixName, gen, cp=False, persist=False):
logging.debug("dir: %s, prefixName: %s, versions: %s" %
(directory, prefixName, gen))
@@ -171,37 +183,29 @@
for key in keys:
oldName = os.path.join(directory, fd[key]['old'])
newName = os.path.join(directory, fd[key]['new'])
- if isOvirtNode() and persist and not cp:
+ if persist and not cp:
try:
- execCmd([constants.EXT_UNPERSIST, oldName],
- sudo=True)
- execCmd([constants.EXT_UNPERSIST, newName],
- sudo=True)
+ unpersistFile(oldName)
+ unpersistFile(newName)
except:
pass
try:
if cp:
execCmd([constants.EXT_CP, oldName, newName], sudo=True)
- if (isOvirtNode() and
- persist and not os.path.exists(newName)):
- execCmd([constants.EXT_PERSIST, newName],
- sudo=True)
+ if (persist and not os.path.exists(newName)):
+ persistFile(newName)
else:
os.rename(oldName, newName)
except:
pass
- if isOvirtNode() and persist and not cp:
+ if persist and not cp:
try:
+ persistFile(newName)
execCmd([constants.EXT_PERSIST, newName],
sudo=True)
except:
pass
-
-
-def persistFile(name):
- if isOvirtNode():
- execCmd([constants.EXT_PERSIST, name], sudo=True)
def _parseMemInfo(lines):
--
To view, visit http://gerrit.ovirt.org/31584
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifaf19e5f8f5beca38d34a606c3eb370385dc206d
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yeela Kaplan <ykaplan(a)redhat.com>
9 years, 7 months
Change in vdsm[master]: vm: migration: exponential downtime increment
by fromani@redhat.com
Francesco Romani has uploaded a new change for review.
Change subject: vm: migration: exponential downtime increment
......................................................................
vm: migration: exponential downtime increment
Migration downtime is calculated using an interpolation
using the current downtime step (up to a configurabile
maximum) and the maximum downtime.
The downtime is incremented at each downtime step until
it reaches the maximum, or the migration is finished.
This patch changes the interpolation formula from linear
to exponential, being the new one:
d = c ** s
where d is the downtime, s is the step and c is the
exponentiation coefficient computed in such a way
of when s = S (number of steps to perform),
then we will have d = D (selected downtime).
Please note that this patch still preserve an linear
increment of the wait time.
Change-Id: I6401772f52ea28144452e67198bddff18f6703eb
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1004101
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm/vm.py
1 file changed, 2 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/20/25820/1
diff --git a/vdsm/vm.py b/vdsm/vm.py
index c53f1d4..1d7b643 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -722,6 +722,7 @@
delay_per_gib = config.getint('vars', 'migration_downtime_delay')
memSize = int(vm.conf['memSize'])
self._wait = (delay_per_gib * max(memSize, 2048) + 1023) / 1024
+ self._coeff = self._downtime ** (1 / float(self.DOWNTIME_STEPS))
self.daemon = True
self.start()
@@ -735,7 +736,7 @@
if self._stop.isSet():
break
- downtime = self._downtime * (i + 1) / self.DOWNTIME_STEPS
+ downtime = int(self._coeff ** i)
self._vm.log.debug('setting migration downtime to %d', downtime)
self._vm._dom.migrateSetMaxDowntime(downtime, 0)
--
To view, visit http://gerrit.ovirt.org/25820
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6401772f52ea28144452e67198bddff18f6703eb
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
9 years, 7 months