how to print api method name and params in ovirt

------=_Part_68569_935883193.1504581242386 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 aGVsbG8sIGV2ZXJ5b25lIQogICAgV2UgbmVlZCB0byBjdXN0b21lZCBvdmlydCwgYW5kIG5vdyBJ IG5lZWQgdG8ga25vdyB3aGljaCBhcGkgYmVlbiBjYWxsZWQgYW5kIHRyYW5zcG9ydCdzIHBhcmFt cyBhZnRlciBidXR0b24gYmVlbiBwdXNoZWQgaW4gZW5naW5lLCBJIHRyeSB0byBhZGQgbG9ncyBs aWtlIHRoaXMgaW4gdmRzbToKCgogNDU1ICAgICBAYXBpLm1ldGhvZAogNDU2ICAgICBkZWYgaG90 cGx1Z0Rpc2soc2VsZiwgcGFyYW1zKToKIDQ1NyAgICAgICAgIHN5c2xvZy5zeXNsb2coIi0tLWlu IFZNIGhvdHBsdWdEaXNrIikKIDQ1OCAgICAgICAgIHN5c2xvZy5zeXNsb2coInBhcmFtczolcyIg JSAocGFyYW1zKSkKIDQ1OSAgICAgICAgIHRyeToKIDQ2MCAgICAgICAgICAgICB1dGlscy52YWxp ZGF0ZU1pbmltYWxLZXlTZXQocGFyYW1zLCAoJ3ZtSWQnLCAnZHJpdmUnKSkKIDQ2MSAgICAgICAg IGV4Y2VwdCBWYWx1ZUVycm9yOgogNDYyICAgICAgICAgICAgIHNlbGYubG9nLmVycm9yKCdNaXNz aW5nIG9uZSBvZiByZXF1aXJlZCBwYXJhbWV0ZXJzOiB2bUlkLCBkcml2ZScpCiA0NjMgICAgICAg ICAgICAgcmV0dXJuIHsnc3RhdHVzJzogeydjb2RlJzogZXJyQ29kZVsnTWlzc1BhcmFtJ11bJ3N0 YXR1cyddWydjb2RlJ10sCiA0NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZXNz YWdlJzogJ01pc3Npbmcgb25lIG9mIHJlcXVpcmVkICcKIDQ2NSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAncGFyYW1ldGVyczogdm1JZCwgZHJpdmUnfX0KIDQ2NiAg ICAgICAgIHJldHVybiBzZWxmLnZtLmhvdHBsdWdEaXNrKHBhcmFtcykKCgpidXQgdGhlIG51bWJl ciBvZiBhcGkgbWV0aG9kIGlzIHRvbyBtdWNoLCAgd2hlcmUgc2hvdWxkIEkgYWRkIGlzIGJldHRl ciB0byBwcmludCBjYWxsZWQgYXBpIG1ldGhvZCBuYW1lIGFuZCBwYXJhbXM/CgoK ------=_Part_68569_935883193.1504581242386 Content-Type: text/html; charset=GBK Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MS43O2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjE0cHg7 Zm9udC1mYW1pbHk6QXJpYWwiPjxkaXY+aGVsbG8sIGV2ZXJ5b25lITwvZGl2PjxkaXY+Jm5ic3A7 Jm5ic3A7Jm5ic3A7IFdlIG5lZWQgdG8gY3VzdG9tZWQgb3ZpcnQsIGFuZCBub3cgSSBuZWVkIHRv IGtub3cgd2hpY2ggYXBpIGJlZW4gY2FsbGVkIGFuZCB0cmFuc3BvcnQncyBwYXJhbXMgYWZ0ZXIg YnV0dG9uIGJlZW4gcHVzaGVkIGluIGVuZ2luZSwgSSB0cnkgdG8gYWRkIGxvZ3MgbGlrZSB0aGlz IGluIHZkc206PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj4mbmJzcDs0NTUmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgQGFwaS5tZXRob2Q8YnI+Jm5ic3A7NDU2Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGRlZiBob3RwbHVnRGlzayhzZWxmLCBwYXJhbXMpOjxicj4mbmJzcDs0NTcmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3lzbG9nLnN5c2xvZygiLS0t aW4gVk0gaG90cGx1Z0Rpc2siKTxicj4mbmJzcDs0NTgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3lzbG9nLnN5c2xvZygicGFyYW1zOiVzIiAlIChwYXJh bXMpKTxicj4mbmJzcDs0NTkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgdHJ5Ojxicj4mbmJzcDs0NjAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXRpbHMudmFsaWRhdGVN aW5pbWFsS2V5U2V0KHBhcmFtcywgKCd2bUlkJywgJ2RyaXZlJykpPGJyPiZuYnNwOzQ2MSZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBleGNlcHQgVmFsdWVF cnJvcjo8YnI+Jm5ic3A7NDYyJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNlbGYubG9nLmVycm9yKCdNaXNzaW5n IG9uZSBvZiByZXF1aXJlZCBwYXJhbWV0ZXJzOiB2bUlkLCBkcml2ZScpPGJyPiZuYnNwOzQ2MyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyByZXR1cm4geydzdGF0dXMnOiB7J2NvZGUnOiBlcnJDb2RlWydNaXNzUGFy YW0nXVsnc3RhdHVzJ11bJ2NvZGUnXSw8YnI+Jm5ic3A7NDY0Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICdtZXNz YWdlJzogJ01pc3Npbmcgb25lIG9mIHJlcXVpcmVkICc8YnI+Jm5ic3A7NDY1Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7ICdwYXJhbWV0ZXJzOiB2bUlkLCBkcml2ZSd9fTxicj4mbmJzcDs0NjYmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIHNlbGYu dm0uaG90cGx1Z0Rpc2socGFyYW1zKTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+YnV0IHRoZSBu dW1iZXIgb2YgYXBpIG1ldGhvZCBpcyB0b28gbXVjaCwmbmJzcDsgd2hlcmUgc2hvdWxkIEkgYWRk IGlzIGJldHRlciB0byBwcmludCBjYWxsZWQgYXBpIG1ldGhvZCBuYW1lIGFuZCBwYXJhbXM/PGJy PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjwvZGl2Pjxicj48YnI+PHNwYW4gdGl0bGU9Im5ldGVhc2Vm b290ZXIiPjxwPiZuYnNwOzwvcD48L3NwYW4+ ------=_Part_68569_935883193.1504581242386--

This might help you *Bug 1479301* <https://bugzilla.redhat.com/show_bug.cgi?id=1479301> - [RFE] Add elapsed times of operations to the engine.log On Tue, 5 Sep 2017 at 06:29 pengyixiang <yxpengi386@163.com> wrote:
hello, everyone! We need to customed ovirt, and now I need to know which api been called and transport's params after button been pushed in engine, I try to add logs like this in vdsm:
455 @api.method 456 def hotplugDisk(self, params): 457 syslog.syslog("---in VM hotplugDisk") 458 syslog.syslog("params:%s" % (params)) 459 try: 460 utils.validateMinimalKeySet(params, ('vmId', 'drive')) 461 except ValueError: 462 self.log.error('Missing one of required parameters: vmId, drive') 463 return {'status': {'code': errCode['MissParam']['status']['code'], 464 'message': 'Missing one of required ' 465 'parameters: vmId, drive'}} 466 return self.vm.hotplugDisk(params)
but the number of api method is too much, where should I add is better to print called api method name and params?
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

