)]}'
{"neutron/agent/ovsdb/native/connection.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7d78ee9c8808acac7ebdb72f838794c0e0f1aeab","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    @removals.remove("},{"line_number":121,"context_line":"        version\u003d\u0027Ocata\u0027, removal_version\u003d\u0027Pike\u0027,"},{"line_number":122,"context_line":"        message\u003d_(\"Use idlutils.get_schema_helper(conn, schema, retry\u003dTrue)\"))"},{"line_number":123,"context_line":"    def get_schema_helper(self):"},{"line_number":124,"context_line":"        \"\"\"Retrieve the schema helper object from OVSDB\"\"\""},{"line_number":125,"context_line":"        try:"},{"line_number":126,"context_line":"            helper \u003d idlutils.get_schema_helper(self.connection,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6895a0_12701072","line":123,"updated":"2016-10-22 04:36:33.000000000","message":"Why not call idl_utilst get_schema_helper(..., retry\u003dTrue) ? I know this method is deprecated for removal, but this way the idlutils\u0027 retrying mechanism is tested and this patch avoids adding duplicate code.","commit_id":"0b091cb2613206bd43334e4337a39bb9b2521c61"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"07d1a506e4f8f3da6463fe0fdf60c006aa40594a","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    @removals.remove("},{"line_number":121,"context_line":"        version\u003d\u0027Ocata\u0027, removal_version\u003d\u0027Pike\u0027,"},{"line_number":122,"context_line":"        message\u003d_(\"Use idlutils.get_schema_helper(conn, schema, retry\u003dTrue)\"))"},{"line_number":123,"context_line":"    def get_schema_helper(self):"},{"line_number":124,"context_line":"        \"\"\"Retrieve the schema helper object from OVSDB\"\"\""},{"line_number":125,"context_line":"        try:"},{"line_number":126,"context_line":"            helper \u003d idlutils.get_schema_helper(self.connection,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6895a0_728f8c23","line":123,"in_reply_to":"da6895a0_12701072","updated":"2016-10-22 05:30:45.000000000","message":"Because it was after 5pm on a Friday and I was going out of town and I forgot. :)\n\nDone.","commit_id":"0b091cb2613206bd43334e4337a39bb9b2521c61"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"294435d640383f1b03321588694665169c981a82","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        The signature of this class is changing. It is recommended to pass in"},{"line_number":73,"context_line":"        a timeout and idl_factory"},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":"        assert timeout is not None"},{"line_number":76,"context_line":"        self.idl \u003d None"},{"line_number":77,"context_line":"        self.timeout \u003d timeout"},{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6895a0_72794cfc","line":75,"updated":"2016-10-22 06:21:17.000000000","message":"why not raise an exception that neurton understands?","commit_id":"1ebef7d8b143bfbacb0fb719d03ef4140e335f85"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"d1e9cf3665ce685bb35dc8f3a91a4a713dfcc7a0","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        The signature of this class is changing. It is recommended to pass in"},{"line_number":73,"context_line":"        a timeout and idl_factory"},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":"        assert timeout is not None"},{"line_number":76,"context_line":"        self.idl \u003d None"},{"line_number":77,"context_line":"        self.timeout \u003d timeout"},{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_61936cfb","line":75,"in_reply_to":"da6895a0_72794cfc","updated":"2016-10-26 08:45:09.000000000","message":"It seemed clearer to directly assert things that are completely logically incorrect. There is precedent in neutron/common/rpc.py. There is no possible recovery, so catching an exception that Neutron understands doesn\u0027t really buy us anything.\n\nAfter deprecation, the asserts and and if/else would go away. It\u0027s just that supporting deprecation and argument change forced me to add \u003dNone to everything and check later.","commit_id":"1ebef7d8b143bfbacb0fb719d03ef4140e335f85"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"294435d640383f1b03321588694665169c981a82","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"},{"line_number":79,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":80,"context_line":"        if idl_factory:"},{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6895a0_927ee0e2","line":81,"updated":"2016-10-22 06:21:17.000000000","message":"ditto","commit_id":"1ebef7d8b143bfbacb0fb719d03ef4140e335f85"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"294435d640383f1b03321588694665169c981a82","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"},{"line_number":85,"context_line":"            self.idl_factory \u003d self._idl_factory"},{"line_number":86,"context_line":"            self.connection \u003d connection"},{"line_number":87,"context_line":"            self.schema_name \u003d schema_name"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6895a0_b283e4cb","line":84,"updated":"2016-10-22 06:21:17.000000000","message":"ditto","commit_id":"1ebef7d8b143bfbacb0fb719d03ef4140e335f85"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"6e208eda889498d8b9f048bfbf3f072d9c620bbf","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from ovs.db import idl"},{"line_number":21,"context_line":"from ovs import poller"},{"line_number":22,"context_line":"from six.moves import queue as Queue"},{"line_number":23,"context_line":"import tenacity"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from neutron._i18n import _"},{"line_number":26,"context_line":"from neutron.agent.ovsdb.native import idlutils"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5da102_45f67f8f","line":23,"updated":"2016-11-03 22:27:41.000000000","message":"Need to remove this line","commit_id":"b037c63fc51858d5e93b4ab49646d9801163b2a4"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"9aaf0a977fa7f9c15e75b529b1fb97b966bb1152","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from ovs.db import idl"},{"line_number":21,"context_line":"from ovs import poller"},{"line_number":22,"context_line":"from six.moves import queue as Queue"},{"line_number":23,"context_line":"import tenacity"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from neutron._i18n import _"},{"line_number":26,"context_line":"from neutron.agent.ovsdb.native import idlutils"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5da102_0d5bc12f","line":23,"in_reply_to":"ba5da102_45f67f8f","updated":"2016-11-04 09:37:11.000000000","message":"Done","commit_id":"b037c63fc51858d5e93b4ab49646d9801163b2a4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bf49f026d29535647eac0977eec563f6c312f5a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"},{"line_number":79,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":80,"context_line":"        if idl_factory:"},{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5da102_a0f8f3c5","line":81,"updated":"2016-11-06 13:44:12.000000000","message":"why do we need asserts?","commit_id":"4137d93d2063ec1940efd67d22d49f6402eb8396"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"867d8208c29a575abf913e023262ffcd0dd48c59","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"},{"line_number":79,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":80,"context_line":"        if idl_factory:"},{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5da102_690087ab","line":81,"in_reply_to":"ba5da102_661a7470","updated":"2016-11-06 18:56:28.000000000","message":"please use the standard neutron exceptions","commit_id":"4137d93d2063ec1940efd67d22d49f6402eb8396"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0717b20ddbd4476cc02e2fd4ffb8974784c80618","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"},{"line_number":79,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":80,"context_line":"        if idl_factory:"},{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5da102_89d23b33","line":81,"in_reply_to":"ba5da102_690087ab","updated":"2016-11-06 19:05:34.000000000","message":"Will do.","commit_id":"4137d93d2063ec1940efd67d22d49f6402eb8396"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"72721fa30e5d9245ae31824204971c3112863d2c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.txns \u003d TransactionQueue(1)"},{"line_number":79,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":80,"context_line":"        if idl_factory:"},{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5da102_661a7470","line":81,"in_reply_to":"ba5da102_a0f8f3c5","updated":"2016-11-06 15:01:44.000000000","message":"Due to the shift in API, we want clients to either use the old, deprecated api, i.e. connection, schema name, and *not* idl_factory, or use the new api, i.e. idl_factory, and *not) connection, nor schema_name. The asserts enforce this behaviour.","commit_id":"4137d93d2063ec1940efd67d22d49f6402eb8396"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bf49f026d29535647eac0977eec563f6c312f5a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"},{"line_number":85,"context_line":"            self.idl_factory \u003d self._idl_factory"},{"line_number":86,"context_line":"            self.connection \u003d connection"},{"line_number":87,"context_line":"            self.schema_name \u003d schema_name"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5da102_c0f5e7cb","line":84,"updated":"2016-11-06 13:44:12.000000000","message":"ditto","commit_id":"4137d93d2063ec1940efd67d22d49f6402eb8396"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"72721fa30e5d9245ae31824204971c3112863d2c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            assert not any([connection, schema_name])"},{"line_number":82,"context_line":"            self.idl_factory \u003d idl_factory"},{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            assert all([connection, schema_name])"},{"line_number":85,"context_line":"            self.idl_factory \u003d self._idl_factory"},{"line_number":86,"context_line":"            self.connection \u003d connection"},{"line_number":87,"context_line":"            self.schema_name \u003d schema_name"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5da102_8625c8af","line":84,"in_reply_to":"ba5da102_c0f5e7cb","updated":"2016-11-06 15:01:44.000000000","message":"Same response above.","commit_id":"4137d93d2063ec1940efd67d22d49f6402eb8396"}],"neutron/agent/ovsdb/native/idlutils.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"294435d640383f1b03321588694665169c981a82","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ovs import jsonrpc"},{"line_number":24,"context_line":"from ovs import poller"},{"line_number":25,"context_line":"from ovs import stream"},{"line_number":26,"context_line":"import retrying"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from neutron._i18n import _"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6895a0_d28858ea","line":26,"updated":"2016-10-22 06:21:17.000000000","message":"there is a move from retrying to tenacity. Can you please use the latter","commit_id":"1ebef7d8b143bfbacb0fb719d03ef4140e335f85"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"d1e9cf3665ce685bb35dc8f3a91a4a713dfcc7a0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ovs import jsonrpc"},{"line_number":24,"context_line":"from ovs import poller"},{"line_number":25,"context_line":"from ovs import stream"},{"line_number":26,"context_line":"import retrying"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from neutron._i18n import _"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_c167d823","line":26,"in_reply_to":"da6895a0_d28858ea","updated":"2016-10-26 08:45:09.000000000","message":"Yeah, I\u0027ll fix it. I assume that is the reason for the merge failure.","commit_id":"1ebef7d8b143bfbacb0fb719d03ef4140e335f85"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"6e208eda889498d8b9f048bfbf3f072d9c620bbf","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ovs import jsonrpc"},{"line_number":24,"context_line":"from ovs import poller"},{"line_number":25,"context_line":"from ovs import stream"},{"line_number":26,"context_line":"import retrying"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from neutron._i18n import _"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5da102_85bed7ab","line":26,"updated":"2016-11-03 22:27:41.000000000","message":"A heads up here. Please look at this pactset: https://review.openstack.org/#/c/365106/. As you can see, we don\u0027t use retrying anymore. We use tenacity now","commit_id":"b037c63fc51858d5e93b4ab49646d9801163b2a4"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"9aaf0a977fa7f9c15e75b529b1fb97b966bb1152","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ovs import jsonrpc"},{"line_number":24,"context_line":"from ovs import poller"},{"line_number":25,"context_line":"from ovs import stream"},{"line_number":26,"context_line":"import retrying"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from neutron._i18n import _"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5da102_ad72d5ae","line":26,"in_reply_to":"ba5da102_85bed7ab","updated":"2016-11-04 09:37:11.000000000","message":"Done","commit_id":"b037c63fc51858d5e93b4ab49646d9801163b2a4"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"6e208eda889498d8b9f048bfbf3f072d9c620bbf","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            helpers.enable_connection_uri(connection)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # There is a small window for a race, so retry up to a second"},{"line_number":132,"context_line":"            @retrying.retry(wait_exponential_multiplier\u003d10,"},{"line_number":133,"context_line":"                            stop_max_delay\u003d1000)"},{"line_number":134,"context_line":"            def do_get_schema_helper():"},{"line_number":135,"context_line":"                return _get_schema_helper(connection, schema_name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5da102_e5e5d3db","line":132,"updated":"2016-11-03 22:27:41.000000000","message":"Please see my comment to L26 above","commit_id":"b037c63fc51858d5e93b4ab49646d9801163b2a4"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"9aaf0a977fa7f9c15e75b529b1fb97b966bb1152","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            helpers.enable_connection_uri(connection)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # There is a small window for a race, so retry up to a second"},{"line_number":132,"context_line":"            @retrying.retry(wait_exponential_multiplier\u003d10,"},{"line_number":133,"context_line":"                            stop_max_delay\u003d1000)"},{"line_number":134,"context_line":"            def do_get_schema_helper():"},{"line_number":135,"context_line":"                return _get_schema_helper(connection, schema_name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5da102_ad99f5d2","line":132,"in_reply_to":"ba5da102_e5e5d3db","updated":"2016-11-04 09:37:11.000000000","message":"Done","commit_id":"b037c63fc51858d5e93b4ab49646d9801163b2a4"}]}
