Change in vdsm[master]: virt: periodic: avoid NotConnectedError spam
by fromani@redhat.com
Francesco Romani has uploaded a new change for review.
Change subject: virt: periodic: avoid NotConnectedError spam
......................................................................
virt: periodic: avoid NotConnectedError spam
periodic operations have well known races on
VM startup and VM shutdown.
These races are well known, because periodic are
asynchronous with respect VM startup/shutdown,
and are benign because operations are just supposed
to be retried next cycle.
Under high load and/or unresponsive libvirt, we may
have log spam for Vm._dom being unconnected.
Let's avoid useless and scary stacktraces in the logs.
X-Backport-To: 3.6
Change-Id: I920e3b0b0e80e0a66ad199607068424986933d3a
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm/virt/periodic.py
1 file changed, 8 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/13/44813/1
diff --git a/vdsm/virt/periodic.py b/vdsm/virt/periodic.py
index a2ee8ba..6a2841b 100644
--- a/vdsm/virt/periodic.py
+++ b/vdsm/virt/periodic.py
@@ -32,6 +32,7 @@
from vdsm.utils import monotonic_time
from . import sampling
+from . import virdomain
# just a made up number. Maybe should be equal to number of cores?
@@ -268,7 +269,13 @@
return self._vm.isDomainReadyForCommands()
def __call__(self):
- self._execute()
+ try:
+ self._execute()
+ except virdomain.NotConnectedError:
+ # no worries, let's retry again next time.
+ # but let's not spam logs with useless stacktraces.
+ self._vm.log.warning('could not run on %s: domain not connected',
+ self._vm.id)
class UpdateVolumes(_RunnableVmOperation):
--
To view, visit https://gerrit.ovirt.org/44813
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I920e3b0b0e80e0a66ad199607068424986933d3a
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
8 years, 6 months
Change in vdsm[master]: WIP: RFC: factor out periodic operations
by fromani@redhat.com
Francesco Romani has uploaded a new change for review.
Change subject: WIP: RFC: factor out periodic operations
......................................................................
WIP: RFC: factor out periodic operations
Factor the periodic operation implementations
using a common subclass.
This patch has little benefit on its own, but
helps to reduce the size of the followup patch.
WARNING: this patch is not yet ready for review,
let alone merging. It is a proof of concept and
live demo.
Change-Id: I283331ecfa5b47c147f0a42cd4a6b51a49308fe7
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm/virt/periodic.py
1 file changed, 18 insertions(+), 30 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/48/44548/4
diff --git a/vdsm/virt/periodic.py b/vdsm/virt/periodic.py
index 632674f..e3801d6 100644
--- a/vdsm/virt/periodic.py
+++ b/vdsm/virt/periodic.py
@@ -256,20 +256,26 @@
return 'VmDispatcher(%s)' % self._create
-class UpdateVolumes(object):
+class _RunnableVmOperation(object):
def __init__(self, vm):
self._vm = vm
-
- @property
- def required(self):
- # Avoid queries from storage during recovery process
- return self._vm.isDisksStatsCollectionEnabled()
@property
def runnable(self):
return self._vm.isDomainReadyForCommands()
def __call__(self):
+ self._execute()
+
+
+class UpdateVolumes(_RunnableVmOperation):
+
+ @property
+ def required(self):
+ # Avoid queries from storage during recovery process
+ return self._vm.isDisksStatsCollectionEnabled()
+
+ def _execute(self):
for drive in self._vm.getDiskDevices():
# TODO: If this block (it is actually possible?)
# we must make sure we don't overwrite good data
@@ -277,25 +283,17 @@
self._vm.updateDriveVolume(drive)
-class NumaInfoMonitor(object):
- def __init__(self, vm):
- self._vm = vm
+class NumaInfoMonitor(_RunnableVmOperation):
@property
def required(self):
return self._vm.hasGuestNumaNode
- @property
- def runnable(self):
- return self._vm.isDomainReadyForCommands()
-
- def __call__(self):
+ def _execute(self):
self._vm.updateNumaInfo()
-class BlockjobMonitor(object):
- def __init__(self, vm):
- self._vm = vm
+class BlockjobMonitor(_RunnableVmOperation):
@property
def required(self):
@@ -306,26 +304,16 @@
# monitor (most often true).
return self._vm.hasVmJobs
- @property
- def runnable(self):
- return self._vm.isDomainReadyForCommands()
-
- def __call__(self):
+ def _execute(self):
self._vm.updateVmJobs()
-class DriveWatermarkMonitor(object):
- def __init__(self, vm):
- self._vm = vm
+class DriveWatermarkMonitor(_RunnableVmOperation):
@property
def required(self):
# Avoid queries from storage during recovery process
return self._vm.isDisksStatsCollectionEnabled()
- @property
- def runnable(self):
- return self._vm.isDomainReadyForCommands()
-
- def __call__(self):
+ def _execute(self):
self._vm.extendDrivesIfNeeded()
--
To view, visit https://gerrit.ovirt.org/44548
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I283331ecfa5b47c147f0a42cd4a6b51a49308fe7
Gerrit-PatchSet: 4
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: automation(a)ovirt.org
8 years, 6 months
Change in vdsm[master]: tests: v2v: refactor tests to make it extensible
by fromani@redhat.com
Francesco Romani has uploaded a new change for review.
Change subject: tests: v2v: refactor tests to make it extensible
......................................................................
tests: v2v: refactor tests to make it extensible
Refactor the current tests to make it easier to
add new ones reusing existing code.
Besides refactoring, the only change is that
testGetExternalVMs tests for an handful of VMs,
instead of just one.
Change-Id: I5a0c2f9575debd328a2c8e0dacdb8e8dc845e340
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M tests/v2vTests.py
1 file changed, 70 insertions(+), 33 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/66/47366/1
diff --git a/tests/v2vTests.py b/tests/v2vTests.py
index a789597..a4d929b 100644
--- a/tests/v2vTests.py
+++ b/tests/v2vTests.py
@@ -17,7 +17,9 @@
# Refer to the README and COPYING files for full details of the license
#
+from collections import namedtuple
from StringIO import StringIO
+import uuid
import libvirt
@@ -34,8 +36,15 @@
class VmMock(object):
+
+ def __init__(self, name="RHEL",
+ vmid="564d7cb4-8e3d-06ec-ce82-7b2b13c6a611"):
+ self._name = name
+ self._vmid = vmid
+ self._mac_address = _mac_from_uuid(vmid)
+
def name(self):
- return 'windows'
+ return self._name
def state(self, flags=0):
return [5, 0]
@@ -43,8 +52,8 @@
def XMLDesc(self, flags=0):
return """
<domain type='vmware' id='15'>
- <name>RHEL</name>
- <uuid>564d7cb4-8e3d-06ec-ce82-7b2b13c6a611</uuid>
+ <name>{name}</name>
+ <uuid>{vmid}</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>1</vcpu>
@@ -57,13 +66,13 @@
<on_crash>destroy</on_crash>
<devices>
<disk type='file' device='disk'>
- <source file='[datastore1] RHEL/RHEL.vmdk'/>
+ <source file='[datastore1] RHEL/RHEL_{name}.vmdk'/>
<target dev='sda' bus='scsi'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<controller type='scsi' index='0' model='vmpvscsi'/>
<interface type='bridge'>
- <mac address='00:0c:29:c6:a6:11'/>
+ <mac address='{mac}'/>
<source bridge='VM Network'/>
<model type='vmxnet3'/>
</interface>
@@ -71,20 +80,26 @@
<model type='vmvga' vram='8192'/>
</video>
</devices>
-</domain>"""
+</domain>""".format(
+ name=self._name,
+ vmid=self._vmid,
+ mac=self._mac_address)
# FIXME: extend vmfakelib allowing to set predefined domain in Connection class
class LibvirtMock(object):
- def __init__(self, storage_lookup_fail=False):
+ def __init__(self, vms=(("RHEL",
+ "564d7cb4-8e3d-06ec-ce82-7b2b13c6a611"),),
+ storage_lookup_fail=False):
+ self._vms = vms
self._storage_lookup_fail = storage_lookup_fail
def close(self):
pass
def listAllDomains(self):
- return [VmMock()]
+ return [VmMock(*vm) for vm in self._vms]
def storageVolLookupByPath(self, name):
if self._storage_lookup_fail:
@@ -94,10 +109,6 @@
class Volume(object):
def info(self):
return [0, 0, 0]
-
-
-def hypervisorConnect(uri, username, passwd):
- return LibvirtMock()
def read_ovf(ovf_path):
@@ -134,32 +145,34 @@
</Envelope>"""
+VmSpec = namedtuple('VmSpec', ['name', 'vmid'])
+
+
class v2vTests(TestCaseBase):
- @MonkeyPatch(libvirtconnection, 'open_connection', hypervisorConnect)
+
+ NUM_VMS = 3 # anything > 1
+
def testGetExternalVMs(self):
if not v2v.supported():
raise SkipTest('v2v is not supported current os version')
- vms = v2v.get_external_vms('esx://mydomain', 'user',
- ProtectedPassword('password'))['vmList']
- self.assertEquals(len(vms), 1)
- vm = vms[0]
- self.assertEquals(vm['vmId'], '564d7cb4-8e3d-06ec-ce82-7b2b13c6a611')
- self.assertEquals(vm['memSize'], 2048)
- self.assertEquals(vm['smp'], 1)
- self.assertEquals(len(vm['disks']), 1)
- self.assertEquals(len(vm['networks']), 1)
+ vmspecs = tuple(
+ VmSpec("RHEL_%i" % i, str(uuid.uuid4()))
+ for i in range(self.NUM_VMS)
+ )
- disk = vm['disks'][0]
- self.assertEquals(disk['dev'], 'sda')
- self.assertEquals(disk['alias'], '[datastore1] RHEL/RHEL.vmdk')
- self.assertIn('capacity', disk)
- self.assertIn('allocation', disk)
+ def _connect(uri, username, passwd):
+ return LibvirtMock(vms=vmspecs)
- network = vm['networks'][0]
- self.assertEquals(network['type'], 'bridge')
- self.assertEquals(network['macAddr'], '00:0c:29:c6:a6:11')
- self.assertEquals(network['bridge'], 'VM Network')
+ with MonkeyPatchScope([(libvirtconnection, 'open_connection',
+ _connect)]):
+ vms = v2v.get_external_vms('esx://mydomain', 'user',
+ ProtectedPassword('password'))['vmList']
+
+ self.assertEqual(len(vms), len(vmspecs))
+
+ for vm, spec in zip(vms, vmspecs):
+ self._assertVmMatchesSpec(vm, spec)
def testOutputParser(self):
output = ''.join(['[ 0.0] Opening the source -i libvirt ://roo...\n',
@@ -227,12 +240,36 @@
self.assertEquals(len(vm['disks']), 1)
disk = vm['disks'][0]
self.assertEquals(disk['dev'], 'sda')
- self.assertEquals(disk['alias'], '[datastore1] RHEL/RHEL.vmdk')
+ self.assertEquals(disk['alias'], '[datastore1] RHEL/RHEL_RHEL.vmdk')
self.assertNotIn('capacity', disk)
self.assertNotIn('allocation', disk)
self.assertEquals(len(vm['networks']), 1)
network = vm['networks'][0]
self.assertEquals(network['type'], 'bridge')
- self.assertEquals(network['macAddr'], '00:0c:29:c6:a6:11')
+ self.assertEquals(network['macAddr'], '52:54:56:4d:7c:b4')
self.assertEquals(network['bridge'], 'VM Network')
+
+ def _assertVmMatchesSpec(self, vm, spec):
+ self.assertEquals(vm['vmId'], spec.vmid)
+ self.assertEquals(vm['memSize'], 2048)
+ self.assertEquals(vm['smp'], 1)
+ self.assertEquals(len(vm['disks']), 1)
+ self.assertEquals(len(vm['networks']), 1)
+
+ disk = vm['disks'][0]
+ self.assertEquals(disk['dev'], 'sda')
+ self.assertEquals(disk['alias'],
+ '[datastore1] RHEL/RHEL_%s.vmdk' % spec.name)
+ self.assertIn('capacity', disk)
+ self.assertIn('allocation', disk)
+
+ network = vm['networks'][0]
+ self.assertEquals(network['type'], 'bridge')
+ self.assertEquals(network['macAddr'], _mac_from_uuid(spec.vmid))
+ self.assertEquals(network['bridge'], 'VM Network')
+
+
+def _mac_from_uuid(vmid):
+ return "52:54:%s:%s:%s:%s" % (
+ vmid[ :2], vmid[2:4], vmid[4:6], vmid[6:8])
--
To view, visit https://gerrit.ovirt.org/47366
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5a0c2f9575debd328a2c8e0dacdb8e8dc845e340
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
8 years, 6 months
Change in vdsm[ovirt-3.6]: Having logrotate configuration to rotate coredump directory ...
by ybronhei@redhat.com
Hello Dan Kenigsberg,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/48003
to review the following change.
Change subject: Having logrotate configuration to rotate coredump directory as root user
......................................................................
Having logrotate configuration to rotate coredump directory as root user
As vdsm configures logrotate rule to rotate /var/log/core directory,
which output coredump files for all processes - such as once that runs
as root - it should perform the rotation as root user as well, otherwise
rotating libvirt coredump will be ignored with permission denied error.
This is an ancient regression introduced while fixing rhbz#772591 with
commit 951b41d.
Change-Id: Ib012f61a18c61bc0415be22f5b89ea25a58ef328
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1265547
Signed-off-by: Yaniv Bronhaim <ybronhei(a)redhat.com>
Reviewed-on: https://gerrit.ovirt.org/47833
Continuous-Integration: Jenkins CI
Reviewed-by: Dan Kenigsberg <danken(a)redhat.com>
---
M vdsm/vdsm-logrotate.conf.in
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/03/48003/1
diff --git a/vdsm/vdsm-logrotate.conf.in b/vdsm/vdsm-logrotate.conf.in
index ce71015..af85330 100644
--- a/vdsm/vdsm-logrotate.conf.in
+++ b/vdsm/vdsm-logrotate.conf.in
@@ -15,5 +15,5 @@
compresscmd /usr/bin/xz
uncompresscmd /usr/bin/unxz
compressext .xz
- su @VDSMUSER@ @VDSMGROUP@
+ su root root
}
--
To view, visit https://gerrit.ovirt.org/48003
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib012f61a18c61bc0415be22f5b89ea25a58ef328
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.6
Gerrit-Owner: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
8 years, 6 months
Change in vdsm[master]: Having logrotate configuration to rotate coredump directory ...
by ybronhei@redhat.com
Yaniv Bronhaim has uploaded a new change for review.
Change subject: Having logrotate configuration to rotate coredump directory as root user
......................................................................
Having logrotate configuration to rotate coredump directory as root user
As vdsm configures logrotate rule to rotate /var/log/core directory,
which output coredump files for all processes - such as once that runs
as root - it should perform the rotation as root user as well, otherwise
rotating libvirt coredump will be ignored with permission denied error.
Change-Id: Ib012f61a18c61bc0415be22f5b89ea25a58ef328
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1265547
Signed-off-by: Yaniv Bronhaim <ybronhei(a)redhat.com>
---
M vdsm/vdsm-logrotate.conf.in
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/33/47833/1
diff --git a/vdsm/vdsm-logrotate.conf.in b/vdsm/vdsm-logrotate.conf.in
index ce71015..af85330 100644
--- a/vdsm/vdsm-logrotate.conf.in
+++ b/vdsm/vdsm-logrotate.conf.in
@@ -15,5 +15,5 @@
compresscmd /usr/bin/xz
uncompresscmd /usr/bin/unxz
compressext .xz
- su @VDSMUSER@ @VDSMGROUP@
+ su root root
}
--
To view, visit https://gerrit.ovirt.org/47833
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib012f61a18c61bc0415be22f5b89ea25a58ef328
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yaniv Bronhaim <ybronhei(a)redhat.com>
8 years, 6 months
Change in vdsm[master]: json cli: use ssl when creating a socket
by ykaplan@redhat.com
Yeela Kaplan has uploaded a new change for review.
Change subject: json cli: use ssl when creating a socket
......................................................................
json cli: use ssl when creating a socket
We want to be compatible with xmlrpc cli using regular ssl,
instead of current m2crypto.
Change-Id: I2fa15584eed90945cdf2eb8cad17ed7697678932
Signed-off-by: Yeela Kaplan <ykaplan(a)redhat.com>
---
M lib/vdsm/utils.py
M lib/yajsonrpc/stompreactor.py
2 files changed, 6 insertions(+), 3 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/11/45611/1
diff --git a/lib/vdsm/utils.py b/lib/vdsm/utils.py
index b7818eb..6f65275 100644
--- a/lib/vdsm/utils.py
+++ b/lib/vdsm/utils.py
@@ -1255,12 +1255,14 @@
return count * size
-def create_connected_socket(host, port, sslctx=None, timeout=None):
+def create_connected_socket(host, port, sslctx=None, timeout=None, m2c=True):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if sslctx:
- if _m2cEnabled:
+ if _m2cEnabled and m2c:
sock = SSL.Connection(sslctx.context)
else:
+ if _m2cEnabled:
+ import ssl
sock = ssl.wrap_socket(sock,
keyfile=sslctx.key_file,
certfile=sslctx.cert_file,
diff --git a/lib/yajsonrpc/stompreactor.py b/lib/yajsonrpc/stompreactor.py
index 7b63525..c9e8062 100644
--- a/lib/yajsonrpc/stompreactor.py
+++ b/lib/yajsonrpc/stompreactor.py
@@ -558,7 +558,8 @@
thread.setDaemon(True)
thread.start()
- client = StompClient(utils.create_connected_socket(host, port, sslctx),
+ client = StompClient(utils.create_connected_socket(host, port,
+ sslctx, m2c=False),
reactor)
jsonclient = JsonRpcClient(
--
To view, visit https://gerrit.ovirt.org/45611
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2fa15584eed90945cdf2eb8cad17ed7697678932
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yeela Kaplan <ykaplan(a)redhat.com>
8 years, 6 months
Change in vdsm[master]: vdscli: map invocation params to dictionary
by Piotr Kliczewski
Piotr Kliczewski has uploaded a new change for review.
Change subject: vdscli: map invocation params to dictionary
......................................................................
vdscli: map invocation params to dictionary
We need to be more flexible with parameters provided during execution of
vdscli methods. Now we use api schema to name all the params so we can
match them properly on the server side.
With this change we can call vdscli methods as regular method and do
mapping behind the scene.
Code used for xmlrpc looked like:
self.vdscli.addNetwork(bridge,
*self._get_net_args(vlan, bond, nics, opts))
In above case we are required to prepare named params as array.
Now we can call it:
self.vdscli.addNetwork(bridge,
vlan=vlan, bond=bond, nics=nics, opts=opts))
as well as we can provide only optional params as we want.
This is first step which enable us to provide client side schema
validation.
It is required to extract schema files from jsonrpc rpm due to
dependency needed for python rpm. Now we make schema rpm required for
jsonrpc and python rpm.
Change-Id: Ibac6eab3c519becb29d2b3551111d671bbb79df5
Signed-off-by: pkliczewski <piotr.kliczewski(a)gmail.com>
---
M lib/vdsm/jsonrpcvdscli.py
M tests/crossImportsTests.py.in
M vdsm.spec.in
3 files changed, 29 insertions(+), 3 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/29/45429/1
diff --git a/lib/vdsm/jsonrpcvdscli.py b/lib/vdsm/jsonrpcvdscli.py
index 6e65e0d..e1efb3f 100644
--- a/lib/vdsm/jsonrpcvdscli.py
+++ b/lib/vdsm/jsonrpcvdscli.py
@@ -28,6 +28,7 @@
JsonRpcRequest, \
JsonRpcNoResponseError
+from rpc import vdsmapi
from vdsm import response
from .config import config
@@ -58,10 +59,19 @@
class _Server(object):
def __init__(self, client, compat):
+ self._vapi = vdsmapi.get_api()
self._client = client
self._compat = compat
- def _callMethod(self, methodName, *args):
+ def prepare_args(self, className, methodName, args, kwargs):
+ sym = self._vapi['commands'][className][methodName]
+ allargs = sym.get('data', {}).keys()
+ allargs = [arg[1:] if arg.startswith('*') else arg for arg in allargs]
+ params = dict(zip(allargs, args))
+ params.update(kwargs)
+ return params
+
+ def _callMethod(self, methodName, *args, **kwargs):
try:
method = _COMMAND_CONVERTER[methodName]
except KeyError as e:
@@ -69,7 +79,10 @@
"arguments: %s error: %s" %
(methodName, args, e))
- req = JsonRpcRequest(method, args, reqId=str(uuid4()))
+ class_name, method_name = method.split('.')
+ params = self.prepare_args(class_name, method_name, args, kwargs)
+
+ req = JsonRpcRequest(method, params, reqId=str(uuid4()))
responses = self._client.call(req)
if responses:
resp = responses[0]
diff --git a/tests/crossImportsTests.py.in b/tests/crossImportsTests.py.in
index a3e1d81..acb4ea3 100644
--- a/tests/crossImportsTests.py.in
+++ b/tests/crossImportsTests.py.in
@@ -51,4 +51,7 @@
else:
mods = get_mods(os.path.join(get_python_lib(), pkg_name))
+ # ignore schema dept for this module
+ mods.remove('jsonrpcvdscli')
+
__import__(pkg_name, fromlist=mods)
diff --git a/vdsm.spec.in b/vdsm.spec.in
index d4c1198..729b322 100644
--- a/vdsm.spec.in
+++ b/vdsm.spec.in
@@ -260,9 +260,16 @@
An XMLRPC interface for interacting with vdsmd. Primary control interface for
ovirt-engine and vdsClient.
+%package schema
+Summary: VDSM schema
+
+%description schema
+Contains api schema file
+
%package jsonrpc
Summary: VDSM API Server
Requires: %{name}-python = %{version}-%{release}
+Requires: %{name}-schema = %{version}-%{release}
Requires: %{name}-yajsonrpc = %{version}-%{release}
Obsoletes: vdsm-api < 4.16
@@ -301,6 +308,7 @@
Requires: python-cpopen >= 1.2.3-5
Requires: m2crypto
Requires: python-ioprocess >= 0.14
+Requires: %{name}-schema = %{version}-%{release}
%description python
Shared libraries between the various VDSM packages.
@@ -1340,9 +1348,11 @@
%{_datadir}/%{vdsm_name}/rpc/__init__.py*
%{_datadir}/%{vdsm_name}/rpc/bindingjsonrpc.py*
%{_datadir}/%{vdsm_name}/rpc/Bridge.py*
+%{python_sitelib}/yajsonrpc/__init__.py*
+
+%files schema
%{_datadir}/%{vdsm_name}/rpc/vdsmapi-schema.json
%{python_sitelib}/vdsmapi.py*
-%{python_sitelib}/yajsonrpc/__init__.py*
%if ! 0%{?with_gluster}
%exclude %{_datadir}/%{vdsm_name}/rpc/vdsmapi-gluster-schema.json
%endif
--
To view, visit https://gerrit.ovirt.org/45429
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibac6eab3c519becb29d2b3551111d671bbb79df5
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
8 years, 6 months
Change in vdsm[master]: caps: remove no longer used _REQUIRED_BONDINGS
by osvoboda@redhat.com
Ondřej Svoboda has uploaded a new change for review.
Change subject: caps: remove no longer used _REQUIRED_BONDINGS
......................................................................
caps: remove no longer used _REQUIRED_BONDINGS
Change-Id: I6df47ea9df7a9d59f3db1653f1e8c6095fa51086
Signed-off-by: Ondřej Svoboda <osvoboda(a)redhat.com>
---
M vdsm/caps.py
1 file changed, 0 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/06/47906/1
diff --git a/vdsm/caps.py b/vdsm/caps.py
index 8d9bba1..862f8cb 100644
--- a/vdsm/caps.py
+++ b/vdsm/caps.py
@@ -88,8 +88,6 @@
RNG_SOURCES = {'random': '/dev/random',
'hwrng': '/dev/hwrng'}
-_REQUIRED_BONDINGS = frozenset(('bond0', 'bond1', 'bond2', 'bond3', 'bond4'))
-
def _report_network_qos(caps):
"""Augment netinfo information with QoS data for the engine"""
--
To view, visit https://gerrit.ovirt.org/47906
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6df47ea9df7a9d59f3db1653f1e8c6095fa51086
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Ondřej Svoboda <osvoboda(a)redhat.com>
8 years, 6 months
Change in vdsm[master]: net: use libvirt to manage bridge mac learning
by ibarkan@redhat.com
Ido Barkan has uploaded a new change for review.
Change subject: net: use libvirt to manage bridge mac learning
......................................................................
net: use libvirt to manage bridge mac learning
In late kernels, this can lead for performance boost, by eliminating
unneeded packet flooding in the LAN and also allow the kernel to shut
down promiscuous mode for bridge ports.
see: https://libvirt.org/formatnetwork.html#elementsConnect
Change-Id: I4d52d90587c79e992a6466f3f98ee9c877cc36f4
Signed-off-by: Ido Barkan <ibarkan(a)redhat.com>
---
M vdsm/network/configurators/libvirt.py
1 file changed, 6 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/35/47935/1
diff --git a/vdsm/network/configurators/libvirt.py b/vdsm/network/configurators/libvirt.py
index a88ded7..85490ba 100644
--- a/vdsm/network/configurators/libvirt.py
+++ b/vdsm/network/configurators/libvirt.py
@@ -46,7 +46,8 @@
<network>
<name>vdsm-awesome_net</name>
- <forward mode='bridge'/><bridge name='awesome_net'/> ||
+ <forward mode='bridge'/>
+ <bridge name='awesome_net' macTableManager="libvirt"/> ||
<forward mode='passthrough'><interface dev='incredible'/></forward>
</network>
@@ -54,6 +55,8 @@
according to net if bridged or bridgeless this
determines respectively the presence of bridge element
or interface subelement.
+ For bridged networks, libvirt can manage the forwarding table of the
+ bridge, which can enhance performance for the host.
"""
netName = netinfo.LIBVIRT_NET_PREFIX + network
@@ -75,7 +78,8 @@
root.append(nameElem)
root.append(forwardElem)
if bridged:
- root.append(EtreeElement('bridge', name=network))
+ root.append(
+ EtreeElement('bridge', name=network, macTableManager='libvirt'))
else:
forwardElem.append(EtreeElement('interface', dev=iface))
return etree.tostring(root)
--
To view, visit https://gerrit.ovirt.org/47935
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4d52d90587c79e992a6466f3f98ee9c877cc36f4
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Ido Barkan <ibarkan(a)redhat.com>
8 years, 6 months
Change in vdsm[master]: config: Resolve crash when IPv6 disabled in kernel
by Dan Kenigsberg
Dan Kenigsberg has posted comments on this change.
Change subject: config: Resolve crash when IPv6 disabled in kernel
......................................................................
Patch Set 1: Code-Review-1
(1 comment)
https://gerrit.ovirt.org/#/c/47978/1/vdsm/network/configurators/ifcfg.py
File vdsm/network/configurators/ifcfg.py:
Line 102: self._addSourceRoute(bridge)
Line 103: _ifup(bridge)
Line 104:
Line 105: # Check if ipv6 is disabled by kernel arguments
Line 106: has_ipv6 = True
hmm, I think that we'd better expose this as a memoized function in caps.py, and in the output of getCaps. Otherwise Engine would not know if we support ipv6 or not.
Line 107: try:
Line 108: socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
Line 109: except socket.error:
Line 110: has_ipv6 = False
--
To view, visit https://gerrit.ovirt.org/47978
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I774cac868ddee08ac072adf2104a811594779052
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Ollie Armstrong <ollie(a)fubra.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Ido Barkan <ibarkan(a)redhat.com>
Gerrit-Reviewer: Jenkins CI
Gerrit-Reviewer: Ondřej Svoboda <osvoboda(a)redhat.com>
Gerrit-Reviewer: automation(a)ovirt.org
Gerrit-HasComments: Yes
8 years, 6 months