On Tue, Sep 5, 2017 at 7:39 AM, Roy Golan <rgolan@redhat.com> wrote:
This might help you Bug 1479301 - [RFE] Add elapsed times of operations to the engine.log
On Tue, 5 Sep 2017 at 06:29 pengyixiang <yxpengi386@163.com> wrote:
hello, everyone! We need to customed ovirt, and now I need to know which api been called and transport's params after button been pushed in engine, I try to add logs like this in vdsm:
455 @api.method 456 def hotplugDisk(self, params): 457 syslog.syslog("---in VM hotplugDisk") 458 syslog.syslog("params:%s" % (params)) 459 try: 460 utils.validateMinimalKeySet(params, ('vmId', 'drive')) 461 except ValueError: 462 self.log.error('Missing one of required parameters: vmId, drive') 463 return {'status': {'code': errCode['MissParam']['status']['code'], 464 'message': 'Missing one of required ' 465 'parameters: vmId, drive'}} 466 return self.vm.hotplugDisk(params)
but the number of api method is too much, where should I add is better to print called api method name and params?
I think you are looking for this [1] in vdsm or this [2] in the engine. It is enough to increase log level on both sides. [1] https://github.com/oVirt/vdsm/blob/master/lib/yajsonrpc/__init__.py#L646 [2] https://github.com/oVirt/vdsm-jsonrpc-java/blob/master/client/src/main/java/...
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

On Tue, Sep 5, 2017 at 6:14 AM, pengyixiang <yxpengi386@163.com> wrote:
hello, everyone! We need to customed ovirt, and now I need to know which api been called and transport's params after button been pushed in engine, I try to add logs like this in vdsm:
Can you explain what you are trying to achieve? What customization are you looking for? It'd be great if you can contribute your changes so the community can benefit from them. Y.
455 @api.method 456 def hotplugDisk(self, params): 457 syslog.syslog("---in VM hotplugDisk") 458 syslog.syslog("params:%s" % (params)) 459 try: 460 utils.validateMinimalKeySet(params, ('vmId', 'drive')) 461 except ValueError: 462 self.log.error('Missing one of required parameters: vmId, drive') 463 return {'status': {'code': errCode['MissParam']['status'] ['code'], 464 'message': 'Missing one of required ' 465 'parameters: vmId, drive'}} 466 return self.vm.hotplugDisk(params)
but the number of api method is too much, where should I add is better to print called api method name and params?
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

