Change in vdsm[master]: [WIP] EVENTS
automat...@ovirt.org has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 4: * 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.5', 'ovirt-3.4', 'ovirt-3.3']) -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 4 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Dima Kuznetsov dkuzn...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
Piotr Kliczewski has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 1: Code-Review-1 (14 comments) http://gerrit.ovirt.org/#/c/38069/1/lib/stompClient.py File lib/stompClient.py: Line 74: Line 75: Line 76: BROKER_ADDRESS = (127.0.0.1, 54321) Line 77: Line 78: # server = dummy_server(BROKER_ADDRESS) Do we need this comment? Line 79: Line 80: time.sleep(2) Line 81: Line 82: client = connect(BROKER_ADDRESS) http://gerrit.ovirt.org/#/c/38069/1/lib/vdsm/config.py.in File lib/vdsm/config.py.in: Line 324: ('management_ip', '0.0.0.0', 'Set to :: to listen on IPv6.'), Line 325: Line 326: ('guests_gateway_ip', '', None), Line 327: Line 328: ('broker_address', '127.0.0.1', Do we really bind to loopback? Line 329: 'Address where the broker is listening at. Use an empty string ' Line 330: 'for none'), Line 331: Line 332: ('broker_port', '5445', http://gerrit.ovirt.org/#/c/38069/1/lib/yajsonrpc/stompReactor.py File lib/yajsonrpc/stompReactor.py: Line 28: _STATE_LEN = Waiting for message length Line 29: _STATE_MSG = Waiting for message Line 30: Line 31: Line 32: _DEFAULT_RESPONSE_DESTINATION = jms.topic.vdsm_legacy_responses How that will work with current 3.5? Line 33: _DEFAULT_REQUEST_DESTINATION = jms.topic.vdsm_legacy_requests Line 34: Line 35: Line 36: def parseHeartBeatHeader(v): Line 348: def __init__(self, client, request_frame): Line 349: self._client = client Line 350: self._reply_to = request_frame.headers.get('reply-to', None) Line 351: Line 352: def get_local_address(self, *args, **kwargs): Do we need it? Line 353: return Line 354: Line 355: def send(self, data): Line 356: if self._reply_to is None: http://gerrit.ovirt.org/#/c/38069/1/tests/miscTests.py File tests/miscTests.py: Line 990: gc.collect() Line 991: openFds = openFdNum() Line 992: self.testStdOut() Line 993: gc.collect() Line 994: print gc.garbage what is the value of printing it? Line 995: self.assertEquals(len(gc.garbage), 0) Line 996: self.assertEquals(openFdNum(), openFds) Line 997: Line 998: http://gerrit.ovirt.org/#/c/38069/1/tests/protocoldetectorTests.py File tests/protocoldetectorTests.py: Line 66: while \n not in request: Line 67: request += dispatcher.recv(1024) Line 68: Line 69: response = self.response(request) Line 70: client_socket.setblocking(1) Why do we want to block? Line 71: client_socket.sendall(response) Line 72: finally: Line 73: client_socket.shutdown(socket.SHUT_RDWR) Line 74: client_socket.close() Line 214: '127.0.0.1', Line 215: 0, Line 216: sslctx=self.SSLCTX if use_ssl else None Line 217: ) Line 218: self.acceptor._handshake_timeout = 1 why do we need this timeout? Line 219: self.acceptor.add_detector(Echo()) Line 220: self.acceptor.add_detector(Uppercase()) Line 221: self.acceptor_address = self.acceptor._acceptor.socket.getsockname() Line 222: t = threading.Thread(target=self.reactor.process_requests) http://gerrit.ovirt.org/#/c/38069/1/vdsm.spec.in File vdsm.spec.in: Line 1605: %{python_sitelib}/yajsonrpc/stomp.py* Line 1606: %{python_sitelib}/yajsonrpc/stompReactor.py* Line 1607: Line 1608: %files infra Line 1609: %{python_sitelib}/%{vdsm_name}/infra/eventfd/__init__.py* Is it part of this patch? Line 1610: %{python_sitelib}/%{vdsm_name}/infra/filecontrol/__init__.py* Line 1611: %{python_sitelib}/%{vdsm_name}/infra/sigutils/__init__.py* Line 1612: %{python_sitelib}/%{vdsm_name}/infra/zombiereaper/__init__.py* Line 1613: %{python_sitelib}/%{vdsm_name}/infra/__init__.py* http://gerrit.ovirt.org/#/c/38069/1/vdsm/API.py File vdsm/API.py: Line 1263: message = out + err Line 1264: return {'status': {'code': rc, 'message': message}, Line 1265: 'power': 'unknown', 'operationStatus': 'initiated'} Line 1266: Line 1267: def ping(self): This verb is used by setupNetworks. I do not think that we want to change its behavior. Line 1268: Ping the server. Useful for tests Line 1269: updateTimestamp() Line 1270: n = self._cif.create_notification(vdsm.ping) Line 1271: n.emit(pinged=True) http://gerrit.ovirt.org/#/c/38069/1/vdsm/clientIF.py File vdsm/clientIF.py: Line 66: StompRpcServer, Line 67: ) Line 68: Line 69: Line 70: class Notification(object): This should not be part of this module Line 71: def __init__(self, event_id, cb): Line 72: self._event_id = event_id Line 73: self._cb = cb Line 74: Line 70: class Notification(object): Line 71: def __init__(self, event_id, cb): Line 72: self._event_id = event_id
Change in vdsm[master]: [WIP] EVENTS
Piotr Kliczewski has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 1: (2 comments) https://gerrit.ovirt.org/#/c/38069/1/vdsm/clientIF.py File vdsm/clientIF.py: Line 212: Line 213: def _createAcceptor(self, host, port): Line 214: sslctx = self._createSSLContext() Line 215: Line 216: self._acceptor = MultiProtocolAcceptor( having reactor instance in multiProtocolAcceptor should be one separate pat Done Line 217: self._reactor, Line 218: host, Line 219: port, Line 220: sslctx Line 330: binding.start() Line 331: self.thread = threading.Thread( Line 332: target=self._reactor.process_requests, Line 333: name='Reactor thread' Line 334: ) not related It is related since io loop is not in acceptor but was moved to reactor so we need to change it. Line 335: self.thread.setDaemon(True) Line 336: self.thread.start() Line 337: Line 338: def _getUUIDSpecPath(self, uuid): -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
Piotr Kliczewski has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 4: Verified-1 jsonrpc code is not working for el6 -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 4 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Dima Kuznetsov dkuzn...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
automat...@ovirt.org has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 1: * 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.5', 'ovirt-3.4', 'ovirt-3.3']) -- To view, visit http://gerrit.ovirt.org/38069 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
automat...@ovirt.org has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 3: * 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.5', 'ovirt-3.4', 'ovirt-3.3']) -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 3 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Dima Kuznetsov dkuzn...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
automat...@ovirt.org has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 2: * 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.5', 'ovirt-3.4', 'ovirt-3.3']) -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Dima Kuznetsov dkuzn...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
oVirt Jenkins CI Server has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 4: Build Failed http://jenkins.ovirt.org/job/vdsm_master_pep8_gerrit/16462/ : SUCCESS http://jenkins.ovirt.org/job/vdsm_master_unit-tests_created/16633/ : SUCCESS http://jenkins.ovirt.org/job/vdsm_master_unit_tests_el_gerrit/15662/ : FAILURE -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 4 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Dima Kuznetsov dkuzn...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
oVirt Jenkins CI Server has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 3: Build Failed http://jenkins.ovirt.org/job/vdsm_master_pep8_gerrit/16354/ : SUCCESS http://jenkins.ovirt.org/job/vdsm_master_unit_tests_gerrit_el/15554/ : FAILURE http://jenkins.ovirt.org/job/vdsm_master_unit-tests_created/16524/ : SUCCESS -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 3 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Dima Kuznetsov dkuzn...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
Yaniv Bronhaim has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 1: (2 comments) https://gerrit.ovirt.org/#/c/38069/1/vdsm/clientIF.py File vdsm/clientIF.py: Line 212: Line 213: def _createAcceptor(self, host, port): Line 214: sslctx = self._createSSLContext() Line 215: Line 216: self._acceptor = MultiProtocolAcceptor( having reactor instance in multiProtocolAcceptor should be one separate patch. please split Line 217: self._reactor, Line 218: host, Line 219: port, Line 220: sslctx Line 330: binding.start() Line 331: self.thread = threading.Thread( Line 332: target=self._reactor.process_requests, Line 333: name='Reactor thread' Line 334: ) not related Line 335: self.thread.setDaemon(True) Line 336: self.thread.start() Line 337: Line 338: def _getUUIDSpecPath(self, uuid): -- To view, visit https://gerrit.ovirt.org/38069 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: Piotr Kliczewski piotr.kliczew...@gmail.com Gerrit-Reviewer: Yaniv Bronhaim ybron...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
Change in vdsm[master]: [WIP] EVENTS
Saggi Mizrahi has uploaded a new change for review. Change subject: [WIP] EVENTS .. [WIP] EVENTS Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Signed-off-by: Saggi Mizrahi smizr...@redhat.com --- M lib/stompClient.py M lib/vdsm/config.py.in M lib/vdsm/sslutils.py M lib/yajsonrpc/betterAsyncore.py M lib/yajsonrpc/stomp.py M lib/yajsonrpc/stompReactor.py M tests/jsonRpcHelper.py M tests/jsonRpcTests.py M tests/miscTests.py M tests/protocoldetectorTests.py M vdsm.spec.in M vdsm/API.py M vdsm/clientIF.py M vdsm/protocoldetector.py M vdsm/rpc/BindingJsonRpc.py 15 files changed, 336 insertions(+), 141 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/69/38069/1 diff --git a/lib/stompClient.py b/lib/stompClient.py index d3cd0ab..5a6d7f5 100644 --- a/lib/stompClient.py +++ b/lib/stompClient.py @@ -1,6 +1,12 @@ #!/usr/bin/python import yajsonrpc as yjrpc -import yajsonrpc.stompReactor as sr +from yajsonrpc.stompReactor import ( +_DEFAULT_REQUEST_DESTINATION, +_DEFAULT_RESPONSE_DESTINATION, +ClientRpcTransportAdapter, +ServerRpcContextAdapter, +StompReactor, +) import socket from threading import Thread, Lock import time @@ -14,7 +20,7 @@ if _reactor is None: with _reactorLock: if _reactor is None: -_reactor = sr.StompReactor() +_reactor = StompReactor() t = Thread(target=_reactor.process_requests) t.setDaemon(True) t.start() @@ -42,95 +48,38 @@ t.setDaemon(True) t.start() sub = stomp_client.subscribe( -sr._DEFAULT_REQUEST_DESTINATION, +_DEFAULT_REQUEST_DESTINATION, message_handler=ServerRpcContextAdapter.subscription_handler(server) ) server._sub_ = sub return server -class ServerRpcContextAdapter(object): -@classmethod -def subscription_handler(cls, server): -def handler(sub, frame): -server.queueRequest( -( -ServerRpcContextAdapter(sub.client, frame), -frame.body -) -) - -return handler - -def __init__(self, client, request_frame): -self._client = client -self._reply_to = request_frame.headers.get('reply-to', None) - -def get_local_address(self, *args, **kwargs): -return - -def send(self, data): -if self._reply_to is None: -return - -self._client.send( -self._reply_to, -data, -{ -content-type: application/json, -} -) - - -class ClientRpcTransportAdapter(object): -def __init__(self, sub, destination, client): -self._sub = sub -sub.set_message_handler(self._handle_message) -self._destination = destination -self._client = client -self._message_handler = lambda arg: None - -def setMessageHandler(self, handler): -self._message_handler = handler - -def send(self, data): -headers = { -content-type: application/json, -reply-to: self._sub.destination, -} -self._client.send( -data, -self._destination, -headers, -) - -def _handle_message(self, sub, frame): -self._message_handler((self, frame.body)) - -def close(self): -self._sub.unsubscribe() - - def connect(address): sock = socket.create_connection(address) reactor = get_reactor() stomp_client = reactor.createClient(sock) -subscription = stomp_client.subscribe(sr._DEFAULT_RESPONSE_DESTINATIOM) +subscription = stomp_client.subscribe( +_DEFAULT_RESPONSE_DESTINATION, +sub_id=__vdsm_fake_broker__, +) client = yjrpc.JsonRpcClient( ClientRpcTransportAdapter( subscription, -sr._DEFAULT_REQUEST_DESTINATION, +_DEFAULT_REQUEST_DESTINATION, stomp_client, ) ) return client -BROKER_ADDRESS = (127.0.0.1, 5445) +BROKER_ADDRESS = (127.0.0.1, 54321) -server = dummy_server(BROKER_ADDRESS) +# server = dummy_server(BROKER_ADDRESS) time.sleep(2) client = connect(BROKER_ADDRESS) -client.callMethod(echo, [123], 1) +client.callMethod(Host.ping, [], 1) +client.callMethod(Host.ping, [], 1) +client.callMethod(Host.ping, [], 1) diff --git a/lib/vdsm/config.py.in b/lib/vdsm/config.py.in index 94c6782..fb0150b 100644 --- a/lib/vdsm/config.py.in +++ b/lib/vdsm/config.py.in @@ -325,6 +325,20 @@ ('guests_gateway_ip', '', None), +('broker_address', '127.0.0.1', +'Address where the broker is listening at. Use an empty string ' +'for none'), + +('broker_port', '5445', +'Port where the broker is listening at.'), + +('request_queues', +'jms.topic.vdsm_requests,
Change in vdsm[master]: [WIP] EVENTS
oVirt Jenkins CI Server has posted comments on this change. Change subject: [WIP] EVENTS .. Patch Set 1: Build Failed http://jenkins.ovirt.org/job/vdsm_master_install-rpm-sanity-el7_created/494/ : SUCCESS http://jenkins.ovirt.org/job/vdsm_master_install-rpm-sanity-fc21_created/486/ : SUCCESS http://jenkins.ovirt.org/job/vdsm_master_pep8_gerrit/15996/ : FAILURE http://jenkins.ovirt.org/job/vdsm_master_install-rpm-sanity-el6_created/1052/ : FAILURE http://jenkins.ovirt.org/job/vdsm_master_unit_tests_gerrit_el/15195/ : FAILURE http://jenkins.ovirt.org/job/vdsm_master_unit-tests_created/16166/ : SUCCESS http://jenkins.ovirt.org/job/vdsm_master_unit-tests_created_staging/972/ : FAILURE http://jenkins.ovirt.org/job/vdsm_master_install-rpm-sanity-fc20_created/1035/ : SUCCESS -- To view, visit http://gerrit.ovirt.org/38069 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id27b5ca1773139932eb5cb16921d5abec4991c5e Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Saggi Mizrahi smizr...@redhat.com Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: No ___ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches