)]}'
{"heat/engine/resources/neutron/loadbalancer.py":[{"author":{"_account_id":8844,"name":"Mitsuru Kanabuchi","email":"kanabuchi.mitsuru@po.ntts.co.jp","username":"kanabuchi"},"change_message_id":"52ca5fe8261bb4ae759ec9da326d0a8d00a4678b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":133,"context_line":"            \u0027AllowedValues\u0027: [\u0027SOURCE_IP\u0027, \u0027HTTP_COOKIE\u0027, \u0027APP_COOKIE\u0027],"},{"line_number":134,"context_line":"            \u0027Description\u0027: _(\u0027Method of implementation of session\u0027"},{"line_number":135,"context_line":"                             \u0027persistence feature.\u0027)},"},{"line_number":136,"context_line":"        \u0027cookie_name\u0027: {"},{"line_number":137,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":138,"context_line":"            \u0027Description\u0027: _(\u0027Name of the cookie, \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9eGQ%3D","line":135,"updated":"2013-12-11 07:10:52.000000000","message":"I think, Property \"type\" should be Required.","commit_id":"3ddd5b76d4c0af96654c43d4db99808b65495c5e"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"67215554e780cd06214bbc6ba256722a62f0ebb5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":133,"context_line":"            \u0027AllowedValues\u0027: [\u0027SOURCE_IP\u0027, \u0027HTTP_COOKIE\u0027, \u0027APP_COOKIE\u0027],"},{"line_number":134,"context_line":"            \u0027Description\u0027: _(\u0027Method of implementation of session\u0027"},{"line_number":135,"context_line":"                             \u0027persistence feature.\u0027)},"},{"line_number":136,"context_line":"        \u0027cookie_name\u0027: {"},{"line_number":137,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":138,"context_line":"            \u0027Description\u0027: _(\u0027Name of the cookie, \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9dOs%3D","line":135,"in_reply_to":"AAAATn%2F9eGQ%3D","updated":"2013-12-11 11:10:30.000000000","message":"Done","commit_id":"3ddd5b76d4c0af96654c43d4db99808b65495c5e"},{"author":{"_account_id":8844,"name":"Mitsuru Kanabuchi","email":"kanabuchi.mitsuru@po.ntts.co.jp","username":"kanabuchi"},"change_message_id":"52ca5fe8261bb4ae759ec9da326d0a8d00a4678b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        \u0027description\u0027: _(\u0027Description of the pool.\u0027),"},{"line_number":216,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool.\u0027),"},{"line_number":217,"context_line":"        \u0027vip\u0027: _(\u0027Vip associated with the pool.\u0027),"},{"line_number":218,"context_line":"    }"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def handle_create(self):"},{"line_number":221,"context_line":"        properties \u003d self.prepare_properties("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9eCU%3D","line":218,"updated":"2013-12-11 07:10:52.000000000","message":"In my opinion, it would be appropriate that to implement check into \"def validate\" what you wrote cookie_name description.","commit_id":"3ddd5b76d4c0af96654c43d4db99808b65495c5e"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"67215554e780cd06214bbc6ba256722a62f0ebb5","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        \u0027description\u0027: _(\u0027Description of the pool.\u0027),"},{"line_number":216,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool.\u0027),"},{"line_number":217,"context_line":"        \u0027vip\u0027: _(\u0027Vip associated with the pool.\u0027),"},{"line_number":218,"context_line":"    }"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def handle_create(self):"},{"line_number":221,"context_line":"        properties \u003d self.prepare_properties("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9dOo%3D","line":218,"in_reply_to":"AAAATn%2F9eCU%3D","updated":"2013-12-11 11:10:30.000000000","message":"Done","commit_id":"3ddd5b76d4c0af96654c43d4db99808b65495c5e"},{"author":{"_account_id":8844,"name":"Mitsuru Kanabuchi","email":"kanabuchi.mitsuru@po.ntts.co.jp","username":"kanabuchi"},"change_message_id":"9118518b2f706ed5aae639b9e531ac62e99c3a7b","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            raise ValueError(\u0027Property cookie_name is required, when \u0027"},{"line_number":229,"context_line":"                             \u0027session_persistence type is set to APP_COOKIE\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def handle_create(self):"},{"line_number":232,"context_line":"        properties \u003d self.prepare_properties("},{"line_number":233,"context_line":"            self.properties,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9cwc%3D","line":230,"updated":"2013-12-11 12:23:39.000000000","message":"Probably, \"raise exception.StackValidationFailed\" is appropriate in case of validate error.","commit_id":"42904caf8020ba0db916700b358fe26de2fdf461"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"65897864eea856091ccccf5c771eb907de33ef04","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            raise ValueError(\u0027Property cookie_name is required, when \u0027"},{"line_number":229,"context_line":"                             \u0027session_persistence type is set to APP_COOKIE\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def handle_create(self):"},{"line_number":232,"context_line":"        properties \u003d self.prepare_properties("},{"line_number":233,"context_line":"            self.properties,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9cuo%3D","line":230,"in_reply_to":"AAAATn%2F9cwc%3D","updated":"2013-12-11 12:33:08.000000000","message":"Done","commit_id":"42904caf8020ba0db916700b358fe26de2fdf461"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"df319d2c1663599f9e240384c06b5e8f8a19105a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        \u0027type\u0027: {"},{"line_number":134,"context_line":"            \u0027Type\u0027: \u0027String\u0027, \u0027Required\u0027: True,"},{"line_number":135,"context_line":"            \u0027AllowedValues\u0027: [\u0027SOURCE_IP\u0027, \u0027HTTP_COOKIE\u0027, \u0027APP_COOKIE\u0027],"},{"line_number":136,"context_line":"            \u0027Description\u0027: _(\u0027Method of implementation of session\u0027"},{"line_number":137,"context_line":"                             \u0027persistence feature.\u0027)},"},{"line_number":138,"context_line":"        \u0027cookie_name\u0027: {"},{"line_number":139,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9TkU%3D","line":136,"updated":"2013-12-12 20:21:42.000000000","message":"Missing space (between session and persistence)","commit_id":"cd2eb878c5633afa93645351be2293e122470e54"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"4722c5a5599a508e38932ff97456cea916bcdfd6","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        \u0027type\u0027: {"},{"line_number":134,"context_line":"            \u0027Type\u0027: \u0027String\u0027, \u0027Required\u0027: True,"},{"line_number":135,"context_line":"            \u0027AllowedValues\u0027: [\u0027SOURCE_IP\u0027, \u0027HTTP_COOKIE\u0027, \u0027APP_COOKIE\u0027],"},{"line_number":136,"context_line":"            \u0027Description\u0027: _(\u0027Method of implementation of session\u0027"},{"line_number":137,"context_line":"                             \u0027persistence feature.\u0027)},"},{"line_number":138,"context_line":"        \u0027cookie_name\u0027: {"},{"line_number":139,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9RkE%3D","line":136,"in_reply_to":"AAAATn%2F9TkU%3D","updated":"2013-12-13 07:24:50.000000000","message":"Done","commit_id":"cd2eb878c5633afa93645351be2293e122470e54"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"df319d2c1663599f9e240384c06b5e8f8a19105a","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        \u0027cookie_name\u0027: {"},{"line_number":139,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":140,"context_line":"            \u0027Description\u0027: _(\u0027Name of the cookie, \u0027"},{"line_number":141,"context_line":"                             \u0027required if type is APP_COOKIE\u0027)}"},{"line_number":142,"context_line":"    }"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    vip_schema \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9TkA%3D","line":141,"updated":"2013-12-12 20:21:42.000000000","message":"Nit but important for doc consistency - missing line ending .","commit_id":"cd2eb878c5633afa93645351be2293e122470e54"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"4722c5a5599a508e38932ff97456cea916bcdfd6","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        \u0027cookie_name\u0027: {"},{"line_number":139,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":140,"context_line":"            \u0027Description\u0027: _(\u0027Name of the cookie, \u0027"},{"line_number":141,"context_line":"                             \u0027required if type is APP_COOKIE\u0027)}"},{"line_number":142,"context_line":"    }"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    vip_schema \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9RkA%3D","line":141,"in_reply_to":"AAAATn%2F9TkA%3D","updated":"2013-12-13 07:24:50.000000000","message":"Done","commit_id":"cd2eb878c5633afa93645351be2293e122470e54"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"0f6fafe9b55afadb3bd84e6ab3c8a5386ce5dc7f","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                return"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            msg \u003d _(\u0027Property cookie_name is required, when \u0027"},{"line_number":229,"context_line":"                    \u0027session_persistence type is set to APP_COOKIE\u0027)"},{"line_number":230,"context_line":"            raise exception.StackValidationFailed(message\u003dmsg)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def handle_create(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RnU%3D","line":229,"updated":"2013-12-13 07:19:41.000000000","message":"Please add line ending.","commit_id":"daef507e584862c320bd104f372da95281a1e480"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"f0d22f01f04d10275d77db2573a281e00598373e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                return"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            msg \u003d _(\u0027Property cookie_name is required, when \u0027"},{"line_number":229,"context_line":"                    \u0027session_persistence type is set to APP_COOKIE\u0027)"},{"line_number":230,"context_line":"            raise exception.StackValidationFailed(message\u003dmsg)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def handle_create(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Rj0%3D","line":229,"in_reply_to":"AAAATn%2F9RnU%3D","updated":"2013-12-13 07:25:31.000000000","message":"Done","commit_id":"daef507e584862c320bd104f372da95281a1e480"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"7215d866916c3cd764f5c98acac53fa3cbfb325f","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                return"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"            msg \u003d _(\u0027Property cookie_name is required, when \u0027"},{"line_number":305,"context_line":"                    \u0027session_persistence type is set to APP_COOKIE.\u0027)"},{"line_number":306,"context_line":"            raise exception.StackValidationFailed(message\u003dmsg)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def handle_create(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F8qjs%3D","line":305,"updated":"2013-12-23 14:24:02.000000000","message":"Could you use here text formatting like this:\nhttps://review.openstack.org/#/c/61786/3/heat/engine/resources/server.py (line 542)","commit_id":"af064c7a5304c672f7d71e4c8df5f69c195c739a"}],"heat/tests/test_neutron_loadbalancer.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"0f6fafe9b55afadb3bd84e6ab3c8a5386ce5dc7f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"subnet_id\": \"sub123\","},{"line_number":62,"context_line":"        \"lb_method\": \"ROUND_ROBIN\","},{"line_number":63,"context_line":"        \"vip\": {"},{"line_number":64,"context_line":"          \"protocol_port\": 80,"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":"      }"},{"line_number":67,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Rlw%3D","line":64,"updated":"2013-12-13 07:19:41.000000000","message":"I think, that \u0027,\u0027 is not needed there.","commit_id":"daef507e584862c320bd104f372da95281a1e480"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"f0d22f01f04d10275d77db2573a281e00598373e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"subnet_id\": \"sub123\","},{"line_number":62,"context_line":"        \"lb_method\": \"ROUND_ROBIN\","},{"line_number":63,"context_line":"        \"vip\": {"},{"line_number":64,"context_line":"          \"protocol_port\": 80,"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":"      }"},{"line_number":67,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Rjw%3D","line":64,"in_reply_to":"AAAATn%2F9Rlw%3D","updated":"2013-12-13 07:25:31.000000000","message":"Done","commit_id":"daef507e584862c320bd104f372da95281a1e480"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"0f6fafe9b55afadb3bd84e6ab3c8a5386ce5dc7f","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def test_failing_validation_with_session_persistence(self):"},{"line_number":468,"context_line":"        msg \u003d _(\u0027Property cookie_name is required, when \u0027"},{"line_number":469,"context_line":"                \u0027session_persistence type is set to APP_COOKIE\u0027)"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        clients.OpenStackClients.keystone().AndReturn("},{"line_number":472,"context_line":"            fakes.FakeKeystoneClient())"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RnA%3D","line":469,"updated":"2013-12-13 07:19:41.000000000","message":"Please add end of line.","commit_id":"daef507e584862c320bd104f372da95281a1e480"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"f0d22f01f04d10275d77db2573a281e00598373e","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def test_failing_validation_with_session_persistence(self):"},{"line_number":468,"context_line":"        msg \u003d _(\u0027Property cookie_name is required, when \u0027"},{"line_number":469,"context_line":"                \u0027session_persistence type is set to APP_COOKIE\u0027)"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        clients.OpenStackClients.keystone().AndReturn("},{"line_number":472,"context_line":"            fakes.FakeKeystoneClient())"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Rjs%3D","line":469,"in_reply_to":"AAAATn%2F9RnA%3D","updated":"2013-12-13 07:25:31.000000000","message":"Done","commit_id":"daef507e584862c320bd104f372da95281a1e480"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"03d3b911eec0383e61e0ff77a51b0bd133e21327","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                \u0027pool_id\u0027: \u00275678\u0027, \u0027protocol_port\u0027: 80,"},{"line_number":484,"context_line":"                \u0027session_persistence\u0027: {\u0027type\u0027: \u0027APP_COOKIE\u0027,"},{"line_number":485,"context_line":"                \u0027cookie_name\u0027: None}}}"},{"line_number":486,"context_line":"        ).AndRaise(exception.StackValidationFailed(message\u003dmsg))"},{"line_number":487,"context_line":"        self.m.ReplayAll()"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"        snippet \u003d template_format.parse(pool_with_session_persistence_template)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9RYE%3D","line":486,"updated":"2013-12-13 08:47:19.000000000","message":"Here you\u0027re cheating, you\u0027re not testing your own validation. create_pool/create_vip shouldn\u0027t get be called in your test, because it should fail validation. Call rsrc.validate directly in your test. There is also a bug in your validate method, as it doesn\u0027t upcall Resource.validate. It\u0027d be nice to add another test for that.","commit_id":"bef85f1b3a53466fdb0cfa9d5eaba71fec30d216"}]}