------=_Part_38364_897104806.1504661952044 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 aGkgCgogICBJIHRoaW5rIE92aXJ0IGlzIGdyZWF0LCBidXQgb3VyIGFwcGxpY2F0aW9uIHNjZW5h cmlvcyBpcyBzb21lIGRpZmZlcmVudCwgb3VyIHZtJ3MgY2xpZW50IGlzIGVtYmVkZGVkIHN5c3Rl bSB3aXRoIHNwaWNlIGluIG1pbmkgbGludXgsY2xpZW50IGlzIGEgUVQsCgp1c2luZyBoZG1pIGNv bm5lY3QgdG8gZGlzcGxheS4gQW5kIHdlIG5lZWQgc3BlY2lmaWNzIHVzZXJzL2FkbWlucyBmdW5j LCB1c2VyIGNhbiByZWdpc3RlciwgYWRtaW5zIGNhbiByZWNlaXZlZCBpbiBlLW1haWwsIHNldCBn cm91cCAuLi4gZXRjLgoKQW5kIG91ciBub2RlIGlzIGN1c3RvbWVkIGRlYmlhbjggc3lzdGVtKGNv bXBhbnkncyBzeXN0ZW0pLCBhZnRlciB3ZSB0cmFuc3BsYW50IHZkc20gdG8gZGViaWFuLCB3ZSBu ZWVkIG9mZmxpbmUncyBpbnN0YWxsLCBzbyB3ZSBhY2hpZXZlZAphICJkZXBsb3kiIGZ1bmMgaW4g ZW5naW5lLCBhbmQgaSB0aGluayBvdmlydC1ub2RlJ3Mgbm8gc3RhdHVzIGlzIGEgZ29vZCBpZGVh LCBtYXkgYmUgZXZlcnl0aW1lIGFmdGVyIGRlYmlhbi1ub2RlIHJlYm9vdCwgd2UgZXhlY3V0ZSBk ZXBsb3kgZnVuYwoKaXMgYSBnb29kIGlkZWEgdG9vPyBiZWNhdXNlIGlmIHdlIGNoYW5nZWQgc29t ZSBjb2RlLCBpdCdzIGVhc2llciB0byBsb3Qgc2l6ZSBpbnN0YWxsLgoKICAgSW4gdGhlIGVuZCwg aSB0aGluayBnd3QgaXMgZ3JlYXQgaW4gZ2VlaywgYnV0IG5vdCB3ZWxsIGluIGNvbXBhbnksIGJl Y2F1c2UgaGF2ZSBodG1sL2Nzcy9qcy9qc3Agc2tpbGwncyBmcm9uZC1lbmRlciBpcyBlYXNpZXIg dG8gZmluZCwgaXQgbWF5IGN1dCB0aGUgY29zdHMuCgoKCgoKCgrU2iAyMDE3LTA5LTA1IDE3OjMx OjQwo6wiWWFuaXYgS2F1bCIgPHlrYXVsQHJlZGhhdC5jb20+INC0tcCjugoKCgoKCk9uIFR1ZSwg U2VwIDUsIDIwMTcgYXQgNjoxNCBBTSwgcGVuZ3lpeGlhbmcgPHl4cGVuZ2kzODZAMTYzLmNvbT4g d3JvdGU6CgpoZWxsbywgZXZlcnlvbmUhCiAgICBXZSBuZWVkIHRvIGN1c3RvbWVkIG92aXJ0LCBh bmQgbm93IEkgbmVlZCB0byBrbm93IHdoaWNoIGFwaSBiZWVuIGNhbGxlZCBhbmQgdHJhbnNwb3J0 J3MgcGFyYW1zIGFmdGVyIGJ1dHRvbiBiZWVuIHB1c2hlZCBpbiBlbmdpbmUsIEkgdHJ5IHRvIGFk ZCBsb2dzIGxpa2UgdGhpcyBpbiB2ZHNtOgoKCkNhbiB5b3UgZXhwbGFpbiB3aGF0IHlvdSBhcmUg dHJ5aW5nIHRvIGFjaGlldmU/IFdoYXQgY3VzdG9taXphdGlvbiBhcmUgeW91IGxvb2tpbmcgZm9y PwpJdCdkIGJlIGdyZWF0IGlmIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIGNoYW5nZXMgc28gdGhl IGNvbW11bml0eSBjYW4gYmVuZWZpdCBmcm9tIHRoZW0uClkuCiAKCgogNDU1ICAgICBAYXBpLm1l dGhvZAogNDU2ICAgICBkZWYgaG90cGx1Z0Rpc2soc2VsZiwgcGFyYW1zKToKIDQ1NyAgICAgICAg IHN5c2xvZy5zeXNsb2coIi0tLWluIFZNIGhvdHBsdWdEaXNrIikKIDQ1OCAgICAgICAgIHN5c2xv Zy5zeXNsb2coInBhcmFtczolcyIgJSAocGFyYW1zKSkKIDQ1OSAgICAgICAgIHRyeToKIDQ2MCAg ICAgICAgICAgICB1dGlscy52YWxpZGF0ZU1pbmltYWxLZXlTZXQocGFyYW1zLCAoJ3ZtSWQnLCAn ZHJpdmUnKSkKIDQ2MSAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogNDYyICAgICAgICAgICAg IHNlbGYubG9nLmVycm9yKCdNaXNzaW5nIG9uZSBvZiByZXF1aXJlZCBwYXJhbWV0ZXJzOiB2bUlk LCBkcml2ZScpCiA0NjMgICAgICAgICAgICAgcmV0dXJuIHsnc3RhdHVzJzogeydjb2RlJzogZXJy Q29kZVsnTWlzc1BhcmFtJ11bJ3N0YXR1cyddWydjb2RlJ10sCiA0NjQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdtZXNzYWdlJzogJ01pc3Npbmcgb25lIG9mIHJlcXVpcmVkICcKIDQ2 NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyYW1ldGVyczog dm1JZCwgZHJpdmUnfX0KIDQ2NiAgICAgICAgIHJldHVybiBzZWxmLnZtLmhvdHBsdWdEaXNrKHBh cmFtcykKCgpidXQgdGhlIG51bWJlciBvZiBhcGkgbWV0aG9kIGlzIHRvbyBtdWNoLCAgd2hlcmUg c2hvdWxkIEkgYWRkIGlzIGJldHRlciB0byBwcmludCBjYWxsZWQgYXBpIG1ldGhvZCBuYW1lIGFu ZCBwYXJhbXM/CgoKCgoKCgogCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KRGV2ZWwgbWFpbGluZyBsaXN0CkRldmVsQG92aXJ0Lm9yZwpodHRwOi8vbGlz dHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vZGV2ZWwKCgo= ------=_Part_38364_897104806.1504661952044 Content-Type: text/html; charset=GBK Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MS43O2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjE0cHg7 Zm9udC1mYW1pbHk6QXJpYWwiPjxkaXY+aGkmbmJzcDsgPGJyPjwvZGl2PjxkaXY+Jm5ic3A7Jm5i c3A7IEkgdGhpbmsgT3ZpcnQgaXMgZ3JlYXQsIGJ1dCBvdXI8c3BhbiBjbGFzcz0ib3BfZGljdF90 ZXh0MiI+IGFwcGxpY2F0aW9uIHNjZW5hcmlvcyBpcyBzb21lIGRpZmZlcmVudCwgb3VyIHZtJ3Mg Y2xpZW50IGlzIDwvc3Bhbj5lbWJlZGRlZCBzeXN0ZW0gd2l0aCBzcGljZSBpbiBtaW5pIGxpbnV4 LGNsaWVudCBpcyBhIFFULCA8YnI+PC9kaXY+PGRpdj51c2luZyBoZG1pIGNvbm5lY3QgdG8gZGlz cGxheS4gQW5kIHdlIG5lZWQgc3BlY2lmaWNzIHVzZXJzL2FkbWlucyBmdW5jLCB1c2VyIGNhbiBy ZWdpc3RlciwgYWRtaW5zIGNhbiByZWNlaXZlZCBpbiBlLW1haWwsIHNldCBncm91cCAuLi4gZXRj LiA8YnI+PC9kaXY+PGRpdj5BbmQgb3VyIG5vZGUgaXMgY3VzdG9tZWQgZGViaWFuOCBzeXN0ZW0o Y29tcGFueSdzIHN5c3RlbSksIGFmdGVyIHdlIHRyYW5zcGxhbnQgdmRzbSB0byBkZWJpYW4sIHdl IG5lZWQgb2ZmbGluZSdzIGluc3RhbGwsIHNvIHdlIGFjaGlldmVkPC9kaXY+PGRpdj5hICJkZXBs b3kiIGZ1bmMgaW4gZW5naW5lLCBhbmQgaSB0aGluayBvdmlydC1ub2RlJ3Mgbm8gc3RhdHVzIGlz IGEgZ29vZCBpZGVhLCBtYXkgYmUgZXZlcnl0aW1lIGFmdGVyIGRlYmlhbi1ub2RlIHJlYm9vdCwg d2UgZXhlY3V0ZSBkZXBsb3kgZnVuYyA8YnI+PC9kaXY+PGRpdj5pcyBhIGdvb2QgaWRlYSB0b28/ IGJlY2F1c2UgaWYgd2UgY2hhbmdlZCBzb21lIGNvZGUsIGl0J3MgZWFzaWVyIHRvIGxvdCBzaXpl IGluc3RhbGwuPGJyPjwvZGl2PjxkaXY+Jm5ic3A7Jm5ic3A7IEluIHRoZSBlbmQsIGkgdGhpbmsg Z3d0IGlzIGdyZWF0IGluIGdlZWssIGJ1dCBub3Qgd2VsbCBpbiBjb21wYW55LCBiZWNhdXNlIGhh dmUgaHRtbC9jc3MvanMvanNwIHNraWxsJ3MgZnJvbmQtZW5kZXIgaXMgZWFzaWVyIHRvIGZpbmQs IGl0IG1heSBjdXQgdGhlIGNvc3RzLjxicj48L2Rpdj48YnI+PGJyPjxicj48YnI+PGRpdiBzdHls ZT0icG9zaXRpb246cmVsYXRpdmU7em9vbToxIj48L2Rpdj48ZGl2IGlkPSJkaXZOZXRlYXNlTWFp bENhcmQiPjwvZGl2Pjxicj7U2iAyMDE3LTA5LTA1IDE3OjMxOjQwo6wiWWFuaXYgS2F1bCIgJmx0 O3lrYXVsQHJlZGhhdC5jb20mZ3Q7INC0tcCjujxicj4gPGJsb2NrcXVvdGUgaWQ9ImlzUmVwbHlD b250ZW50IiBzdHlsZT0iUEFERElORy1MRUZUOiAxZXg7IE1BUkdJTjogMHB4IDBweCAwcHggMC44 ZXg7IEJPUkRFUi1MRUZUOiAjY2NjIDFweCBzb2xpZCI+PGRpdiBkaXI9Imx0ciI+PGJyPjxkaXYg Y2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFR1ZSwg U2VwIDUsIDIwMTcgYXQgNjoxNCBBTSwgcGVuZ3lpeGlhbmcgPHNwYW4gZGlyPSJsdHIiPiZsdDs8 YSBocmVmPSJtYWlsdG86eXhwZW5naTM4NkAxNjMuY29tIiB0YXJnZXQ9Il9ibGFuayI+eXhwZW5n aTM4NkAxNjMuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0i Z21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2Nj YyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDoxLjc7Y29s b3I6IzAwMDAwMDtmb250LXNpemU6MTRweDtmb250LWZhbWlseTpBcmlhbCI+PGRpdj5oZWxsbywg ZXZlcnlvbmUhPC9kaXY+PGRpdj4mbmJzcDsmbmJzcDsmbmJzcDsgV2UgbmVlZCB0byBjdXN0b21l ZCBvdmlydCwgYW5kIG5vdyBJIG5lZWQgdG8ga25vdyB3aGljaCBhcGkgYmVlbiBjYWxsZWQgYW5k IHRyYW5zcG9ydCdzIHBhcmFtcyBhZnRlciBidXR0b24gYmVlbiBwdXNoZWQgaW4gZW5naW5lLCBJ IHRyeSB0byBhZGQgbG9ncyBsaWtlIHRoaXMgaW4gdmRzbTo8L2Rpdj48L2Rpdj48L2Jsb2NrcXVv dGU+PGRpdj48YnI+PC9kaXY+PGRpdj5DYW4geW91IGV4cGxhaW4gd2hhdCB5b3UgYXJlIHRyeWlu ZyB0byBhY2hpZXZlPyBXaGF0IGN1c3RvbWl6YXRpb24gYXJlIHlvdSBsb29raW5nIGZvcj88L2Rp dj48ZGl2Pkl0J2QgYmUgZ3JlYXQgaWYgeW91IGNhbiBjb250cmlidXRlIHlvdXIgY2hhbmdlcyBz byB0aGUgY29tbXVuaXR5IGNhbiBiZW5lZml0IGZyb20gdGhlbS48L2Rpdj48ZGl2PlkuPC9kaXY+ PGRpdj4mbmJzcDs8L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJt YXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6 MWV4Ij48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDoxLjc7Y29sb3I6IzAwMDAwMDtmb250LXNpemU6 MTRweDtmb250LWZhbWlseTpBcmlhbCI+PGRpdj48YnI+PC9kaXY+PGRpdj4mbmJzcDs0NTUmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgQGFwaS5tZXRob2Q8YnI+Jm5ic3A7NDU2Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IGRlZiBob3RwbHVnRGlzayhzZWxmLCBwYXJhbXMpOjxicj4mbmJzcDs0NTcm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3lzbG9nLnN5 c2xvZygiLS0taW4gVk0gaG90cGx1Z0Rpc2siKTxicj4mbmJzcDs0NTgmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3lzbG9nLnN5c2xvZygicGFyYW1zOiVz IiAlIChwYXJhbXMpKTxicj4mbmJzcDs0NTkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgdHJ5Ojxicj4mbmJzcDs0NjAmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXRpbHMu dmFsaWRhdGVNaW5pbWFsS2V5U2V0KDx3YnI+PC93YnI+cGFyYW1zLCAoJ3ZtSWQnLCAnZHJpdmUn KSk8YnI+Jm5ic3A7NDYxJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IGV4Y2VwdCBWYWx1ZUVycm9yOjxicj4mbmJzcDs0NjImbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc2Vs Zi5sb2cuZXJyb3IoJ01pc3Npbmcgb25lIG9mIHJlcXVpcmVkIHBhcmFtZXRlcnM6IHZtSWQsIGRy aXZlJyk8YnI+Jm5ic3A7NDYzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiB7J3N0YXR1cyc6IHsnY29k ZSc6IGVyckNvZGVbJ01pc3NQYXJhbSddWydzdGF0dXMnXTx3YnI+PC93YnI+Wydjb2RlJ10sPGJy PiZuYnNwOzQ2NCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzx3YnI+ PC93YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICdtZXNzYWdlJzogJ01pc3Npbmcg b25lIG9mIHJlcXVpcmVkICc8YnI+Jm5ic3A7NDY1Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7PHdicj48L3dicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJ3BhcmFtZXRlcnM6IHZtSWQsIGRyaXZlJ319PGJyPiZuYnNwOzQ2NiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gc2VsZi52bS5o b3RwbHVnRGlzayhwYXJhbXMpPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5idXQgdGhlIG51bWJl ciBvZiBhcGkgbWV0aG9kIGlzIHRvbyBtdWNoLCZuYnNwOyB3aGVyZSBzaG91bGQgSSBhZGQgaXMg YmV0dGVyIHRvIHByaW50IGNhbGxlZCBhcGkgbWV0aG9kIG5hbWUgYW5kIHBhcmFtcz88YnI+PC9k aXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PGJyPjxicj48c3BhbiB0aXRsZT0ibmV0ZWFzZWZvb3Rl ciI+PHA+Jm5ic3A7PC9wPjwvc3Bhbj48YnI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19f PHdicj48L3dicj5fX19fX19fX19fX19fX19fXzxicj4KRGV2ZWwgbWFpbGluZyBsaXN0PGJyPgo8 YSBocmVmPSJtYWlsdG86RGV2ZWxAb3ZpcnQub3JnIj5EZXZlbEBvdmlydC5vcmc8L2E+PGJyPgo8 YSBocmVmPSJodHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vZGV2ZWwiIHJl bD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0cy5vdmlydC5vcmcvPHdi cj48L3dicj5tYWlsbWFuL2xpc3RpbmZvL2RldmVsPC9hPjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+ PGJyPjwvZGl2PjwvZGl2Pgo8L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjxicj48c3BhbiB0aXRsZT0i bmV0ZWFzZWZvb3RlciI+PHA+Jm5ic3A7PC9wPjwvc3Bhbj4= ------=_Part_38364_897104806.1504661952044--

