)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"bd2e50054d1c0f967bcd91024c7238863efd9040","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow to get multiple devices instead of just one"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8497256d7f4f2fb48b5cb792e35aaedf63f129fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAUH%2F%2FQvg%3D","line":11,"updated":"2014-01-15 18:47:52.000000000","message":"Bug/blueprint reference?","commit_id":"39a7bafdd53e87aa643fc24b8e866db8f305ddcd"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"28f960f2c33b30e5f0db6ad17693f96909ec13c7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This change introduces a new method in the rpc api."},{"line_number":11,"context_line":"In case of rolling upgrades, update the server first"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"DocImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I8497256d7f4f2fb48b5cb792e35aaedf63f129fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2FK%2FQ%3D","line":13,"updated":"2014-01-16 19:11:49.000000000","message":"Bug or BP reference?","commit_id":"d3091fc9ae59d06e1303db1c90aaaadd1e2c09fa"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bf743e765c815d895ee602b92672d23748e955c4","unresolved":false,"context_lines":[{"line_number":11,"context_line":"In case of rolling upgrades, update the server first"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"DocImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I8497256d7f4f2fb48b5cb792e35aaedf63f129fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAUH%2F%2FKoA%3D","line":14,"updated":"2014-01-16 20:55:53.000000000","message":"pedantry: please add a bug report to launchpad and specify the bug id in the commit message.","commit_id":"4dd0c7682678480e35846d6ef27e4e55e2a31bb0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"7cfd07fb387a47952748b2121a932cf6e1cc58eb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introduce bulk calls for get device details"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow to get multiple devices details instead of just one"},{"line_number":10,"context_line":"This change introduces a new method in the rpc api."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"blueprint bulk-get-device-details"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"1ae5cdf2_6d9481e8","line":10,"updated":"2014-06-17 12:21:48.000000000","message":"DocImpact?","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"e8b2828062c221453603cc286cfdc6a085e7d1fa","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introduce bulk calls for get device details"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow to get multiple devices details instead of just one"},{"line_number":10,"context_line":"This change introduces a new method in the rpc api."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"blueprint bulk-get-device-details"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"1ae5cdf2_c5a9e426","line":10,"in_reply_to":"1ae5cdf2_263453de","updated":"2014-06-17 15:43:14.000000000","message":"I reviewed the code and it is correct, there is not impact on anything already document. So, it is not needed.","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"8f09e1f13013e33d3ef321f2aacc12aa3400e38d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introduce bulk calls for get device details"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow to get multiple devices details instead of just one"},{"line_number":10,"context_line":"This change introduces a new method in the rpc api."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"blueprint bulk-get-device-details"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"1ae5cdf2_263453de","line":10,"in_reply_to":"1ae5cdf2_6d9481e8","updated":"2014-06-17 14:56:03.000000000","message":"Not sure, it\u0027s an internal change, it\u0027s not exposed outside and it doesn\u0027t impact any process like for example upgrading","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"d1e17e43ac81e79aea1888623922254f31d906e0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introduce bulk calls for get device details"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow to get multiple devices details instead of just one"},{"line_number":10,"context_line":"This change introduces a new method in the rpc api."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"blueprint bulk-get-device-details"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"1ae5cdf2_fec0c27d","line":10,"in_reply_to":"1ae5cdf2_c5a9e426","updated":"2014-06-19 16:14:37.000000000","message":"Thanks Edgar!","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"}],"neutron/agent/rpc.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"37dc01d75b96b50bfbdef8ec9547872a5713e410","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        super(PluginApi, self).__init__("},{"line_number":89,"context_line":"            topic\u003dtopic, default_version\u003dself.BASE_RPC_API_VERSION)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_devices_details(self, context, devices, agent_id):"},{"line_number":92,"context_line":"        return self.call(context,"},{"line_number":93,"context_line":"                         self.make_msg(\u0027get_devices_details\u0027, devices\u003ddevices,"},{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FLyU%3D","line":91,"updated":"2014-01-16 16:53:59.000000000","message":"It seems like a backward incompatible change of agent to plugin rpc api. I\u0027d suggest to just add new methods, probably with an rpc version parameter set to \u00271.2\u0027.","commit_id":"bdb8a7ca64923ec6693e374f4f7e41eb53e186bd"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"aadf2f3c678ba349b115a63ee2b1876cf72c9590","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"},{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details\u0027, devices\u003ddevices,"},{"line_number":100,"context_line":"                                       agent_id\u003dagent_id),"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2BNhs%3D","line":97,"updated":"2014-01-29 01:33:34.000000000","message":"Maybe consider remainin renaming this to get_devices_details_list throughout too.","commit_id":"95ec89420510a71f589d66a5f49173682782b772"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"b73865e127e690113c6c5a01236401a54f8efae6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"},{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details\u0027, devices\u003ddevices,"},{"line_number":100,"context_line":"                                       agent_id\u003dagent_id),"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F9%2BOc%3D","line":97,"in_reply_to":"AAAAUH%2F%2BNhs%3D","updated":"2014-01-31 14:37:51.000000000","message":"Thanks Carl. Done!","commit_id":"95ec89420510a71f589d66a5f49173682782b772"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"a075d233d7d70b97b91afb974f7ce3e92d17a7ee","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"},{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAU3%2F%2Fb2o%3D","line":97,"updated":"2014-02-26 16:50:44.000000000","message":"shouldn\u0027t we bump the RPC_API_VERSION? That\u0027s what\u0027s been advised here:\n\nhttps://github.com/openstack/oslo-incubator/blob/master/openstack/common/rpc/dispatcher.py","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"492ffcc5aa868a1975275ea056c56e3e886880c5","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"},{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAVX%2F%2F8vI%3D","line":97,"in_reply_to":"AAAAU3%2F%2Fb2o%3D","updated":"2014-02-27 07:27:38.000000000","message":"Hi Armando. AFAIK for a backward compatible change RPC_API_VERSION should be bumped on the server side only, while the client side should specify required api version in the request (#102). From the link you\u0027ve provided:\n\n\"Adding a new method is a backwards compatible change.  It should be added to\nnova/compute/manager.py, and RPC_API_VERSION should be bumped from X.Y to\nX.Y+1.  On the client side, the new method in nova/compute/rpcapi.py should\nhave a specific version specified to indicate the minimum API version that must\nbe implemented for the method to be supported\"","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"b687f3b2abcc6bcdb1e1aa73eec7161ce6b67060","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"},{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAVn%2F%2FGvQ%3D","line":97,"in_reply_to":"AAAAVX%2F%2F7aY%3D","updated":"2014-03-09 17:12:05.000000000","message":"Bumping the version when adding a new method is not mandatory, but advised; that is clear. However, instead of causing the nuisance for the admin asking them to upgrade things in a specific order, you could leverage the version bump and make things version dependent. So no, my -1 stays, but I won\u0027t take personally if you want to ignore it :)","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"e8047386a2449c88d4f00884edc73826b3e998bb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                       agent_id\u003dagent_id),"},{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAVX%2F%2F7aY%3D","line":97,"in_reply_to":"AAAAVX%2F%2F8vI%3D","updated":"2014-02-27 10:06:36.000000000","message":"Armando thanks for the link and Oleg thanks for the detailed explaination. Armando does it answer your question?","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d58c5554fb59ed85d9409d00630fbcc1a78de0c0","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"},{"line_number":101,"context_line":"                                       agent_id\u003dagent_id),"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAVn%2F%2FA4I%3D","line":98,"updated":"2014-03-10 17:54:50.000000000","message":"Hi Rossella, I really appreciate your time and effort for listening to and addressing my concerns. That said, shouldn\u0027t we catch the UnsupportedRpcVersion exception and try with get_device_details as a fallback (in case of older server-side)? This way, we completely get rid of the upgrade limitation. So if my understanding is correct, we no longer need the DocImpact on the commit message.","commit_id":"124fd338426e781b3449d807ff4ab0350087fe6c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"42d49f9ebc6b0f5c74f37a929d8532413eef6b01","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"},{"line_number":101,"context_line":"                                       agent_id\u003dagent_id),"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAVn%2F%2B6zY%3D","line":98,"in_reply_to":"AAAAVn%2F%2FA4I%3D","updated":"2014-03-11 09:51:23.000000000","message":"+1, nice suggestion!","commit_id":"124fd338426e781b3449d807ff4ab0350087fe6c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"2fd6383e0384ec0bf669fa7aedaee64e5a5d631a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                         topic\u003dself.topic)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def get_devices_details_list(self, context, devices, agent_id):"},{"line_number":98,"context_line":"        return self.call(context,"},{"line_number":99,"context_line":"                         self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                       devices\u003ddevices,"},{"line_number":101,"context_line":"                                       agent_id\u003dagent_id),"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAWH%2F%2FqMM%3D","line":98,"in_reply_to":"AAAAVn%2F%2FA4I%3D","updated":"2014-03-14 17:03:26.000000000","message":"Hi Armando, thanks a lot, I am the one who appreciate your efforts for reviewing and making this patch better. Thanks for your suggestions, I really like it.","commit_id":"124fd338426e781b3449d807ff4ab0350087fe6c"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"5b3e5efc95414a6df36f9733e5a7f8dcc1b3c0aa","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":111,"context_line":"                          topic\u003dself.topic)"},{"line_number":112,"context_line":"                for device in devices"},{"line_number":113,"context_line":"            ]"},{"line_number":114,"context_line":"        return res"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def update_device_down(self, context, device, agent_id, host\u003dNone):"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAAWH%2F%2Fhcw%3D","line":113,"updated":"2014-03-17 11:14:01.000000000","message":"Very good fall back mechanism.","commit_id":"6786ebd12018f200cefa7faebf1c65e8e3633b51"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0a1f11baee7092476e7970faa52854f11a948aac","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":111,"context_line":"                          topic\u003dself.topic)"},{"line_number":112,"context_line":"                for device in devices"},{"line_number":113,"context_line":"            ]"},{"line_number":114,"context_line":"        return res"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def update_device_down(self, context, device, agent_id, host\u003dNone):"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAAWH%2F%2FhCw%3D","line":113,"in_reply_to":"AAAAWH%2F%2Fhcw%3D","updated":"2014-03-17 12:09:28.000000000","message":"Thanks Miguel Angel! Actually I cannot take credit for it, it was Armando\u0027s idea, he commented in the previous patch.","commit_id":"6786ebd12018f200cefa7faebf1c65e8e3633b51"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":74,"context_line":"class PluginApi(rpc_compat.RpcProxy):"},{"line_number":75,"context_line":"    \u0027\u0027\u0027Agent side of the rpc API."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    API version history:"},{"line_number":78,"context_line":"        1.0 - Initial version."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_6cdf033b","line":77,"updated":"2014-06-25 11:54:34.000000000","message":"Should we update that one? Yes, it already misses description for 1.1.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                            self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":99,"context_line":"                                          devices\u003ddevices,"},{"line_number":100,"context_line":"                                          agent_id\u003dagent_id),"},{"line_number":101,"context_line":"                            topic\u003dself.topic, version\u003d\u00271.2\u0027)"},{"line_number":102,"context_line":"        except rpc_compat.UnsupportedRpcVersion:"},{"line_number":103,"context_line":"            res \u003d ["},{"line_number":104,"context_line":"                self.call(context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_cc49f761","line":101,"updated":"2014-06-25 11:54:34.000000000","message":"I think topic is already set to self.topic (it\u0027s set in RpcProxy for backwards compatibility, but it\u0027s not needed when you don\u0027t override it).","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b378d7f91a2deefd8861605e14f300e1fe73fe44","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                            self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":99,"context_line":"                                          devices\u003ddevices,"},{"line_number":100,"context_line":"                                          agent_id\u003dagent_id),"},{"line_number":101,"context_line":"                            topic\u003dself.topic, version\u003d\u00271.2\u0027)"},{"line_number":102,"context_line":"        except rpc_compat.UnsupportedRpcVersion:"},{"line_number":103,"context_line":"            res \u003d ["},{"line_number":104,"context_line":"                self.call(context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_4a5a22f3","line":101,"in_reply_to":"1ae5cdf2_c0d45beb","updated":"2014-06-25 14:28:37.000000000","message":"That doesn\u0027t mean it\u0027s a correct thing to do in oslo.messaging context. It\u0027s unneeded. We probably may also cleanup other cases in that file, but that\u0027s beyond that patch. If you\u0027d like to handle that, you can do it with a separate patch.\n\nBut please don\u0027t introduce new instances of that here.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                            self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":99,"context_line":"                                          devices\u003ddevices,"},{"line_number":100,"context_line":"                                          agent_id\u003dagent_id),"},{"line_number":101,"context_line":"                            topic\u003dself.topic, version\u003d\u00271.2\u0027)"},{"line_number":102,"context_line":"        except rpc_compat.UnsupportedRpcVersion:"},{"line_number":103,"context_line":"            res \u003d ["},{"line_number":104,"context_line":"                self.call(context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_c0d45beb","line":101,"in_reply_to":"1ae5cdf2_cc49f761","updated":"2014-06-25 14:17:20.000000000","message":"I am doing exactly the same as in all the other methods","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                self.call(context,"},{"line_number":105,"context_line":"                          self.make_msg(\u0027get_device_details\u0027, device\u003ddevice,"},{"line_number":106,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":107,"context_line":"                          topic\u003dself.topic)"},{"line_number":108,"context_line":"                for device in devices"},{"line_number":109,"context_line":"            ]"},{"line_number":110,"context_line":"        return res"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_ec44f348","line":107,"updated":"2014-06-25 11:54:34.000000000","message":"Same here.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b378d7f91a2deefd8861605e14f300e1fe73fe44","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                self.call(context,"},{"line_number":105,"context_line":"                          self.make_msg(\u0027get_device_details\u0027, device\u003ddevice,"},{"line_number":106,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":107,"context_line":"                          topic\u003dself.topic)"},{"line_number":108,"context_line":"                for device in devices"},{"line_number":109,"context_line":"            ]"},{"line_number":110,"context_line":"        return res"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_6a70be73","line":107,"in_reply_to":"1ae5cdf2_20fdff6e","updated":"2014-06-25 14:28:37.000000000","message":"See above.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                self.call(context,"},{"line_number":105,"context_line":"                          self.make_msg(\u0027get_device_details\u0027, device\u003ddevice,"},{"line_number":106,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":107,"context_line":"                          topic\u003dself.topic)"},{"line_number":108,"context_line":"                for device in devices"},{"line_number":109,"context_line":"            ]"},{"line_number":110,"context_line":"        return res"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_20fdff6e","line":107,"in_reply_to":"1ae5cdf2_ec44f348","updated":"2014-06-25 14:17:20.000000000","message":"Same","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                          devices\u003ddevices,"},{"line_number":101,"context_line":"                                          agent_id\u003dagent_id),"},{"line_number":102,"context_line":"                            topic\u003dself.topic, version\u003d\u00271.2\u0027)"},{"line_number":103,"context_line":"        except messaging.UnsupportedVersion:"},{"line_number":104,"context_line":"            res \u003d ["},{"line_number":105,"context_line":"                self.call(context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_5c749e35","line":102,"updated":"2014-06-25 21:11:17.000000000","message":"setting topic to self.topic is unneeded here. It\u0027s the default value for RPC client, so no need to rewrite it.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ce9b882f83c5eaf394dbe5a0522f6e88455891d9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                          devices\u003ddevices,"},{"line_number":101,"context_line":"                                          agent_id\u003dagent_id),"},{"line_number":102,"context_line":"                            topic\u003dself.topic, version\u003d\u00271.2\u0027)"},{"line_number":103,"context_line":"        except messaging.UnsupportedVersion:"},{"line_number":104,"context_line":"            res \u003d ["},{"line_number":105,"context_line":"                self.call(context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_1723d1be","line":102,"in_reply_to":"1ae5cdf2_3719ad23","updated":"2014-06-25 21:33:38.000000000","message":"Yes, ok. Just make sure you do the work. :)","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            self.make_msg(\u0027get_devices_details_list\u0027,"},{"line_number":100,"context_line":"                                          devices\u003ddevices,"},{"line_number":101,"context_line":"                                          agent_id\u003dagent_id),"},{"line_number":102,"context_line":"                            topic\u003dself.topic, version\u003d\u00271.2\u0027)"},{"line_number":103,"context_line":"        except messaging.UnsupportedVersion:"},{"line_number":104,"context_line":"            res \u003d ["},{"line_number":105,"context_line":"                self.call(context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_3719ad23","line":102,"in_reply_to":"1ae5cdf2_5c749e35","updated":"2014-06-25 21:31:19.000000000","message":"are you ok with doing that in another patch since it\u0027s affecting also other part of the code?","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                self.call(context,"},{"line_number":106,"context_line":"                          self.make_msg(\u0027get_device_details\u0027, device\u003ddevice,"},{"line_number":107,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":108,"context_line":"                          topic\u003dself.topic)"},{"line_number":109,"context_line":"                for device in devices"},{"line_number":110,"context_line":"            ]"},{"line_number":111,"context_line":"        return res"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_bc904243","line":108,"updated":"2014-06-25 21:11:17.000000000","message":"same as above.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                self.call(context,"},{"line_number":106,"context_line":"                          self.make_msg(\u0027get_device_details\u0027, device\u003ddevice,"},{"line_number":107,"context_line":"                                        agent_id\u003dagent_id),"},{"line_number":108,"context_line":"                          topic\u003dself.topic)"},{"line_number":109,"context_line":"                for device in devices"},{"line_number":110,"context_line":"            ]"},{"line_number":111,"context_line":"        return res"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_5718f91d","line":108,"in_reply_to":"1ae5cdf2_bc904243","updated":"2014-06-25 21:31:19.000000000","message":"same","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"}],"neutron/common/rpc_compat.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":163,"context_line":"RPCException \u003d messaging.MessagingException"},{"line_number":164,"context_line":"RemoteError \u003d messaging.RemoteError"},{"line_number":165,"context_line":"MessagingTimeout \u003d messaging.MessagingTimeout"},{"line_number":166,"context_line":"UnsupportedRpcVersion \u003d messaging.UnsupportedRpcVersion"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_0c875f13","line":166,"updated":"2014-06-25 11:54:34.000000000","message":"if this is a new exception type not used before your patch, you may probably avoid that another level of indirection and use oslo.messaging directly. These exception types are here just to facilitate migration to oslo.messaging, there is no need to duplicate new exceptions here.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"f4e79b5cd9bc5c51a705707c087c42add756e792","unresolved":false,"context_lines":[{"line_number":163,"context_line":"RPCException \u003d messaging.MessagingException"},{"line_number":164,"context_line":"RemoteError \u003d messaging.RemoteError"},{"line_number":165,"context_line":"MessagingTimeout \u003d messaging.MessagingTimeout"},{"line_number":166,"context_line":"UnsupportedRpcVersion \u003d messaging.UnsupportedRpcVersion"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_a5ec06bd","line":166,"updated":"2014-06-23 21:28:11.000000000","message":"messaging.UnsupportedVersion ?","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":163,"context_line":"RPCException \u003d messaging.MessagingException"},{"line_number":164,"context_line":"RemoteError \u003d messaging.RemoteError"},{"line_number":165,"context_line":"MessagingTimeout \u003d messaging.MessagingTimeout"},{"line_number":166,"context_line":"UnsupportedRpcVersion \u003d messaging.UnsupportedRpcVersion"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_a0f02f92","line":166,"in_reply_to":"1ae5cdf2_0c875f13","updated":"2014-06-25 14:17:20.000000000","message":"OK","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/plugins/brocade/NeutronPlugin.py":[{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"dafe419ce06bcd08a1f218a8b7c1b2acfcfd8319","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        entries \u003d []"},{"line_number":156,"context_line":"        for device in devices:"},{"line_number":157,"context_line":"            kwargs[\u0027device\u0027] \u003d device"},{"line_number":158,"context_line":"            entry \u003d self._get_device_details(rpc_context, kwargs)"},{"line_number":159,"context_line":"            entries.append(entry)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        return entries"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FKp0%3D","line":158,"updated":"2014-01-16 19:54:47.000000000","message":"where is _get_device_details defined?","commit_id":"4dd0c7682678480e35846d6ef27e4e55e2a31bb0"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"73f1111660232e2174e7f5afd6ca195b35ed6c45","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":150,"context_line":"        return entry"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        entries \u003d []"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9lSk%3D","line":152,"updated":"2014-02-05 21:51:17.000000000","message":"Is it possible to push up this function (or most of it), to a common function, rather than duplicating the logic in several plugins?","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9720e1b662b9f70e087a725f90ef5c87c824ae0a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":150,"context_line":"        return entry"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        entries \u003d []"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9gyY%3D","line":152,"in_reply_to":"AAAAUH%2F9lSk%3D","updated":"2014-02-06 12:02:53.000000000","message":"Hi Paul, I was annoyed by the duplication of the code too but haven\u0027t found any better solution. Suggestions?","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"9422e32d0dbcd5779e7b7aac2dcc67ef12e9e1e8","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        entries \u003d []"},{"line_number":156,"context_line":"        for device in devices:"},{"line_number":157,"context_line":"            kwargs[\u0027device\u0027] \u003d device"},{"line_number":158,"context_line":"            entry \u003d self.get_device_details(rpc_context, **kwargs)"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9nCs%3D","line":155,"updated":"2014-02-05 17:36:40.000000000","message":"I\u0027d suggest switching to a generator expression and not adding a key to kwargs dict.  Replace 153-161 with:\n\nreturn [\n    self.get_device_details(\n        rpc_context,\n        device\u003ddevice,\n        **kwargs\n    )\n    for device in kwargs.pop(\u0027devices\u0027, [])\n]","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9720e1b662b9f70e087a725f90ef5c87c824ae0a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        entries \u003d []"},{"line_number":156,"context_line":"        for device in devices:"},{"line_number":157,"context_line":"            kwargs[\u0027device\u0027] \u003d device"},{"line_number":158,"context_line":"            entry \u003d self.get_device_details(rpc_context, **kwargs)"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9gyw%3D","line":155,"in_reply_to":"AAAAUH%2F9nCs%3D","updated":"2014-02-06 12:02:53.000000000","message":"Thanks Mark, it looks much better!","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"8cdd6118217d7756081213eac42584f8845473c2","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":150,"context_line":"        return entry"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        return ["},{"line_number":154,"context_line":"            self.get_device_details("},{"line_number":155,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAUH%2F9gi4%3D","line":152,"updated":"2014-02-06 12:40:17.000000000","message":"Thoughts for refactoring to consider for reducing duplication in each plugin...\n\nCreate a base class that defines get_devices_details_list() and that loops through the devices and  calls get_device_details(), which is implemented in each plugin.","commit_id":"2f70b4fd3a622a6e1459d713fb5b74c7635e4334"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"05e9b204675c673128bf45d8b8d4ced0abc203ed","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":150,"context_line":"        return entry"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        return ["},{"line_number":154,"context_line":"            self.get_device_details("},{"line_number":155,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAUH%2F9f34%3D","line":152,"in_reply_to":"AAAAUH%2F9gi4%3D","updated":"2014-02-06 14:23:30.000000000","message":"Thanks Paul! Personally I wouldn\u0027t bother creating a base class just for this method, it\u0027s few lines in the end. Let\u0027s hear some other opinion, if more people agree I will change it","commit_id":"2f70b4fd3a622a6e1459d713fb5b74c7635e4334"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"3beabcb2b67c348cd5e9c7e3873bdee19da5429f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":150,"context_line":"        return entry"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        return ["},{"line_number":154,"context_line":"            self.get_device_details("},{"line_number":155,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ae5cdf2_4ea91a8f","line":152,"updated":"2014-06-04 11:28:19.000000000","message":"This method is repeated (identically in quite a few modules). Worth it to consider refactoring out into a helper module? Maybe as a separate bug?","commit_id":"8063677f37808ccd5a1a472ed42514a3fcb55058"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0017f3e8caa5174c226726e121f7b0a3aee10faa","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":150,"context_line":"        return entry"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":153,"context_line":"        return ["},{"line_number":154,"context_line":"            self.get_device_details("},{"line_number":155,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ae5cdf2_930bb47c","line":152,"in_reply_to":"1ae5cdf2_4ea91a8f","updated":"2014-06-17 09:35:45.000000000","message":"Thanks for the suggestion, will think about it","commit_id":"8063677f37808ccd5a1a472ed42514a3fcb55058"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":138,"context_line":"        return entry"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":141,"context_line":"        return ["},{"line_number":142,"context_line":"            self.get_device_details("},{"line_number":143,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_bcde820e","line":140,"updated":"2014-06-25 21:11:17.000000000","message":"this one and other methods of the same name from other classes are identical. we should think about reducing duplication. we can put a common function somewhere and then import it into each class scope.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ce9b882f83c5eaf394dbe5a0522f6e88455891d9","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":138,"context_line":"        return entry"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":141,"context_line":"        return ["},{"line_number":142,"context_line":"            self.get_device_details("},{"line_number":143,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_b7193d89","line":140,"in_reply_to":"1ae5cdf2_97b8c1e9","updated":"2014-06-25 21:33:38.000000000","message":"Yes, sure. Just make sure it\u0027s actually done and not forgotten.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":138,"context_line":"        return entry"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":141,"context_line":"        return ["},{"line_number":142,"context_line":"            self.get_device_details("},{"line_number":143,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_97b8c1e9","line":140,"in_reply_to":"1ae5cdf2_bcde820e","updated":"2014-06-25 21:31:19.000000000","message":"Good suggestion! Are you OK with addressing this in another patch? There are other parts of the code that can benefit, unfortunately code duplication is quite common in this rpc code.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"}],"neutron/plugins/hyperv/agent/hyperv_neutron_agent.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"28f960f2c33b30e5f0db6ad17693f96909ec13c7","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            LOG.debug(_(\"Unable to get ports details for \""},{"line_number":296,"context_line":"                      \"devices %(devices)s: %(e)s\"),"},{"line_number":297,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":298,"context_line":"            resync \u003d True"},{"line_number":299,"context_line":"            return resync"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        for device_details in devices_details:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FK%2BA%3D","line":298,"updated":"2014-01-16 19:11:49.000000000","message":"Could just return True. Could leave out L288 and it\u0027ll return None, which could be used in conditionals.","commit_id":"d3091fc9ae59d06e1303db1c90aaaadd1e2c09fa"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ccba042bddb0b9a99b1f6c7fc4fb21eeda4b6fd4","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def _treat_devices_added(self, devices):"},{"line_number":288,"context_line":"        resync \u003d False"},{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            devices_details \u003d self.plugin_rpc.get_devices_details("},{"line_number":291,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FKA4%3D","line":288,"updated":"2014-01-16 21:48:43.000000000","message":"No longer used. Can return False on line 318","commit_id":"cebf38663dc5703cb6a37b7972890f6dbe8f94ed"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ccba042bddb0b9a99b1f6c7fc4fb21eeda4b6fd4","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def _treat_devices_added(self, devices):"},{"line_number":288,"context_line":"        resync \u003d False"},{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            devices_details \u003d self.plugin_rpc.get_devices_details("},{"line_number":291,"context_line":"                self.context,"},{"line_number":292,"context_line":"                devices,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FKAg%3D","line":289,"updated":"2014-01-16 21:48:43.000000000","message":"Should this code block be put in a common module and used by the different agents (passing in self.plugin_rpc.get_devices_details)?","commit_id":"cebf38663dc5703cb6a37b7972890f6dbe8f94ed"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f90fd00f3bb48812528bbc2d5b30c376b3be395d","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":298,"context_line":"            return True"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        for device_details in devices_details:"},{"line_number":301,"context_line":"            device \u003d device_details[\u0027device\u0027]"},{"line_number":302,"context_line":"            LOG.info(_(\"Adding port %s\"), device)"},{"line_number":303,"context_line":"            if \u0027port_id\u0027 in device_details:"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FDcA%3D","line":300,"updated":"2014-01-17 21:40:28.000000000","message":"It is difficult to visually distinguish the plural and non-plural forms here.  Maybe devices_details could be renamed to something that is just a bit easier to distinguish.\n\nI\u0027m not sure what would be better.  Maybe something like n_devices_details or device_details_list or something.\n\nSame comment applies throughout.","commit_id":"9e68b1ad95829ee4b61b7db04009b513244e7ada"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"a2155556e2667a3cb0ef19d181a8c10e660ff532","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                                                 device,"},{"line_number":316,"context_line":"                                                 self.agent_id,"},{"line_number":317,"context_line":"                                                 cfg.CONF.host)"},{"line_number":318,"context_line":"        return resync"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def _treat_devices_removed(self, devices):"},{"line_number":321,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9exs%3D","line":318,"updated":"2014-02-06 16:20:19.000000000","message":"Same applies here.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1ac1fd3ffd4eff7d19a5c9d2abb1aaa3f850c01e","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                                                 device,"},{"line_number":316,"context_line":"                                                 self.agent_id,"},{"line_number":317,"context_line":"                                                 cfg.CONF.host)"},{"line_number":318,"context_line":"        return resync"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def _treat_devices_removed(self, devices):"},{"line_number":321,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUX%2F%2BUCc%3D","line":318,"in_reply_to":"AAAAUH%2F9exs%3D","updated":"2014-02-21 23:16:00.000000000","message":"this is outside the scope of the bug","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"3beabcb2b67c348cd5e9c7e3873bdee19da5429f","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                devices,"},{"line_number":366,"context_line":"                self.agent_id)"},{"line_number":367,"context_line":"        except Exception as e:"},{"line_number":368,"context_line":"            LOG.debug(_(\"Unable to get ports details for \""},{"line_number":369,"context_line":"                      \"devices %(devices)s: %(e)s\"),"},{"line_number":370,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":371,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ae5cdf2_ae1e1e0a","line":368,"updated":"2014-06-04 11:28:19.000000000","message":"Remove i18n translation from debug log message.","commit_id":"8063677f37808ccd5a1a472ed42514a3fcb55058"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0017f3e8caa5174c226726e121f7b0a3aee10faa","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                devices,"},{"line_number":366,"context_line":"                self.agent_id)"},{"line_number":367,"context_line":"        except Exception as e:"},{"line_number":368,"context_line":"            LOG.debug(_(\"Unable to get ports details for \""},{"line_number":369,"context_line":"                      \"devices %(devices)s: %(e)s\"),"},{"line_number":370,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":371,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ae5cdf2_b30ef08a","line":368,"in_reply_to":"1ae5cdf2_ae1e1e0a","updated":"2014-06-17 09:35:45.000000000","message":"Thanks","commit_id":"8063677f37808ccd5a1a472ed42514a3fcb55058"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1c7e398f369de59391665a26c129731b4a9d0bfa","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                devices,"},{"line_number":368,"context_line":"                self.agent_id)"},{"line_number":369,"context_line":"        except Exception as e:"},{"line_number":370,"context_line":"            LOG.debug(_(\"Unable to get ports details for \""},{"line_number":371,"context_line":"                      \"devices %(devices)s: %(e)s\"),"},{"line_number":372,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":373,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_d0210e9f","line":370,"updated":"2014-06-13 15:22:57.000000000","message":"can you please do the debug without the translation","commit_id":"b0d850f68d262234417fb1e73d050c4198ff8a47"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"52c9ae3d6739a37ba40325de6cc49ed1e33738f7","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                devices,"},{"line_number":368,"context_line":"                self.agent_id)"},{"line_number":369,"context_line":"        except Exception as e:"},{"line_number":370,"context_line":"            LOG.debug(_(\"Unable to get ports details for \""},{"line_number":371,"context_line":"                      \"devices %(devices)s: %(e)s\"),"},{"line_number":372,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":373,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_9359f490","line":370,"in_reply_to":"1ae5cdf2_d0210e9f","updated":"2014-06-17 09:36:32.000000000","message":"Done","commit_id":"b0d850f68d262234417fb1e73d050c4198ff8a47"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"2a6b0f380280ef4e650f1a0256dcb9c7049bde4c","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                devices,"},{"line_number":368,"context_line":"                self.agent_id)"},{"line_number":369,"context_line":"        except Exception as e:"},{"line_number":370,"context_line":"            LOG.debug(_(\"Unable to get ports details for \""},{"line_number":371,"context_line":"                      \"devices %(devices)s: %(e)s\"),"},{"line_number":372,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":373,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_767bd2f4","line":370,"in_reply_to":"1ae5cdf2_d0210e9f","updated":"2014-06-13 16:51:53.000000000","message":"come on ;)","commit_id":"b0d850f68d262234417fb1e73d050c4198ff8a47"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            LOG.debug(\"Unable to get ports details for \""},{"line_number":368,"context_line":"                      \"devices %(devices)s: %(e)s\","},{"line_number":369,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":370,"context_line":"            return True"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        for device_details in devices_details_list:"},{"line_number":373,"context_line":"            device \u003d device_details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_3cf19296","line":370,"updated":"2014-06-25 21:11:17.000000000","message":"now it\u0027s not clear what True means. please add a comment saying it\u0027s to request resync.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            LOG.debug(\"Unable to get ports details for \""},{"line_number":368,"context_line":"                      \"devices %(devices)s: %(e)s\","},{"line_number":369,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":370,"context_line":"            return True"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        for device_details in devices_details_list:"},{"line_number":373,"context_line":"            device \u003d device_details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_f784a5d4","line":370,"in_reply_to":"1ae5cdf2_3cf19296","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                self.plugin_rpc.update_device_up(self.context,"},{"line_number":395,"context_line":"                                                 device,"},{"line_number":396,"context_line":"                                                 self.agent_id,"},{"line_number":397,"context_line":"                                                 cfg.CONF.host)"},{"line_number":398,"context_line":"        return resync"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def _treat_devices_removed(self, devices):"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_fc364a50","line":397,"updated":"2014-06-25 21:11:17.000000000","message":"this is the only place where resync variable is used. Just replace with False, and remove variable.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                self.plugin_rpc.update_device_up(self.context,"},{"line_number":395,"context_line":"                                                 device,"},{"line_number":396,"context_line":"                                                 self.agent_id,"},{"line_number":397,"context_line":"                                                 cfg.CONF.host)"},{"line_number":398,"context_line":"        return resync"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def _treat_devices_removed(self, devices):"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_77709508","line":397,"in_reply_to":"1ae5cdf2_fc364a50","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"}],"neutron/plugins/hyperv/rpc_callbacks.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0c1a61a078bc032b04bc4777a1172899f9cd6947","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        return entry"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def get_devices_details(self, rpc_context, **kwargs):"},{"line_number":75,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027)"},{"line_number":76,"context_line":"        entries \u003d []"},{"line_number":77,"context_line":"        for device in devices:"},{"line_number":78,"context_line":"            kwargs[\u0027device\u0027] \u003d device"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FKME%3D","line":75,"updated":"2014-01-16 21:10:12.000000000","message":"is this always going to be a list.  Might be a go idea to be safe:\n\ndevices \u003d kwargs.pop(\u0027devices\u0027, [])","commit_id":"2bcb857cf103e1f9b3788f9bbabe3076e4d1620e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"9422e32d0dbcd5779e7b7aac2dcc67ef12e9e1e8","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        return entry"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def get_devices_details(self, rpc_context, **kwargs):"},{"line_number":75,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":76,"context_line":"        entries \u003d []"},{"line_number":77,"context_line":"        for device in devices:"},{"line_number":78,"context_line":"            kwargs[\u0027device\u0027] \u003d device"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9nBc%3D","line":75,"updated":"2014-02-05 17:36:40.000000000","message":"return [\n    self.get_device_details(\n        rpc_context,\n        device\u003ddevice,\n        **kwargs\n    )\n    for device in kwargs.pop(\u0027devices\u0027, [])\n]","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        dhcp_rpc_base.DhcpRpcCallbackMixin,"},{"line_number":31,"context_line":"        l3_rpc_base.L3RpcCallbackMixin):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # Set RPC API version to 1.0 by default."},{"line_number":34,"context_line":"    RPC_API_VERSION \u003d \u00271.2\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, notifier):"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_ac1f4bb7","line":33,"updated":"2014-06-25 11:54:34.000000000","message":"the comment does not look right. well, it wasn\u0027t correct before your patch, but can I ask you to update it? I think a history of RPC versions in a docstring would be beneficial.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"28f960f2c33b30e5f0db6ad17693f96909ec13c7","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        self.prepare_devices_filter(devices)"},{"line_number":869,"context_line":"        try:"},{"line_number":870,"context_line":"            devices_details \u003d self.plugin_rpc.get_devices_details("},{"line_number":871,"context_line":"                self.context, devices, self.agent_id)"},{"line_number":872,"context_line":"        except Exception as e:"},{"line_number":873,"context_line":"            LOG.debug(_(\"Unable to get port details for \""},{"line_number":874,"context_line":"                      \"%(devices)s: %(e)s\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FK9E%3D","line":871,"updated":"2014-01-16 19:11:49.000000000","message":"Since this code block (L869-877) appears in multiple places in the change set, with just a different RPC used to get details, should a common function, shared by each plugin, be used and pass in RPC function to be used?","commit_id":"d3091fc9ae59d06e1303db1c90aaaadd1e2c09fa"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"28f960f2c33b30e5f0db6ad17693f96909ec13c7","unresolved":false,"context_lines":[{"line_number":874,"context_line":"                      \"%(devices)s: %(e)s\"),"},{"line_number":875,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"            resync \u003d True"},{"line_number":878,"context_line":"            return resync"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"        for device_details in devices_details:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FK9U%3D","line":877,"updated":"2014-01-16 19:11:49.000000000","message":"Ditto.","commit_id":"d3091fc9ae59d06e1303db1c90aaaadd1e2c09fa"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"28f960f2c33b30e5f0db6ad17693f96909ec13c7","unresolved":false,"context_lines":[{"line_number":930,"context_line":"        except Exception as e:"},{"line_number":931,"context_line":"            LOG.debug(_(\"port_removed failed for %(devices)s: %(e)s\"),"},{"line_number":932,"context_line":"                        {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":933,"context_line":"            resync \u003d True"},{"line_number":934,"context_line":"            return resync"},{"line_number":935,"context_line":""},{"line_number":936,"context_line":"        for device_details in devices_details:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FK80%3D","line":933,"updated":"2014-01-16 19:11:49.000000000","message":"Same comment on eliminating temp variable","commit_id":"d3091fc9ae59d06e1303db1c90aaaadd1e2c09fa"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ccba042bddb0b9a99b1f6c7fc4fb21eeda4b6fd4","unresolved":false,"context_lines":[{"line_number":864,"context_line":"        return (resync_a | resync_b)"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":867,"context_line":"        resync \u003d False"},{"line_number":868,"context_line":"        self.prepare_devices_filter(devices)"},{"line_number":869,"context_line":"        try:"},{"line_number":870,"context_line":"            devices_details \u003d self.plugin_rpc.get_devices_details("}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FKAQ%3D","line":867,"updated":"2014-01-16 21:48:43.000000000","message":"Ditto","commit_id":"cebf38663dc5703cb6a37b7972890f6dbe8f94ed"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"a2155556e2667a3cb0ef19d181a8c10e660ff532","unresolved":false,"context_lines":[{"line_number":915,"context_line":"                                             device_details[\u0027port_id\u0027])"},{"line_number":916,"context_line":"            else:"},{"line_number":917,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":918,"context_line":"        return resync"},{"line_number":919,"context_line":""},{"line_number":920,"context_line":"    def treat_devices_removed(self, devices):"},{"line_number":921,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9ezQ%3D","line":918,"updated":"2014-02-06 16:20:19.000000000","message":"Same applies here.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"9b6784390f4a94086f0542a1b33816a095a10b5d","unresolved":false,"context_lines":[{"line_number":921,"context_line":"        resync \u003d False"},{"line_number":922,"context_line":"        self.remove_devices_filter(devices)"},{"line_number":923,"context_line":"        try:"},{"line_number":924,"context_line":"            devices_details \u003d self.plugin_rpc.update_devices_down("},{"line_number":925,"context_line":"                self.context,"},{"line_number":926,"context_line":"                devices,"},{"line_number":927,"context_line":"                self.agent_id,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAU3%2F%2FpEs%3D","line":924,"updated":"2014-02-25 14:21:28.000000000","message":"no update_devices_down in plugin_rpc","commit_id":"1ff96c361c05de4cc229532ba43d4b27648178cc"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"aedd29c09b5d1e7233db40b7580c39a89f63b9e6","unresolved":false,"context_lines":[{"line_number":921,"context_line":"        resync \u003d False"},{"line_number":922,"context_line":"        self.remove_devices_filter(devices)"},{"line_number":923,"context_line":"        try:"},{"line_number":924,"context_line":"            devices_details \u003d self.plugin_rpc.update_devices_down("},{"line_number":925,"context_line":"                self.context,"},{"line_number":926,"context_line":"                devices,"},{"line_number":927,"context_line":"                self.agent_id,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAU3%2F%2Ffz0%3D","line":924,"in_reply_to":"AAAAU3%2F%2FpEs%3D","updated":"2014-02-26 09:36:56.000000000","message":"good point!","commit_id":"1ff96c361c05de4cc229532ba43d4b27648178cc"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":872,"context_line":"                      \"%(devices)s: %(e)s\","},{"line_number":873,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"            return True"},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"        for device_details in devices_details_list:"},{"line_number":878,"context_line":"            device \u003d device_details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_2c97bbec","line":875,"updated":"2014-06-25 11:54:34.000000000","message":"Previously, it was clear that resync is requested from the caller. Now it\u0027s not that clear. Can you add a comment describing what we try to achieve by returning True?","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":913,"context_line":"                                             device_details[\u0027port_id\u0027])"},{"line_number":914,"context_line":"            else:"},{"line_number":915,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":916,"context_line":"        return resync"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    def treat_devices_removed(self, devices):"},{"line_number":919,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_6ceaa375","line":916,"updated":"2014-06-25 11:54:34.000000000","message":"that\u0027s now always False. Probably you can drop the variable.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":874,"context_line":""},{"line_number":875,"context_line":"        for device_details in devices_details_list:"},{"line_number":876,"context_line":"            device \u003d device_details[\u0027device\u0027]"},{"line_number":877,"context_line":"            LOG.debug(_(\"Port %s added\"), device)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"            if \u0027port_id\u0027 in device_details:"},{"line_number":880,"context_line":"                LOG.info(_(\"Port %(device)s updated. Details: %(details)s\"),"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_7c195ad0","line":877,"updated":"2014-06-25 21:11:17.000000000","message":"we don\u0027t translate debug messages.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":874,"context_line":""},{"line_number":875,"context_line":"        for device_details in devices_details_list:"},{"line_number":876,"context_line":"            device \u003d device_details[\u0027device\u0027]"},{"line_number":877,"context_line":"            LOG.debug(_(\"Port %s added\"), device)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"            if \u0027port_id\u0027 in device_details:"},{"line_number":880,"context_line":"                LOG.info(_(\"Port %(device)s updated. Details: %(details)s\"),"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_f7d2e5cf","line":877,"in_reply_to":"1ae5cdf2_7c195ad0","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":911,"context_line":"                                             device_details[\u0027port_id\u0027])"},{"line_number":912,"context_line":"            else:"},{"line_number":913,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":914,"context_line":"        return resync"},{"line_number":915,"context_line":""},{"line_number":916,"context_line":"    def treat_devices_removed(self, devices):"},{"line_number":917,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_9c10e6ac","line":914,"updated":"2014-06-25 21:11:17.000000000","message":"same as in other classes - resync is unneeded, so replace with False, and remove the variable.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":911,"context_line":"                                             device_details[\u0027port_id\u0027])"},{"line_number":912,"context_line":"            else:"},{"line_number":913,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":914,"context_line":"        return resync"},{"line_number":915,"context_line":""},{"line_number":916,"context_line":"    def treat_devices_removed(self, devices):"},{"line_number":917,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_57e399a3","line":914,"in_reply_to":"1ae5cdf2_9c10e6ac","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"}],"neutron/plugins/linuxbridge/lb_neutron_plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0c1a61a078bc032b04bc4777a1172899f9cd6947","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return entry"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def get_devices_details(self, rpc_context, **kwargs):"},{"line_number":117,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, None)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        entries \u003d []"},{"line_number":120,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FKMg%3D","line":117,"updated":"2014-01-16 21:10:12.000000000","message":"Same comment as before","commit_id":"2bcb857cf103e1f9b3788f9bbabe3076e4d1620e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"9422e32d0dbcd5779e7b7aac2dcc67ef12e9e1e8","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return entry"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":117,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        entries \u003d []"},{"line_number":120,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9nAw%3D","line":117,"updated":"2014-02-05 17:36:40.000000000","message":"return [\n    self.get_device_details(\n        rpc_context,\n        device\u003ddevice,\n        **kwargs\n    )\n    for device in kwargs.pop(\u0027devices\u0027, [])\n]","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"16521f828e9be134a6c1330d02c6e373be27f872","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            entry \u003d {\u0027device\u0027: device}"},{"line_number":113,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":114,"context_line":"        return entry"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":117,"context_line":"        return ["},{"line_number":118,"context_line":"            self.get_device_details("}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_1e147742","line":115,"updated":"2014-06-20 07:49:04.000000000","message":"I think code for the LB and OVS monolithic plugins can be dropped as it\u0027s planned on being removed during this cycle anyway.","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":104,"context_line":"        return entry"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":107,"context_line":"        return ["},{"line_number":108,"context_line":"            self.get_device_details("},{"line_number":109,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_ac702bdb","line":106,"updated":"2014-06-25 11:54:34.000000000","message":"These methods in each plugin updated are identical? Can we implement them in one place and mix in or import into corresponding classes?","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b378d7f91a2deefd8861605e14f300e1fe73fe44","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":104,"context_line":"        return entry"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":107,"context_line":"        return ["},{"line_number":108,"context_line":"            self.get_device_details("},{"line_number":109,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_aa18061f","line":106,"in_reply_to":"1ae5cdf2_8fc7dc64","updated":"2014-06-25 14:28:37.000000000","message":"Yes, Mixin is an overkill. You may just create a method somewhere and then import it into all the classes that need it. This is Python, you may meld in methods into classes in runtime.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"},{"line_number":104,"context_line":"        return entry"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":107,"context_line":"        return ["},{"line_number":108,"context_line":"            self.get_device_details("},{"line_number":109,"context_line":"                rpc_context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_8fc7dc64","line":106,"in_reply_to":"1ae5cdf2_ac702bdb","updated":"2014-06-25 14:17:20.000000000","message":"Yes I don\u0027t like that either...creating a mixin only for that seems an overkill. I am planning to work at other bulk operation, I will try to fix that then.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/plugins/ml2/rpc.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bf743e765c815d895ee602b92672d23748e955c4","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        if port:"},{"line_number":80,"context_line":"            port[\u0027device\u0027] \u003d device"},{"line_number":81,"context_line":"        return port"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def get_device_details(self, rpc_context, **kwargs):"},{"line_number":84,"context_line":"        \"\"\"Agent requests device details.\"\"\""},{"line_number":85,"context_line":"        agent_id \u003d kwargs.get(\u0027agent_id\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FKRI%3D","line":82,"updated":"2014-01-16 20:55:53.000000000","message":"It might happen that a single port is added to the bridge but is not defined on the server (that would the case in which, for instance, you do ovs-vsctl add-port br-int myport).\nIn this case, failure for a single port should not cause a failure of the whole call.\n\n\nIt is worth ensuring that if get_device_details is called for a device which does not exist on the server, this would return an empty entity rather than raising (and the empty entity should not be added to the data returned to the agent)","commit_id":"4dd0c7682678480e35846d6ef27e4e55e2a31bb0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bf743e765c815d895ee602b92672d23748e955c4","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        for device in devices:"},{"line_number":152,"context_line":"            kwargs[\u0027device\u0027] \u003d device"},{"line_number":153,"context_line":"            entry \u003d self._get_device_details(rpc_context,"},{"line_number":154,"context_line":"                                             kwargs)"},{"line_number":155,"context_line":"            entries.append(entry)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        return entries"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FKXw%3D","line":154,"updated":"2014-01-16 20:55:53.000000000","message":"as noted by justin in another file, it seems this needs to be fixed after we decided to add a new rpc call rather than alter the existing one.","commit_id":"4dd0c7682678480e35846d6ef27e4e55e2a31bb0"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0c1a61a078bc032b04bc4777a1172899f9cd6947","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            LOG.debug(_(\"Returning: %s\"), entry)"},{"line_number":145,"context_line":"            return entry"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def get_devices_details(self, rpc_context, **kwargs):"},{"line_number":148,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        entries \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FKLg%3D","line":147,"updated":"2014-01-16 21:10:12.000000000","message":"same as earlier","commit_id":"2bcb857cf103e1f9b3788f9bbabe3076e4d1620e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"9422e32d0dbcd5779e7b7aac2dcc67ef12e9e1e8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            return entry"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":148,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        entries \u003d []"},{"line_number":151,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9nAs%3D","line":148,"updated":"2014-02-05 17:36:40.000000000","message":"return [\n    self.get_device_details(\n        rpc_context,\n        device\u003ddevice,\n        **kwargs\n    )\n    for device in kwargs.pop(\u0027devices\u0027, [])\n]","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6bfae2be48d4529d6d5ccf08103f3e3049068c59","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                device\u003ddevice,"},{"line_number":165,"context_line":"                **kwargs"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":"            for device in kwargs.pop(\u0027devices\u0027, [])"},{"line_number":168,"context_line":"        ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _find_segment(self, segments, segment_id):"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_b9432f12","line":167,"updated":"2014-06-17 10:14:43.000000000","message":"It is better if we can do it with a whole instead of one by one.","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"e9062bd552a41012257827ebfefa68fd1c27b654","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                device\u003ddevice,"},{"line_number":165,"context_line":"                **kwargs"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":"            for device in kwargs.pop(\u0027devices\u0027, [])"},{"line_number":168,"context_line":"        ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _find_segment(self, segments, segment_id):"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_b9b88f76","line":167,"in_reply_to":"1ae5cdf2_1976e306","updated":"2014-06-17 10:30:22.000000000","message":"the get_device_details has too many db accesses and it is for just one port. If can we implement one functions to deal with all of the ports by one shot?","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"e8b2828062c221453603cc286cfdc6a085e7d1fa","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                device\u003ddevice,"},{"line_number":165,"context_line":"                **kwargs"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":"            for device in kwargs.pop(\u0027devices\u0027, [])"},{"line_number":168,"context_line":"        ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _find_segment(self, segments, segment_id):"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_6808e528","line":167,"in_reply_to":"1ae5cdf2_1cbdf102","updated":"2014-06-17 15:43:14.000000000","message":"Please, file a bug for tracking this and add a FIXME here?","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"d1e17e43ac81e79aea1888623922254f31d906e0","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                device\u003ddevice,"},{"line_number":165,"context_line":"                **kwargs"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":"            for device in kwargs.pop(\u0027devices\u0027, [])"},{"line_number":168,"context_line":"        ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _find_segment(self, segments, segment_id):"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_9e0b3ed4","line":167,"in_reply_to":"1ae5cdf2_6808e528","updated":"2014-06-19 16:14:37.000000000","message":"Edgar, I filed the bug, hope it\u0027s enough :)","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9f60fcf8a9c3befdf326d8833f33c0d9b325d2b4","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                device\u003ddevice,"},{"line_number":165,"context_line":"                **kwargs"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":"            for device in kwargs.pop(\u0027devices\u0027, [])"},{"line_number":168,"context_line":"        ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _find_segment(self, segments, segment_id):"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_1976e306","line":167,"in_reply_to":"1ae5cdf2_b9432f12","updated":"2014-06-17 10:25:17.000000000","message":"what do you mean exactly?","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"6de2ba83e7ec51f888a522233877ee4f27871175","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                device\u003ddevice,"},{"line_number":165,"context_line":"                **kwargs"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":"            for device in kwargs.pop(\u0027devices\u0027, [])"},{"line_number":168,"context_line":"        ]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _find_segment(self, segments, segment_id):"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_1cbdf102","line":167,"in_reply_to":"1ae5cdf2_b9b88f76","updated":"2014-06-17 10:44:37.000000000","message":"Good idea! I will look into it, I think we can use one select query to get all the ports. I will leave it for another patch, if you don\u0027t mind.","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"}],"neutron/plugins/mlnx/agent/eswitch_neutron_agent.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ccba042bddb0b9a99b1f6c7fc4fb21eeda4b6fd4","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":325,"context_line":"        resync \u003d False"},{"line_number":326,"context_line":"        try:"},{"line_number":327,"context_line":"            devs_details \u003d self.plugin_rpc.get_devices_details("},{"line_number":328,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FKAI%3D","line":325,"updated":"2014-01-16 21:48:43.000000000","message":"Ditto.","commit_id":"cebf38663dc5703cb6a37b7972890f6dbe8f94ed"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"a2155556e2667a3cb0ef19d181a8c10e660ff532","unresolved":false,"context_lines":[{"line_number":351,"context_line":"            else:"},{"line_number":352,"context_line":"                LOG.debug(_(\"Device with mac_address %s not defined \""},{"line_number":353,"context_line":"                          \"on Neutron Plugin\"), device)"},{"line_number":354,"context_line":"        return resync"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    def treat_devices_removed(self, devices):"},{"line_number":357,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9exY%3D","line":354,"updated":"2014-02-06 16:20:19.000000000","message":"Same applies here.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"3beabcb2b67c348cd5e9c7e3873bdee19da5429f","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                devices,"},{"line_number":330,"context_line":"                self.agent_id)"},{"line_number":331,"context_line":"        except Exception as e:"},{"line_number":332,"context_line":"            LOG.debug(_(\"Unable to get device dev_details for devices \""},{"line_number":333,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\"),"},{"line_number":334,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":335,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ae5cdf2_4e0d9ae7","line":332,"updated":"2014-06-04 11:28:19.000000000","message":"Remove 18n translation from debug log message","commit_id":"8063677f37808ccd5a1a472ed42514a3fcb55058"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":315,"context_line":"        resync \u003d False"},{"line_number":316,"context_line":"        try:"},{"line_number":317,"context_line":"            devs_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":318,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_009d63bb","line":315,"updated":"2014-06-25 11:54:34.000000000","message":"resync var now unneeded.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":315,"context_line":"        resync \u003d False"},{"line_number":316,"context_line":"        try:"},{"line_number":317,"context_line":"            devs_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":318,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_6f7a9026","line":315,"in_reply_to":"1ae5cdf2_009d63bb","updated":"2014-06-25 14:17:20.000000000","message":"It\u0027s used at line 348","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b378d7f91a2deefd8861605e14f300e1fe73fe44","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":315,"context_line":"        resync \u003d False"},{"line_number":316,"context_line":"        try:"},{"line_number":317,"context_line":"            devs_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":318,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_2ab3160b","line":315,"in_reply_to":"1ae5cdf2_6f7a9026","updated":"2014-06-25 14:28:37.000000000","message":"Exactly. That\u0027s the only place it\u0027s used. You can remove variable here and just return False on line 348.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                devices,"},{"line_number":320,"context_line":"                self.agent_id)"},{"line_number":321,"context_line":"        except Exception as e:"},{"line_number":322,"context_line":"            LOG.debug(\"Unable to get device dev_details for devices \""},{"line_number":323,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\","},{"line_number":324,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":325,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_0c175f55","line":322,"updated":"2014-06-25 11:54:34.000000000","message":"what does dev_details really mean? can it be replaced with just \u0027details\u0027?","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                devices,"},{"line_number":320,"context_line":"                self.agent_id)"},{"line_number":321,"context_line":"        except Exception as e:"},{"line_number":322,"context_line":"            LOG.debug(\"Unable to get device dev_details for devices \""},{"line_number":323,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\","},{"line_number":324,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":325,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_afabb873","line":322,"in_reply_to":"1ae5cdf2_0c175f55","updated":"2014-06-25 14:17:20.000000000","message":"Done","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                self.agent_id)"},{"line_number":321,"context_line":"        except Exception as e:"},{"line_number":322,"context_line":"            LOG.debug(\"Unable to get device dev_details for devices \""},{"line_number":323,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\","},{"line_number":324,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":325,"context_line":"            return True"},{"line_number":326,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_ecff9300","line":323,"updated":"2014-06-25 11:54:34.000000000","message":"Can we replace mac_address with English version (\u0027MAC address\u0027)? Also, semicolon before \u0027due\u0027 seems unneeded.\n\nI know that\u0027s not your fault, but now that you rework the code, maybe you can update it. Of course, that\u0027s on your consideration.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                self.agent_id)"},{"line_number":321,"context_line":"        except Exception as e:"},{"line_number":322,"context_line":"            LOG.debug(\"Unable to get device dev_details for devices \""},{"line_number":323,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\","},{"line_number":324,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":325,"context_line":"            return True"},{"line_number":326,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_cfa644ab","line":323,"in_reply_to":"1ae5cdf2_ecff9300","updated":"2014-06-25 14:17:20.000000000","message":"Done","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            LOG.debug(\"Unable to get device dev_details for devices \""},{"line_number":323,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\","},{"line_number":324,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":325,"context_line":"            return True"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        for dev_details in devs_details_list:"},{"line_number":328,"context_line":"            device \u003d dev_details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_806173d6","line":325,"updated":"2014-06-25 11:54:34.000000000","message":"a comment with description of what True means is needed.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            LOG.debug(\"Unable to get device dev_details for devices \""},{"line_number":323,"context_line":"                      \"with mac_address %(devices)s: due to %(exc)s\","},{"line_number":324,"context_line":"                      {\u0027devices\u0027: devices, \u0027exc\u0027: e})"},{"line_number":325,"context_line":"            return True"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        for dev_details in devs_details_list:"},{"line_number":328,"context_line":"            device \u003d dev_details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_0fb82cc6","line":325,"in_reply_to":"1ae5cdf2_806173d6","updated":"2014-06-25 14:17:20.000000000","message":"Done","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":315,"context_line":"        resync \u003d False"},{"line_number":316,"context_line":"        try:"},{"line_number":317,"context_line":"            devs_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":318,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_7c707a08","line":315,"updated":"2014-06-25 21:11:17.000000000","message":"as in other files, resync not needed, remove.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No port %s defined on agent.\"), port_id)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def treat_devices_added(self, devices):"},{"line_number":315,"context_line":"        resync \u003d False"},{"line_number":316,"context_line":"        try:"},{"line_number":317,"context_line":"            devs_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":318,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_17003134","line":315,"in_reply_to":"1ae5cdf2_7c707a08","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"}],"neutron/plugins/mlnx/rpc_callbacks.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0c1a61a078bc032b04bc4777a1172899f9cd6947","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return entry"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def get_devices_details(self, rpc_context, **kwargs):"},{"line_number":103,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        entries \u003d []"},{"line_number":106,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FKLo%3D","line":103,"updated":"2014-01-16 21:10:12.000000000","message":"same as earlier comments","commit_id":"2bcb857cf103e1f9b3788f9bbabe3076e4d1620e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"9422e32d0dbcd5779e7b7aac2dcc67ef12e9e1e8","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return entry"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":103,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        entries \u003d []"},{"line_number":106,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9nAo%3D","line":103,"updated":"2014-02-05 17:36:40.000000000","message":"return [\n    self.get_device_details(\n        rpc_context,\n        device\u003ddevice,\n        **kwargs\n    )\n    for device in kwargs.pop(\u0027devices\u0027, [])\n]","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"}],"neutron/plugins/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bf743e765c815d895ee602b92672d23748e955c4","unresolved":false,"context_lines":[{"line_number":928,"context_line":""},{"line_number":929,"context_line":"        except Exception as e:"},{"line_number":930,"context_line":"            LOG.debug(_(\"Unable to get port details for \""},{"line_number":931,"context_line":"                      \"%(devices)s: %(e)s\"),"},{"line_number":932,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":933,"context_line":"            resync \u003d True"},{"line_number":934,"context_line":"            return resync"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FKbk%3D","line":931,"updated":"2014-01-16 20:55:53.000000000","message":"I am not sure if it\u0027s a gerrit thing - but the opening quote at line 930 appears not be aligned.\nAnyway, don\u0027t bother if pep8 does not complain.","commit_id":"4dd0c7682678480e35846d6ef27e4e55e2a31bb0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bf743e765c815d895ee602b92672d23748e955c4","unresolved":false,"context_lines":[{"line_number":931,"context_line":"                      \"%(devices)s: %(e)s\"),"},{"line_number":932,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":933,"context_line":"            resync \u003d True"},{"line_number":934,"context_line":"            return resync"},{"line_number":935,"context_line":""},{"line_number":936,"context_line":"        for details in devices_details:"},{"line_number":937,"context_line":"            device \u003d details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FKbc%3D","line":934,"updated":"2014-01-16 20:55:53.000000000","message":"just \u0027return True\u0027 ?","commit_id":"4dd0c7682678480e35846d6ef27e4e55e2a31bb0"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"a2155556e2667a3cb0ef19d181a8c10e660ff532","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                LOG.debug(_(\"Device %s not defined on plugin\"), device)"},{"line_number":954,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":955,"context_line":"                    self.port_dead(port)"},{"line_number":956,"context_line":"        return resync"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":959,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9eyQ%3D","line":956,"updated":"2014-02-06 16:20:19.000000000","message":"This can be simplified to return False based on the above logic and resync variable can be removed.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"dcfedc9f88995aca723d9b6649621d5201f269ff","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                LOG.debug(_(\"Device %s not defined on plugin\"), device)"},{"line_number":954,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":955,"context_line":"                    self.port_dead(port)"},{"line_number":956,"context_line":"        return resync"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":959,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUX%2F%2F0Sw%3D","line":956,"in_reply_to":"AAAAUH%2F9WFA%3D","updated":"2014-02-10 16:33:22.000000000","message":"The change does impact the use of the variable. This can be fixed in a later patch, if you insist.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"b2467ae7e1058c30b434b9a82052f83fe1bf6220","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                LOG.debug(_(\"Device %s not defined on plugin\"), device)"},{"line_number":954,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":955,"context_line":"                    self.port_dead(port)"},{"line_number":956,"context_line":"        return resync"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":959,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9WFA%3D","line":956,"in_reply_to":"AAAAUH%2F9WTs%3D","updated":"2014-02-07 15:41:26.000000000","message":"Ok Amir, I don\u0027t feel strongly about it. Actually that boolean is not part of my change, so it should be a separate discussion. Let\u0027s hear some other opinion and I will change if somebody else agrees with you. I\u0027d be grateful if you could remove your -1 , the change that you require is a nitpick.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"a5d385c6287f89a74c90fd110117fa6811a01c0c","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                LOG.debug(_(\"Device %s not defined on plugin\"), device)"},{"line_number":954,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":955,"context_line":"                    self.port_dead(port)"},{"line_number":956,"context_line":"        return resync"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":959,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9WTs%3D","line":956,"in_reply_to":"AAAAUH%2F9Yf0%3D","updated":"2014-02-07 15:28:01.000000000","message":"IMHO, dead code decreases readability. If the purpose of the return value is unclear, I would add a docstring to this method. A docstring would be more descriptive than just a variable name. For example, `\"\"\"Returns True if resync with plugin is required.\"\"\"`","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"320d2fe7dfd6fb16e41f99fd63c61c75d57dd75c","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                LOG.debug(_(\"Device %s not defined on plugin\"), device)"},{"line_number":954,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":955,"context_line":"                    self.port_dead(port)"},{"line_number":956,"context_line":"        return resync"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":959,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F9Yf0%3D","line":956,"in_reply_to":"AAAAUH%2F9eyQ%3D","updated":"2014-02-07 10:02:00.000000000","message":"Thanks for your comment. That would make the code less readable. It would be harder to understand what that return False means.","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"baa9a26b669deae01f90dfb9b5e3d1104b45a283","unresolved":false,"context_lines":[{"line_number":953,"context_line":"                LOG.debug(_(\"Device %s not defined on plugin\"), device)"},{"line_number":954,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":955,"context_line":"                    self.port_dead(port)"},{"line_number":956,"context_line":"        return resync"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":959,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUX%2F%2FtGc%3D","line":956,"in_reply_to":"AAAAUX%2F%2F0Sw%3D","updated":"2014-02-11 10:52:33.000000000","message":"OK, let\u0027s do that. Thanks!","commit_id":"eef3be0868ee1966df5930c66edeb74b5ea5cf41"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"9b6784390f4a94086f0542a1b33816a095a10b5d","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        for device in devices:"},{"line_number":928,"context_line":"            LOG.debug(_(\"Processing port %s\"), device)"},{"line_number":929,"context_line":"            port \u003d self.int_br.get_vif_port_by_id(device)"},{"line_number":930,"context_line":"            if not port:"},{"line_number":931,"context_line":"                # The port has disappeared and should not be processed"},{"line_number":932,"context_line":"                # There is no need to put the port DOWN in the plugin as"},{"line_number":933,"context_line":"                # it never went up in the first place"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAU3%2F%2FpCg%3D","side":"PARENT","line":930,"updated":"2014-02-25 14:21:28.000000000","message":"is this check no more needed?","commit_id":"0d78a25ffbf1b58c73569d550570c01f97394d43"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"aedd29c09b5d1e7233db40b7580c39a89f63b9e6","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        for device in devices:"},{"line_number":928,"context_line":"            LOG.debug(_(\"Processing port %s\"), device)"},{"line_number":929,"context_line":"            port \u003d self.int_br.get_vif_port_by_id(device)"},{"line_number":930,"context_line":"            if not port:"},{"line_number":931,"context_line":"                # The port has disappeared and should not be processed"},{"line_number":932,"context_line":"                # There is no need to put the port DOWN in the plugin as"},{"line_number":933,"context_line":"                # it never went up in the first place"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAU3%2F%2FfzE%3D","side":"PARENT","line":930,"in_reply_to":"AAAAU3%2F%2FpCg%3D","updated":"2014-02-26 09:36:56.000000000","message":"I´ll re-add it, thanks!","commit_id":"0d78a25ffbf1b58c73569d550570c01f97394d43"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"3beabcb2b67c348cd5e9c7e3873bdee19da5429f","unresolved":false,"context_lines":[{"line_number":1099,"context_line":"                devices,"},{"line_number":1100,"context_line":"                self.agent_id)"},{"line_number":1101,"context_line":"        except Exception as e:"},{"line_number":1102,"context_line":"            LOG.debug(_(\"Unable to get port details for %(devices)s: %(e)s\"),"},{"line_number":1103,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":1104,"context_line":"            return True"},{"line_number":1105,"context_line":"        for details in devices_details_list:"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ae5cdf2_0e60f2a3","line":1102,"updated":"2014-06-04 11:28:19.000000000","message":"Remove i18n translation for debug messages.","commit_id":"8063677f37808ccd5a1a472ed42514a3fcb55058"},{"author":{"_account_id":8344,"name":"fumihiko kakuma","email":"kakuma@valinux.co.jp","username":"kakuma"},"change_message_id":"fc09fcf8f51ac991cc73cb585bac1c4ddcc33b94","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"        resync \u003d False"},{"line_number":1136,"context_line":"        for device in devices:"},{"line_number":1137,"context_line":"            LOG.info(_(\"Ancillary Port %s added\"), device)"},{"line_number":1138,"context_line":"            try:"},{"line_number":1139,"context_line":"                self.plugin_rpc.get_device_details(self.context, device,"},{"line_number":1140,"context_line":"                                                   self.agent_id)"},{"line_number":1141,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_511f765b","line":1138,"updated":"2014-06-16 22:51:20.000000000","message":"Can we not use get_devices_details_list here?","commit_id":"b0d850f68d262234417fb1e73d050c4198ff8a47"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"52c9ae3d6739a37ba40325de6cc49ed1e33738f7","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"        resync \u003d False"},{"line_number":1136,"context_line":"        for device in devices:"},{"line_number":1137,"context_line":"            LOG.info(_(\"Ancillary Port %s added\"), device)"},{"line_number":1138,"context_line":"            try:"},{"line_number":1139,"context_line":"                self.plugin_rpc.get_device_details(self.context, device,"},{"line_number":1140,"context_line":"                                                   self.agent_id)"},{"line_number":1141,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_134de4c4","line":1138,"in_reply_to":"1ae5cdf2_511f765b","updated":"2014-06-17 09:36:32.000000000","message":"Yes, thanks!","commit_id":"b0d850f68d262234417fb1e73d050c4198ff8a47"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6bfae2be48d4529d6d5ccf08103f3e3049068c59","unresolved":false,"context_lines":[{"line_number":1127,"context_line":"                                    ovs_restarted)"},{"line_number":1128,"context_line":"                # update plugin about port status"},{"line_number":1129,"context_line":"                if details.get(\u0027admin_state_up\u0027):"},{"line_number":1130,"context_line":"                    LOG.debug(_(\"Setting status for %s to UP\"), device)"},{"line_number":1131,"context_line":"                    self.plugin_rpc.update_device_up("},{"line_number":1132,"context_line":"                        self.context, device, self.agent_id, cfg.CONF.host)"},{"line_number":1133,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_56491a8d","line":1130,"updated":"2014-06-17 10:14:43.000000000","message":"can we accumulate and then do update_device_up and update_down by one shot?","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9f60fcf8a9c3befdf326d8833f33c0d9b325d2b4","unresolved":false,"context_lines":[{"line_number":1127,"context_line":"                                    ovs_restarted)"},{"line_number":1128,"context_line":"                # update plugin about port status"},{"line_number":1129,"context_line":"                if details.get(\u0027admin_state_up\u0027):"},{"line_number":1130,"context_line":"                    LOG.debug(_(\"Setting status for %s to UP\"), device)"},{"line_number":1131,"context_line":"                    self.plugin_rpc.update_device_up("},{"line_number":1132,"context_line":"                        self.context, device, self.agent_id, cfg.CONF.host)"},{"line_number":1133,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_d96b9b1d","line":1130,"in_reply_to":"1ae5cdf2_56491a8d","updated":"2014-06-17 10:25:17.000000000","message":"There\u0027s no method that supports setting multiple devices up or down. I was planning of doing that but it\u0027s not trivial. It can be worked in another patch","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"e9062bd552a41012257827ebfefa68fd1c27b654","unresolved":false,"context_lines":[{"line_number":1127,"context_line":"                                    ovs_restarted)"},{"line_number":1128,"context_line":"                # update plugin about port status"},{"line_number":1129,"context_line":"                if details.get(\u0027admin_state_up\u0027):"},{"line_number":1130,"context_line":"                    LOG.debug(_(\"Setting status for %s to UP\"), device)"},{"line_number":1131,"context_line":"                    self.plugin_rpc.update_device_up("},{"line_number":1132,"context_line":"                        self.context, device, self.agent_id, cfg.CONF.host)"},{"line_number":1133,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_59622b17","line":1130,"in_reply_to":"1ae5cdf2_d96b9b1d","updated":"2014-06-17 10:30:22.000000000","message":"agreed","commit_id":"8fbbc614caac68805ad7a4937d77cbdfe1682afb"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"        except Exception as e:"},{"line_number":1089,"context_line":"            LOG.debug(\"Unable to get port details for %(devices)s: %(e)s\","},{"line_number":1090,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":1091,"context_line":"            return True"},{"line_number":1092,"context_line":"        for details in devices_details_list:"},{"line_number":1093,"context_line":"            device \u003d details[\u0027device\u0027]"},{"line_number":1094,"context_line":"            LOG.debug(\"Processing port:%s\", device)"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_603f07b6","line":1091,"updated":"2014-06-25 11:54:34.000000000","message":"please add a comment describing what we achieve by returning True here.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"        except Exception as e:"},{"line_number":1089,"context_line":"            LOG.debug(\"Unable to get port details for %(devices)s: %(e)s\","},{"line_number":1090,"context_line":"                      {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":1091,"context_line":"            return True"},{"line_number":1092,"context_line":"        for details in devices_details_list:"},{"line_number":1093,"context_line":"            device \u003d details[\u0027device\u0027]"},{"line_number":1094,"context_line":"            LOG.debug(\"Processing port:%s\", device)"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_6ff61092","line":1091,"in_reply_to":"1ae5cdf2_603f07b6","updated":"2014-06-25 14:17:20.000000000","message":"Done","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"            return True"},{"line_number":1092,"context_line":"        for details in devices_details_list:"},{"line_number":1093,"context_line":"            device \u003d details[\u0027device\u0027]"},{"line_number":1094,"context_line":"            LOG.debug(\"Processing port:%s\", device)"},{"line_number":1095,"context_line":"            port \u003d self.int_br.get_vif_port_by_id(device)"},{"line_number":1096,"context_line":"            if not port:"},{"line_number":1097,"context_line":"                # The port has disappeared and should not be processed"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_201fbf5c","line":1094,"updated":"2014-06-25 11:54:34.000000000","message":"nit: either replace : with a space, or add a space after it.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"            return True"},{"line_number":1092,"context_line":"        for details in devices_details_list:"},{"line_number":1093,"context_line":"            device \u003d details[\u0027device\u0027]"},{"line_number":1094,"context_line":"            LOG.debug(\"Processing port:%s\", device)"},{"line_number":1095,"context_line":"            port \u003d self.int_br.get_vif_port_by_id(device)"},{"line_number":1096,"context_line":"            if not port:"},{"line_number":1097,"context_line":"                # The port has disappeared and should not be processed"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_0f14ac9d","line":1094,"in_reply_to":"1ae5cdf2_201fbf5c","updated":"2014-06-25 14:17:20.000000000","message":"Done","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"                LOG.warn(_(\"Device %s not defined on plugin\"), device)"},{"line_number":1126,"context_line":"                if (port and port.ofport !\u003d -1):"},{"line_number":1127,"context_line":"                    self.port_dead(port)"},{"line_number":1128,"context_line":"        return resync"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":1131,"context_line":"        resync \u003d False"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_007643a3","line":1128,"updated":"2014-06-25 11:54:34.000000000","message":"resync variable is unneeded now.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":1078,"context_line":"                    self.tun_br_ofports[tunnel_type].pop(remote_ip, None)"},{"line_number":1079,"context_line":""},{"line_number":1080,"context_line":"    def treat_devices_added_or_updated(self, devices, ovs_restarted):"},{"line_number":1081,"context_line":"        resync \u003d False"},{"line_number":1082,"context_line":"        try:"},{"line_number":1083,"context_line":"            devices_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":1084,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_bcc84222","line":1081,"updated":"2014-06-25 21:11:17.000000000","message":"resync unneeded, remove.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":1078,"context_line":"                    self.tun_br_ofports[tunnel_type].pop(remote_ip, None)"},{"line_number":1079,"context_line":""},{"line_number":1080,"context_line":"    def treat_devices_added_or_updated(self, devices, ovs_restarted):"},{"line_number":1081,"context_line":"        resync \u003d False"},{"line_number":1082,"context_line":"        try:"},{"line_number":1083,"context_line":"            devices_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":1084,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_f7a02544","line":1081,"in_reply_to":"1ae5cdf2_bcc84222","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":1128,"context_line":"        return resync"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":1131,"context_line":"        resync \u003d False"},{"line_number":1132,"context_line":"        try:"},{"line_number":1133,"context_line":"            devices_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":1134,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_dce6eeaf","line":1131,"updated":"2014-06-25 21:11:17.000000000","message":"resync unneeded, remove.","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":1128,"context_line":"        return resync"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    def treat_ancillary_devices_added(self, devices):"},{"line_number":1131,"context_line":"        resync \u003d False"},{"line_number":1132,"context_line":"        try:"},{"line_number":1133,"context_line":"            devices_details_list \u003d self.plugin_rpc.get_devices_details_list("},{"line_number":1134,"context_line":"                self.context,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_b7bdbd69","line":1131,"in_reply_to":"1ae5cdf2_dce6eeaf","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d4fce83af4f3eeddd319143216d4dce157185524","unresolved":false,"context_lines":[{"line_number":1137,"context_line":"        except Exception as e:"},{"line_number":1138,"context_line":"            LOG.debug(\"Unable to get port details for \""},{"line_number":1139,"context_line":"                      \"%(devices)s: %(e)s\", {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":1140,"context_line":"            return True"},{"line_number":1141,"context_line":""},{"line_number":1142,"context_line":"        for details in devices_details_list:"},{"line_number":1143,"context_line":"            device \u003d details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_7cdebadb","line":1140,"updated":"2014-06-25 21:11:17.000000000","message":"add a comment to describe what True means (resync requested).","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5837ec29ad2ff1e83cad064629c12aaa7b114f71","unresolved":false,"context_lines":[{"line_number":1137,"context_line":"        except Exception as e:"},{"line_number":1138,"context_line":"            LOG.debug(\"Unable to get port details for \""},{"line_number":1139,"context_line":"                      \"%(devices)s: %(e)s\", {\u0027devices\u0027: devices, \u0027e\u0027: e})"},{"line_number":1140,"context_line":"            return True"},{"line_number":1141,"context_line":""},{"line_number":1142,"context_line":"        for details in devices_details_list:"},{"line_number":1143,"context_line":"            device \u003d details[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_d7b40984","line":1140,"in_reply_to":"1ae5cdf2_7cdebadb","updated":"2014-06-25 21:31:19.000000000","message":"Done","commit_id":"cfccd817a46f4be6c435480cdef50d61baa3f766"}],"neutron/plugins/openvswitch/ovs_neutron_plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0c1a61a078bc032b04bc4777a1172899f9cd6947","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        return entry"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_devices_details(self, rpc_context, **kwargs):"},{"line_number":127,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, None)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        entries \u003d []"},{"line_number":130,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FKLw%3D","line":127,"updated":"2014-01-16 21:10:12.000000000","message":"same as earlier comments","commit_id":"2bcb857cf103e1f9b3788f9bbabe3076e4d1620e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"9422e32d0dbcd5779e7b7aac2dcc67ef12e9e1e8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        return entry"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_devices_details_list(self, rpc_context, **kwargs):"},{"line_number":127,"context_line":"        devices \u003d kwargs.pop(\u0027devices\u0027, [])"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        entries \u003d []"},{"line_number":130,"context_line":"        for device in devices:"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUH%2F9nAg%3D","line":127,"updated":"2014-02-05 17:36:40.000000000","message":"return [\n    self.get_device_details(\n        rpc_context,\n        device\u003ddevice,\n        **kwargs\n    )\n    for device in kwargs.pop(\u0027devices\u0027, [])\n]","commit_id":"46d392cf7f57b198e529a06bf44fa0156a319901"}],"neutron/tests/unit/hyperv/test_hyperv_rpcapi.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        expected_retval \u003d \u0027foo\u0027 if method \u003d\u003d \u0027call\u0027 else None"},{"line_number":38,"context_line":"        expected_version \u003d kwargs.pop(\u0027version\u0027, rpcapi.BASE_RPC_API_VERSION)"},{"line_number":39,"context_line":"        expected_msg \u003d rpcapi.make_msg(method, **kwargs)"},{"line_number":40,"context_line":"        expected_msg[\u0027version\u0027] \u003d expected_version"},{"line_number":41,"context_line":"        if rpc_method \u003d\u003d \u0027cast\u0027 and method \u003d\u003d \u0027run_instance\u0027:"},{"line_number":42,"context_line":"            kwargs[\u0027call\u0027] \u003d False"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_20f25f06","line":40,"updated":"2014-06-25 11:54:34.000000000","message":"version is not set for message now. Instead, it\u0027s passed to client.prepare() when doing call()/cast().\n\nIf you want to check it here, you need to catch arguments to .prepare()","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"86c173354e206b67a3d88572f5e76f248c2c05c5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        expected_retval \u003d \u0027foo\u0027 if method \u003d\u003d \u0027call\u0027 else None"},{"line_number":38,"context_line":"        expected_version \u003d kwargs.pop(\u0027version\u0027, rpcapi.BASE_RPC_API_VERSION)"},{"line_number":39,"context_line":"        expected_msg \u003d rpcapi.make_msg(method, **kwargs)"},{"line_number":40,"context_line":"        expected_msg[\u0027version\u0027] \u003d expected_version"},{"line_number":41,"context_line":"        if rpc_method \u003d\u003d \u0027cast\u0027 and method \u003d\u003d \u0027run_instance\u0027:"},{"line_number":42,"context_line":"            kwargs[\u0027call\u0027] \u003d False"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_efece094","line":40,"in_reply_to":"1ae5cdf2_20f25f06","updated":"2014-06-25 14:17:20.000000000","message":"I fixed that modifying the values expected for mock.call, adding version there.  The same is done for topic. Hope you are OK with it.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/tests/unit/linuxbridge/test_rpcapi.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        expected_version \u003d kwargs.pop(\u0027version\u0027, rpcapi.BASE_RPC_API_VERSION)"},{"line_number":35,"context_line":"        if not expected_msg:"},{"line_number":36,"context_line":"            expected_msg \u003d rpcapi.make_msg(method, **kwargs)"},{"line_number":37,"context_line":"        expected_msg[\u0027version\u0027] \u003d expected_version"},{"line_number":38,"context_line":"        if rpc_method \u003d\u003d \u0027cast\u0027 and method \u003d\u003d \u0027run_instance\u0027:"},{"line_number":39,"context_line":"            kwargs[\u0027call\u0027] \u003d False"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_20409f06","line":37,"updated":"2014-06-25 11:54:34.000000000","message":"see comment in hyperv test.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/tests/unit/ml2/test_rpcapi.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        expected_retval \u003d \u0027foo\u0027 if method \u003d\u003d \u0027call\u0027 else None"},{"line_number":36,"context_line":"        expected_version \u003d kwargs.pop(\u0027version\u0027, rpcapi.BASE_RPC_API_VERSION)"},{"line_number":37,"context_line":"        expected_msg \u003d rpcapi.make_msg(method, **kwargs)"},{"line_number":38,"context_line":"        expected_msg[\u0027version\u0027] \u003d expected_version"},{"line_number":39,"context_line":"        if rpc_method \u003d\u003d \u0027cast\u0027 and method \u003d\u003d \u0027run_instance\u0027:"},{"line_number":40,"context_line":"            kwargs[\u0027call\u0027] \u003d False"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_6049c731","line":38,"updated":"2014-06-25 11:54:34.000000000","message":"see comment in hyperv test.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/tests/unit/mlnx/test_mlnx_neutron_agent.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"cacdc4a39e21deb53a3abfd873e09ecbd89860be","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2014 Mellanox Technologies, Ltd"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAU3%2F%2FeLg%3D","line":1,"updated":"2014-02-26 12:49:17.000000000","message":"Outside fo diff set, but can pull VIM line","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"cacdc4a39e21deb53a3abfd873e09ecbd89860be","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def setUp(self):"},{"line_number":31,"context_line":"        super(TestEswitchAgent, self).setUp()"},{"line_number":32,"context_line":"        self.addCleanup(cfg.CONF.reset)"},{"line_number":33,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":34,"context_line":"        # Avoid rpc initialization for unit tests"},{"line_number":35,"context_line":"        cfg.CONF.set_override(\u0027rpc_backend\u0027,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAU3%2F%2FeJI%3D","line":32,"updated":"2014-02-26 12:49:17.000000000","message":"Outside of changeset, but applies to the test class being updated...\n\nLine not needed as base class adds cleanup.","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"eb9e71fea03fa70e7f03d621915edb26b6192e73","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def setUp(self):"},{"line_number":31,"context_line":"        super(TestEswitchAgent, self).setUp()"},{"line_number":32,"context_line":"        self.addCleanup(cfg.CONF.reset)"},{"line_number":33,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":34,"context_line":"        # Avoid rpc initialization for unit tests"},{"line_number":35,"context_line":"        cfg.CONF.set_override(\u0027rpc_backend\u0027,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAVX%2F%2FpBw%3D","line":32,"in_reply_to":"AAAAU3%2F%2FeJI%3D","updated":"2014-03-02 06:22:29.000000000","message":"Since this is not related to this change-set, I have filled this bug: https://bugs.launchpad.net/neutron/+bug/1286716","commit_id":"427941360bbbb07ace9f2d14e620f63668678709"}],"neutron/tests/unit/mlnx/test_rpcapi.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        expected_version \u003d kwargs.pop(\u0027version\u0027, rpcapi.BASE_RPC_API_VERSION)"},{"line_number":37,"context_line":"        if not expected_msg:"},{"line_number":38,"context_line":"            expected_msg \u003d rpcapi.make_msg(method, **kwargs)"},{"line_number":39,"context_line":"        expected_msg[\u0027version\u0027] \u003d expected_version"},{"line_number":40,"context_line":"        if rpc_method \u003d\u003d \u0027cast\u0027 and method \u003d\u003d \u0027run_instance\u0027:"},{"line_number":41,"context_line":"            kwargs[\u0027call\u0027] \u003d False"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_e05cf7f2","line":39,"updated":"2014-06-25 11:54:34.000000000","message":"see comment in hyperv test.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/tests/unit/openvswitch/test_ovs_rpcapi.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        expected_retval \u003d \u0027foo\u0027 if method \u003d\u003d \u0027call\u0027 else None"},{"line_number":34,"context_line":"        expected_version \u003d kwargs.pop(\u0027version\u0027, rpcapi.BASE_RPC_API_VERSION)"},{"line_number":35,"context_line":"        expected_msg \u003d rpcapi.make_msg(method, **kwargs)"},{"line_number":36,"context_line":"        expected_msg[\u0027version\u0027] \u003d expected_version"},{"line_number":37,"context_line":"        if rpc_method \u003d\u003d \u0027cast\u0027 and method \u003d\u003d \u0027run_instance\u0027:"},{"line_number":38,"context_line":"            kwargs[\u0027call\u0027] \u003d False"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_806b3385","line":36,"updated":"2014-06-25 11:54:34.000000000","message":"see comment in hyperv test.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}],"neutron/tests/unit/test_agent_rpc.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron.agent import rpc"},{"line_number":19,"context_line":"from neutron.openstack.common import context"},{"line_number":20,"context_line":"from neutron.openstack.common.rpc import common as rpc_common"},{"line_number":21,"context_line":"from neutron.tests import base"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_c0653bb0","line":20,"updated":"2014-06-25 11:54:34.000000000","message":"there is no such module now, so import will fail.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake_user\u0027, \u0027fake_project\u0027)"},{"line_number":47,"context_line":"        expect_val_get_device_details \u003d \u0027foo\u0027"},{"line_number":48,"context_line":"        expect_val \u003d [expect_val_get_device_details]"},{"line_number":49,"context_line":"        with mock.patch(\u0027neutron.openstack.common.rpc.call\u0027) as rpc_call:"},{"line_number":50,"context_line":"            rpc_call.side_effect \u003d [rpc_common.UnsupportedRpcVersion(),"},{"line_number":51,"context_line":"                                    expect_val_get_device_details]"},{"line_number":52,"context_line":"            func_obj \u003d getattr(agent, \u0027get_devices_details_list\u0027)"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_002e4342","line":49,"updated":"2014-06-25 11:54:34.000000000","message":"it\u0027s now neutron.common.rpc.RpcProxy.call","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dfc7b50e55e61bd8f90fba9bb55ee0196cd4b571","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        expect_val_get_device_details \u003d \u0027foo\u0027"},{"line_number":48,"context_line":"        expect_val \u003d [expect_val_get_device_details]"},{"line_number":49,"context_line":"        with mock.patch(\u0027neutron.openstack.common.rpc.call\u0027) as rpc_call:"},{"line_number":50,"context_line":"            rpc_call.side_effect \u003d [rpc_common.UnsupportedRpcVersion(),"},{"line_number":51,"context_line":"                                    expect_val_get_device_details]"},{"line_number":52,"context_line":"            func_obj \u003d getattr(agent, \u0027get_devices_details_list\u0027)"},{"line_number":53,"context_line":"            actual_val \u003d func_obj(ctxt, [\u0027fake_device\u0027], \u0027fake_agent_id\u0027)"}],"source_content_type":"text/x-python","patch_set":36,"id":"1ae5cdf2_200edfe5","line":50,"updated":"2014-06-25 11:54:34.000000000","message":"use oslo.messaging exception type here.","commit_id":"1e59e50c08252d1f8f28ee617d2d4743d8c68989"}]}