On Wed, Sep 6, 2017 at 4:39 AM, pengyixiang <yxpengi386@163.com> wrote:
hi I think Ovirt is great, but our application scenarios is some different, our vm's client is embedded system with spice in mini linux,client is a QT, using hdmi connect to display. And we need specifics users/admins func, user can register, admins can received in e-mail, set group ... etc. And our node is customed debian8 system(company's system), after we transplant vdsm to debian, we need offline's install, so we achieved a "deploy" func in engine, and i think ovirt-node's no status is a good idea, may be everytime after debian-node reboot, we execute deploy func is a good idea too? because if we changed some code, it's easier to lot size install. In the end, i think gwt is great in geek, but not well in company, because have html/css/js/jsp skill's frond-ender is easier to find, it may cut the costs.
It seems like you have forked oVirt. While it's quite possible to do so, I urge you to contribute back the features and fixes you have made. As an example from above, I know there is interest in the users community to run Debian based hosts - so we'll be happy to see VDSM working on Debian. Is there at least a public repository where we can see the changes made? Y.
在 2017-09-05 17:31:40,"Yaniv Kaul" <ykaul@redhat.com> 写道:
On Tue, Sep 5, 2017 at 6:14 AM, pengyixiang <yxpengi386@163.com> wrote:
hello, everyone! We need to customed ovirt, and now I need to know which api been called and transport's params after button been pushed in engine, I try to add logs like this in vdsm:
Can you explain what you are trying to achieve? What customization are you looking for? It'd be great if you can contribute your changes so the community can benefit from them. Y.
455 @api.method 456 def hotplugDisk(self, params): 457 syslog.syslog("---in VM hotplugDisk") 458 syslog.syslog("params:%s" % (params)) 459 try: 460 utils.validateMinimalKeySet(params, ('vmId', 'drive')) 461 except ValueError: 462 self.log.error('Missing one of required parameters: vmId, drive') 463 return {'status': {'code': errCode['MissParam']['status'] ['code'], 464 'message': 'Missing one of required ' 465 'parameters: vmId, drive'}} 466 return self.vm.hotplugDisk(params)
but the number of api method is too much, where should I add is better to print called api method name and params?
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

------=_Part_39898_791796573.1504747812763 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 aGkKICAgIEkgdXNlZCBwcml2YXRlIHJlcG8gdG8gZGV2IHZkc20sIHNvIEkgcmVnaXN0ZXIgYSBn aXRodWIgaW4gdGhpcyBsaW5rOgpodHRwczovL2dpdGh1Yi5jb20vcGVuY2MvdmRzbQoKCgogICBp dCdzIGJhc2VkIG9uIGNvbW1pdCAyNWViYjVlMDE2M2VmNjk3ODc5NzVkZjczNTdhNzQxMjEzMTQx ZDVlCgoKTWFpbiB0aGluZ3MgaXQgZGlkOgoxLnRyYW5zcGxhbnQgdmRzbSB0byBjdXN0b21lZCBk ZWJpYW44IHN5c3RlbS4KMi53aGVuIHdlIGNhbm5vdCBnZXQgbWVtVXNhZ2UgZnJvbSBvdmlydC1n dWVzdC1hZ2VudCwgd2UgZ2V0IGl0IGZyb20gbWVtYmFsbG9vbi4KCgogCgppdCdzIHdvcmtzIG5l ZWQgbWFueSBvdGhlciBkZXBlbmRlbmN5IHBhY2thZ2VzIGFuZCBjb25maWd1cmF0aW9ucywgZXRj LCBzbyB3ZSBtYWRlIGEgaW5zdGFsbCBzY3JpcHQuCgpBbmQgTWF5YmUgdGhlIGN1c3RvbWVkIGRl Ymlhbjggc3lzdGVtIGhhdmUgYSBsaXR0bGUgZGlmZmVyZW50IHdpdGggZGViaWFuOCBsaWtlIHNv bWUgcGFja2FnZXMncyB2ZXJzaW9uLApzbyBpZiB0aGVyZSdzIHNvbWUgb25lIGludGVyZXN0IGlu IGl0LCBJIHdpbGwgdXBsb2FkIG90aGVycyBkZXBlbmRlbmN5cyBhbmQgdGVzdCBpdCBpbiBkZWJp YW44LiAKCgoKCgoKCgrU2iAyMDE3LTA5LTA2IDE2OjE0OjExo6wiWWFuaXYgS2F1bCIgPHlrYXVs QHJlZGhhdC5jb20+INC0tcCjugoKCgoKCk9uIFdlZCwgU2VwIDYsIDIwMTcgYXQgNDozOSBBTSwg cGVuZ3lpeGlhbmcgPHl4cGVuZ2kzODZAMTYzLmNvbT4gd3JvdGU6CgpoaSAKCiAgIEkgdGhpbmsg T3ZpcnQgaXMgZ3JlYXQsIGJ1dCBvdXIgYXBwbGljYXRpb24gc2NlbmFyaW9zIGlzIHNvbWUgZGlm ZmVyZW50LCBvdXIgdm0ncyBjbGllbnQgaXMgZW1iZWRkZWQgc3lzdGVtIHdpdGggc3BpY2UgaW4g bWluaSBsaW51eCxjbGllbnQgaXMgYSBRVCwKCnVzaW5nIGhkbWkgY29ubmVjdCB0byBkaXNwbGF5 LiBBbmQgd2UgbmVlZCBzcGVjaWZpY3MgdXNlcnMvYWRtaW5zIGZ1bmMsIHVzZXIgY2FuIHJlZ2lz dGVyLCBhZG1pbnMgY2FuIHJlY2VpdmVkIGluIGUtbWFpbCwgc2V0IGdyb3VwIC4uLiBldGMuCgpB bmQgb3VyIG5vZGUgaXMgY3VzdG9tZWQgZGViaWFuOCBzeXN0ZW0oY29tcGFueSdzIHN5c3RlbSks IGFmdGVyIHdlIHRyYW5zcGxhbnQgdmRzbSB0byBkZWJpYW4sIHdlIG5lZWQgb2ZmbGluZSdzIGlu c3RhbGwsIHNvIHdlIGFjaGlldmVkCmEgImRlcGxveSIgZnVuYyBpbiBlbmdpbmUsIGFuZCBpIHRo aW5rIG92aXJ0LW5vZGUncyBubyBzdGF0dXMgaXMgYSBnb29kIGlkZWEsIG1heSBiZSBldmVyeXRp bWUgYWZ0ZXIgZGViaWFuLW5vZGUgcmVib290LCB3ZSBleGVjdXRlIGRlcGxveSBmdW5jCgppcyBh IGdvb2QgaWRlYSB0b28/IGJlY2F1c2UgaWYgd2UgY2hhbmdlZCBzb21lIGNvZGUsIGl0J3MgZWFz aWVyIHRvIGxvdCBzaXplIGluc3RhbGwuCgogICBJbiB0aGUgZW5kLCBpIHRoaW5rIGd3dCBpcyBn cmVhdCBpbiBnZWVrLCBidXQgbm90IHdlbGwgaW4gY29tcGFueSwgYmVjYXVzZSBoYXZlIGh0bWwv Y3NzL2pzL2pzcCBza2lsbCdzIGZyb25kLWVuZGVyIGlzIGVhc2llciB0byBmaW5kLCBpdCBtYXkg Y3V0IHRoZSBjb3N0cy4KCgoKSXQgc2VlbXMgbGlrZSB5b3UgaGF2ZSBmb3JrZWQgb1ZpcnQuIFdo aWxlIGl0J3MgcXVpdGUgcG9zc2libGUgdG8gZG8gc28sIEkgdXJnZSB5b3UgdG8gY29udHJpYnV0 ZSBiYWNrIHRoZSBmZWF0dXJlcyBhbmQgZml4ZXMgeW91IGhhdmUgbWFkZS4gQXMgYW4gZXhhbXBs ZSBmcm9tIGFib3ZlLCBJIGtub3cgdGhlcmUgaXMgaW50ZXJlc3QgaW4gdGhlIHVzZXJzIGNvbW11 bml0eSB0byBydW4gRGViaWFuIGJhc2VkIGhvc3RzIC0gc28gd2UnbGwgYmUgaGFwcHkgdG8gc2Vl IFZEU00gd29ya2luZyBvbiBEZWJpYW4uCgoKSXMgdGhlcmUgYXQgbGVhc3QgYSBwdWJsaWMgcmVw b3NpdG9yeSB3aGVyZSB3ZSBjYW4gc2VlIHRoZSBjaGFuZ2VzIG1hZGU/ClkuCgoKCgoKCgoK1Nog MjAxNy0wOS0wNSAxNzozMTo0MKOsIllhbml2IEthdWwiIDx5a2F1bEByZWRoYXQuY29tPiDQtLXA o7oKCgoKCgpPbiBUdWUsIFNlcCA1LCAyMDE3IGF0IDY6MTQgQU0sIHBlbmd5aXhpYW5nIDx5eHBl bmdpMzg2QDE2My5jb20+IHdyb3RlOgoKaGVsbG8sIGV2ZXJ5b25lIQogICAgV2UgbmVlZCB0byBj dXN0b21lZCBvdmlydCwgYW5kIG5vdyBJIG5lZWQgdG8ga25vdyB3aGljaCBhcGkgYmVlbiBjYWxs ZWQgYW5kIHRyYW5zcG9ydCdzIHBhcmFtcyBhZnRlciBidXR0b24gYmVlbiBwdXNoZWQgaW4gZW5n aW5lLCBJIHRyeSB0byBhZGQgbG9ncyBsaWtlIHRoaXMgaW4gdmRzbToKCgpDYW4geW91IGV4cGxh aW4gd2hhdCB5b3UgYXJlIHRyeWluZyB0byBhY2hpZXZlPyBXaGF0IGN1c3RvbWl6YXRpb24gYXJl IHlvdSBsb29raW5nIGZvcj8KSXQnZCBiZSBncmVhdCBpZiB5b3UgY2FuIGNvbnRyaWJ1dGUgeW91 ciBjaGFuZ2VzIHNvIHRoZSBjb21tdW5pdHkgY2FuIGJlbmVmaXQgZnJvbSB0aGVtLgpZLgogCgoK IDQ1NSAgICAgQGFwaS5tZXRob2QKIDQ1NiAgICAgZGVmIGhvdHBsdWdEaXNrKHNlbGYsIHBhcmFt cyk6CiA0NTcgICAgICAgICBzeXNsb2cuc3lzbG9nKCItLS1pbiBWTSBob3RwbHVnRGlzayIpCiA0 NTggICAgICAgICBzeXNsb2cuc3lzbG9nKCJwYXJhbXM6JXMiICUgKHBhcmFtcykpCiA0NTkgICAg ICAgICB0cnk6CiA0NjAgICAgICAgICAgICAgdXRpbHMudmFsaWRhdGVNaW5pbWFsS2V5U2V0KHBh cmFtcywgKCd2bUlkJywgJ2RyaXZlJykpCiA0NjEgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoK IDQ2MiAgICAgICAgICAgICBzZWxmLmxvZy5lcnJvcignTWlzc2luZyBvbmUgb2YgcmVxdWlyZWQg cGFyYW1ldGVyczogdm1JZCwgZHJpdmUnKQogNDYzICAgICAgICAgICAgIHJldHVybiB7J3N0YXR1 cyc6IHsnY29kZSc6IGVyckNvZGVbJ01pc3NQYXJhbSddWydzdGF0dXMnXVsnY29kZSddLAogNDY0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSc6ICdNaXNzaW5nIG9uZSBv ZiByZXF1aXJlZCAnCiA0NjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3BhcmFtZXRlcnM6IHZtSWQsIGRyaXZlJ319CiA0NjYgICAgICAgICByZXR1cm4gc2VsZi52 bS5ob3RwbHVnRGlzayhwYXJhbXMpCgoKYnV0IHRoZSBudW1iZXIgb2YgYXBpIG1ldGhvZCBpcyB0 b28gbXVjaCwgIHdoZXJlIHNob3VsZCBJIGFkZCBpcyBiZXR0ZXIgdG8gcHJpbnQgY2FsbGVkIGFw aSBtZXRob2QgbmFtZSBhbmQgcGFyYW1zPwoKCgoKCgoKIAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRldmVsIG1haWxpbmcgbGlzdApEZXZlbEBvdmly dC5vcmcKaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsCgoKCgoK CgogCgoK ------=_Part_39898_791796573.1504747812763 Content-Type: text/html; charset=GBK Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MS43O2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjE0cHg7 Zm9udC1mYW1pbHk6QXJpYWwiPjxkaXY+aGk8L2Rpdj48ZGl2PiZuYnNwOyZuYnNwOyZuYnNwOyBJ IHVzZWQgcHJpdmF0ZSByZXBvIHRvIGRldiB2ZHNtLCBzbyBJIHJlZ2lzdGVyIGEgZ2l0aHViIGlu IHRoaXMgbGluazo8L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9wZW5jYy92 ZHNtIiBfc3JjPSJodHRwczovL2dpdGh1Yi5jb20vcGVuY2MvdmRzbSI+aHR0cHM6Ly9naXRodWIu Y29tL3BlbmNjL3Zkc208L2E+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+Jm5ic3A7Jm5i c3A7IGl0J3MgYmFzZWQgb24gY29tbWl0IDI1ZWJiNWUwMTYzZWY2OTc4Nzk3NWRmNzM1N2E3NDEy MTMxNDFkNWU8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pk1haW4gdGhpbmdzIGl0IGRpZDo8L2Rp dj48ZGl2PjEudHJhbnNwbGFudCB2ZHNtIHRvIGN1c3RvbWVkIGRlYmlhbjggc3lzdGVtLjwvZGl2 PjxkaXY+Mi53aGVuIHdlIGNhbm5vdCBnZXQgbWVtVXNhZ2UgZnJvbSBvdmlydC1ndWVzdC1hZ2Vu dCwgd2UgZ2V0IGl0IGZyb20gbWVtYmFsbG9vbi48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PiZu YnNwOzxicj48L2Rpdj48ZGl2Pml0J3Mgd29ya3MgbmVlZCBtYW55IG90aGVyIGRlcGVuZGVuY3kg cGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBldGMsIHNvIHdlIG1hZGUgYSBpbnN0YWxsIHNj cmlwdC48YnI+PC9kaXY+PGRpdj5BbmQgTWF5YmUgdGhlIGN1c3RvbWVkIGRlYmlhbjggc3lzdGVt IGhhdmUgYSBsaXR0bGUgZGlmZmVyZW50IHdpdGggZGViaWFuOCBsaWtlIHNvbWUgcGFja2FnZXMn cyB2ZXJzaW9uLDwvZGl2PnNvIGlmIHRoZXJlJ3Mgc29tZSBvbmUgaW50ZXJlc3QgaW4gaXQsIEkg d2lsbCB1cGxvYWQgb3RoZXJzIGRlcGVuZGVuY3lzIGFuZCB0ZXN0IGl0IGluIGRlYmlhbjguJm5i c3A7IDxicj48YnI+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGJyPjxkaXYgc3R5bGU9 InBvc2l0aW9uOnJlbGF0aXZlO3pvb206MSI+PC9kaXY+PGRpdiBpZD0iZGl2TmV0ZWFzZU1haWxD YXJkIj48L2Rpdj7U2iAyMDE3LTA5LTA2IDE2OjE0OjExo6wiWWFuaXYgS2F1bCIgJmx0O3lrYXVs QHJlZGhhdC5jb20mZ3Q7INC0tcCjujxicj4gPGJsb2NrcXVvdGUgaWQ9ImlzUmVwbHlDb250ZW50 IiBzdHlsZT0iUEFERElORy1MRUZUOiAxZXg7IE1BUkdJTjogMHB4IDBweCAwcHggMC44ZXg7IEJP UkRFUi1MRUZUOiAjY2NjIDFweCBzb2xpZCI+PGRpdiBkaXI9Imx0ciI+PGJyPjxkaXYgY2xhc3M9 ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgU2VwIDYs IDIwMTcgYXQgNDozOSBBTSwgcGVuZ3lpeGlhbmcgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVm PSJtYWlsdG86eXhwZW5naTM4NkAxNjMuY29tIiB0YXJnZXQ9Il9ibGFuayI+eXhwZW5naTM4NkAx NjMuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxf cXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xp ZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDoxLjc7Y29sb3I6IzAw MDAwMDtmb250LXNpemU6MTRweDtmb250LWZhbWlseTpBcmlhbCI+PGRpdj5oaSZuYnNwOyA8YnI+ PC9kaXY+PGRpdj4mbmJzcDsmbmJzcDsgSSB0aGluayBPdmlydCBpcyBncmVhdCwgYnV0IG91cjxz cGFuIGNsYXNzPSJtXzc0NDgyMjMwNTIyMDY1ODg4MjdvcF9kaWN0X3RleHQyIj4gYXBwbGljYXRp b24gc2NlbmFyaW9zIGlzIHNvbWUgZGlmZmVyZW50LCBvdXIgdm0ncyBjbGllbnQgaXMgPC9zcGFu PmVtYmVkZGVkIHN5c3RlbSB3aXRoIHNwaWNlIGluIG1pbmkgbGludXgsY2xpZW50IGlzIGEgUVQs IDxicj48L2Rpdj48ZGl2PnVzaW5nIGhkbWkgY29ubmVjdCB0byBkaXNwbGF5LiBBbmQgd2UgbmVl ZCBzcGVjaWZpY3MgdXNlcnMvYWRtaW5zIGZ1bmMsIHVzZXIgY2FuIHJlZ2lzdGVyLCBhZG1pbnMg Y2FuIHJlY2VpdmVkIGluIGUtbWFpbCwgc2V0IGdyb3VwIC4uLiBldGMuIDxicj48L2Rpdj48ZGl2 PkFuZCBvdXIgbm9kZSBpcyBjdXN0b21lZCBkZWJpYW44IHN5c3RlbShjb21wYW55J3Mgc3lzdGVt KSwgYWZ0ZXIgd2UgdHJhbnNwbGFudCB2ZHNtIHRvIGRlYmlhbiwgd2UgbmVlZCBvZmZsaW5lJ3Mg aW5zdGFsbCwgc28gd2UgYWNoaWV2ZWQ8L2Rpdj48ZGl2PmEgImRlcGxveSIgZnVuYyBpbiBlbmdp bmUsIGFuZCBpIHRoaW5rIG92aXJ0LW5vZGUncyBubyBzdGF0dXMgaXMgYSBnb29kIGlkZWEsIG1h eSBiZSBldmVyeXRpbWUgYWZ0ZXIgZGViaWFuLW5vZGUgcmVib290LCB3ZSBleGVjdXRlIGRlcGxv eSBmdW5jIDxicj48L2Rpdj48ZGl2PmlzIGEgZ29vZCBpZGVhIHRvbz8gYmVjYXVzZSBpZiB3ZSBj aGFuZ2VkIHNvbWUgY29kZSwgaXQncyBlYXNpZXIgdG8gbG90IHNpemUgaW5zdGFsbC48YnI+PC9k aXY+PGRpdj4mbmJzcDsmbmJzcDsgSW4gdGhlIGVuZCwgaSB0aGluayBnd3QgaXMgZ3JlYXQgaW4g Z2VlaywgYnV0IG5vdCB3ZWxsIGluIGNvbXBhbnksIGJlY2F1c2UgaGF2ZSBodG1sL2Nzcy9qcy9q c3Agc2tpbGwncyBmcm9uZC1lbmRlciBpcyBlYXNpZXIgdG8gZmluZCwgaXQgbWF5IGN1dCB0aGUg Y29zdHMuPGJyPjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48ZGl2Pkl0 IHNlZW1zIGxpa2UgeW91IGhhdmUgZm9ya2VkIG9WaXJ0LiBXaGlsZSBpdCdzIHF1aXRlIHBvc3Np YmxlIHRvIGRvIHNvLCBJIHVyZ2UgeW91IHRvIGNvbnRyaWJ1dGUgYmFjayB0aGUgZmVhdHVyZXMg YW5kIGZpeGVzIHlvdSBoYXZlIG1hZGUuIEFzIGFuIGV4YW1wbGUgZnJvbSBhYm92ZSwgSSBrbm93 IHRoZXJlIGlzIGludGVyZXN0IGluIHRoZSB1c2VycyBjb21tdW5pdHkgdG8gcnVuIERlYmlhbiBi YXNlZCBob3N0cyAtIHNvIHdlJ2xsIGJlIGhhcHB5IHRvIHNlZSBWRFNNIHdvcmtpbmcgb24gRGVi aWFuLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SXMgdGhlcmUgYXQgbGVhc3QgYSBwdWJsaWMg cmVwb3NpdG9yeSB3aGVyZSB3ZSBjYW4gc2VlIHRoZSBjaGFuZ2VzIG1hZGU/PC9kaXY+PGRpdj5Z LjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5 bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmct bGVmdDoxZXgiPjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNztjb2xvcjojMDAwMDAwO2ZvbnQt c2l6ZToxNHB4O2ZvbnQtZmFtaWx5OkFyaWFsIj48ZGl2PjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0i aDUiPjxicj48YnI+PGJyPjxicj48ZGl2IHN0eWxlPSJ6b29tOjEiPjwvZGl2PjxkaXYgaWQ9Im1f NzQ0ODIyMzA1MjIwNjU4ODgyN2Rpdk5ldGVhc2VNYWlsQ2FyZCI+PC9kaXY+PGJyPtTaIDIwMTct MDktMDUgMTc6MzE6NDCjrCJZYW5pdiBLYXVsIiAmbHQ7PGEgaHJlZj0ibWFpbHRvOnlrYXVsQHJl ZGhhdC5jb20iIHRhcmdldD0iX2JsYW5rIj55a2F1bEByZWRoYXQuY29tPC9hPiZndDsg0LS1wKO6 PGJyPiA8YmxvY2txdW90ZSBpZD0ibV83NDQ4MjIzMDUyMjA2NTg4ODI3aXNSZXBseUNvbnRlbnQi IHN0eWxlPSJQQURESU5HLUxFRlQ6MWV4O01BUkdJTjowcHggMHB4IDBweCAwLjhleDtCT1JERVIt TEVGVDojY2NjIDFweCBzb2xpZCI+PGRpdiBkaXI9Imx0ciI+PGJyPjxkaXYgY2xhc3M9ImdtYWls X2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFR1ZSwgU2VwIDUsIDIwMTcg YXQgNjoxNCBBTSwgcGVuZ3lpeGlhbmcgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWls dG86eXhwZW5naTM4NkAxNjMuY29tIiB0YXJnZXQ9Il9ibGFuayI+eXhwZW5naTM4NkAxNjMuY29t PC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUi IHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRk aW5nLWxlZnQ6MWV4Ij48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDoxLjc7Y29sb3I6IzAwMDAwMDtm b250LXNpemU6MTRweDtmb250LWZhbWlseTpBcmlhbCI+PGRpdj5oZWxsbywgZXZlcnlvbmUhPC9k aXY+PGRpdj4mbmJzcDsmbmJzcDsmbmJzcDsgV2UgbmVlZCB0byBjdXN0b21lZCBvdmlydCwgYW5k IG5vdyBJIG5lZWQgdG8ga25vdyB3aGljaCBhcGkgYmVlbiBjYWxsZWQgYW5kIHRyYW5zcG9ydCdz IHBhcmFtcyBhZnRlciBidXR0b24gYmVlbiBwdXNoZWQgaW4gZW5naW5lLCBJIHRyeSB0byBhZGQg bG9ncyBsaWtlIHRoaXMgaW4gdmRzbTo8L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+ PC9kaXY+PGRpdj5DYW4geW91IGV4cGxhaW4gd2hhdCB5b3UgYXJlIHRyeWluZyB0byBhY2hpZXZl PyBXaGF0IGN1c3RvbWl6YXRpb24gYXJlIHlvdSBsb29raW5nIGZvcj88L2Rpdj48ZGl2Pkl0J2Qg YmUgZ3JlYXQgaWYgeW91IGNhbiBjb250cmlidXRlIHlvdXIgY2hhbmdlcyBzbyB0aGUgY29tbXVu aXR5IGNhbiBiZW5lZml0IGZyb20gdGhlbS48L2Rpdj48ZGl2PlkuPC9kaXY+PGRpdj4mbmJzcDs8 L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAg LjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IHN0 eWxlPSJsaW5lLWhlaWdodDoxLjc7Y29sb3I6IzAwMDAwMDtmb250LXNpemU6MTRweDtmb250LWZh bWlseTpBcmlhbCI+PGRpdj48YnI+PC9kaXY+PGRpdj4mbmJzcDs0NTUmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgQGFwaS5tZXRob2Q8YnI+Jm5ic3A7NDU2Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGRlZiBob3RwbHVnRGlzayhzZWxmLCBwYXJhbXMpOjxicj4mbmJzcDs0NTcmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3lzbG9nLnN5c2xvZygiLS0taW4g Vk0gaG90cGx1Z0Rpc2siKTxicj4mbmJzcDs0NTgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgc3lzbG9nLnN5c2xvZygicGFyYW1zOiVzIiAlIChwYXJhbXMp KTxicj4mbmJzcDs0NTkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgdHJ5Ojxicj4mbmJzcDs0NjAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXRpbHMudmFsaWRhdGVNaW5p bWFsS2V5U2V0KHBhPHdicj48L3dicj5yYW1zLCAoJ3ZtSWQnLCAnZHJpdmUnKSk8YnI+Jm5ic3A7 NDYxJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGV4Y2Vw dCBWYWx1ZUVycm9yOjxicj4mbmJzcDs0NjImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc2VsZi5sb2cuZXJyb3Io J01pc3Npbmcgb25lIG9mIHJlcXVpcmVkIHBhcmFtZXRlcnM6IHZtSWQsIGRyaXZlJyk8YnI+Jm5i c3A7NDYzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiB7J3N0YXR1cyc6IHsnY29kZSc6IGVyckNvZGVb J01pc3NQYXJhbSddWydzdGF0dXMnXTx3YnI+PC93YnI+Wydjb2RlJ10sPGJyPiZuYnNwOzQ2NCZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzx3YnI+PC93YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICdtZXNzYWdlJzogJ01pc3Npbmcgb25lIG9mIHJlcXVp cmVkICc8YnI+Jm5ic3A7NDY1Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7PHdicj48L3dicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJ3Bh cmFtZXRlcnM6IHZtSWQsIGRyaXZlJ319PGJyPiZuYnNwOzQ2NiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gc2VsZi52bS5ob3RwbHVnRGlzayhw YXJhbXMpPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5idXQgdGhlIG51bWJlciBvZiBhcGkgbWV0 aG9kIGlzIHRvbyBtdWNoLCZuYnNwOyB3aGVyZSBzaG91bGQgSSBhZGQgaXMgYmV0dGVyIHRvIHBy aW50IGNhbGxlZCBhcGkgbWV0aG9kIG5hbWUgYW5kIHBhcmFtcz88YnI+PC9kaXY+PGRpdj48YnI+ PC9kaXY+PC9kaXY+PGJyPjxicj48c3BhbiB0aXRsZT0ibmV0ZWFzZWZvb3RlciI+PHA+Jm5ic3A7 PC9wPjwvc3Bhbj48YnI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPHdicj48L3dicj5f X19fX19fX19fX19fX19fXzxicj4KRGV2ZWwgbWFpbGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWls dG86RGV2ZWxAb3ZpcnQub3JnIiB0YXJnZXQ9Il9ibGFuayI+RGV2ZWxAb3ZpcnQub3JnPC9hPjxi cj4KPGEgaHJlZj0iaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVs IiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbGlzdHMub3ZpcnQub3Jn L21haWxtYW48d2JyPjwvd2JyPi9saXN0aW5mby9kZXZlbDwvYT48YnI+PC9ibG9ja3F1b3RlPjwv ZGl2Pjxicj48L2Rpdj48L2Rpdj4KPC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvZGl2Pjxicj48 YnI+PHNwYW4gdGl0bGU9Im5ldGVhc2Vmb290ZXIiPjxwPiZuYnNwOzwvcD48L3NwYW4+PC9ibG9j a3F1b3RlPjwvZGl2Pjxicj48L2Rpdj48L2Rpdj4KPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48YnI+ PHNwYW4gdGl0bGU9Im5ldGVhc2Vmb290ZXIiPjxwPiZuYnNwOzwvcD48L3NwYW4+ ------=_Part_39898_791796573.1504747812763--
participants (4)
-
pengyixiang
-
Piotr Kliczewski
-
Roy Golan
-
Yaniv Kaul