)]}'
{"neutron/plugins/ml2/drivers/ovn/agent/neutron_agent.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a85609c1773453f01dba1ec04d67985b6513db6e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            \u0027host\u0027: self.chassis.hostname,"},{"line_number":41,"context_line":"            \u0027heartbeat_timestamp\u0027: timeutils.utcnow(),"},{"line_number":42,"context_line":"            \u0027availability_zone\u0027: \u0027, \u0027.join("},{"line_number":43,"context_line":"                ovn_utils.get_chassis_availability_zones(self.chassis)),"},{"line_number":44,"context_line":"            \u0027topic\u0027: \u0027n/a\u0027,"},{"line_number":45,"context_line":"            \u0027description\u0027: self.description,"},{"line_number":46,"context_line":"            \u0027configurations\u0027: {"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_faae8596","line":43,"updated":"2020-07-01 19:39:23.000000000","message":"pep8: F821 undefined name \u0027ovn_utils\u0027","commit_id":"a953218c8526caf4a10aa11fcea5ca703b24f898"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4a9c1ee0ccae0492249e284cd1e6a978d2de2b71","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class MetadataAgent(NeutronAgent):"},{"line_number":93,"context_line":"    type \u003d ovn_const.OVN_METADATA_AGENT"},{"line_number":94,"context_line":"    types \u003d [type]"},{"line_number":95,"context_line":"    binary \u003d \u0027networking-ovn-metadata-agent\u0027"},{"line_number":96,"context_line":"    key \u003d ovn_const.METADATA_LIVENESS_CHECK_EXT_ID_KEY"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_ef79b72f","line":94,"range":{"start_line":94,"start_character":13,"end_line":94,"end_character":17},"updated":"2020-07-27 09:46:25.000000000","message":"type is a built-in function in python, do you mean self.type here ?","commit_id":"8bc5b9673d37f160fbc608142d8061df914f5989"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"93c69a9258a9842e85b4382692307ac757a3c958","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class MetadataAgent(NeutronAgent):"},{"line_number":93,"context_line":"    type \u003d ovn_const.OVN_METADATA_AGENT"},{"line_number":94,"context_line":"    types \u003d [type]"},{"line_number":95,"context_line":"    binary \u003d \u0027networking-ovn-metadata-agent\u0027"},{"line_number":96,"context_line":"    key \u003d ovn_const.METADATA_LIVENESS_CHECK_EXT_ID_KEY"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_b6e7b840","line":94,"range":{"start_line":94,"start_character":13,"end_line":94,"end_character":17},"in_reply_to":"9f560f44_7377f2d5","updated":"2020-07-31 13:14:51.000000000","message":"Actually, looking again, this type \u003d is providing the equivalent of the type property of ControllerAgent. It\u0027s just that there is no complex behavior like in Controller that required a property, so I took this shortcut.\n\nThe only place that uses .type is in as_dict(), so I\u0027ll just rename it to _type or kind or something.","commit_id":"8bc5b9673d37f160fbc608142d8061df914f5989"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a10cf597da65684fd58fac0bf1c02503225c39ae","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class MetadataAgent(NeutronAgent):"},{"line_number":93,"context_line":"    type \u003d ovn_const.OVN_METADATA_AGENT"},{"line_number":94,"context_line":"    types \u003d [type]"},{"line_number":95,"context_line":"    binary \u003d \u0027networking-ovn-metadata-agent\u0027"},{"line_number":96,"context_line":"    key \u003d ovn_const.METADATA_LIVENESS_CHECK_EXT_ID_KEY"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_7377f2d5","line":94,"range":{"start_line":94,"start_character":13,"end_line":94,"end_character":17},"in_reply_to":"9f560f44_ef79b72f","updated":"2020-07-31 13:03:43.000000000","message":"There is no self here, but yeah overriding the built-in type() is super bad form. :) Will fix.","commit_id":"8bc5b9673d37f160fbc608142d8061df914f5989"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"714264d2bc93502d12246265052e093fe991ae6b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    def __init_subclass__(cls):"},{"line_number":27,"context_line":"        # Register the subclasses to be looked up by their type"},{"line_number":28,"context_line":"        for _type in cls.types:"},{"line_number":29,"context_line":"            NeutronAgent.types[_type] \u003d cls"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self, chassis):"},{"line_number":32,"context_line":"        self.chassis \u003d chassis"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_81e07098","line":29,"updated":"2020-07-31 14:40:03.000000000","message":"so elegant...","commit_id":"6723f4a485e2c60e45f45732c0881c126de06608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"714264d2bc93502d12246265052e093fe991ae6b","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def from_type(cls, _type, chassis):"},{"line_number":62,"context_line":"        return cls.types[_type](chassis)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @staticmethod"},{"line_number":65,"context_line":"    def agent_types():"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_bc2b1780","line":62,"updated":"2020-07-31 14:40:03.000000000","message":"Where are we using this?","commit_id":"6723f4a485e2c60e45f45732c0881c126de06608"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"635c7e04f2be0f566644450bd12ea5f1541eb4ed","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def from_type(cls, _type, chassis):"},{"line_number":62,"context_line":"        return cls.types[_type](chassis)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @staticmethod"},{"line_number":65,"context_line":"    def agent_types():"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_c77c38ed","line":62,"in_reply_to":"9f560f44_bc2b1780","updated":"2020-07-31 16:01:10.000000000","message":"Right now, just in the test code. Did it to make the change to _add_chassis_agent small.","commit_id":"6723f4a485e2c60e45f45732c0881c126de06608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"33a0cdbbc3ea71ae75d81090bcdcc8026f0cddd6","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def from_type(cls, _type, chassis):"},{"line_number":62,"context_line":"        return cls.types[_type](chassis)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @staticmethod"},{"line_number":65,"context_line":"    def agent_types():"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_225d227a","line":62,"in_reply_to":"9f560f44_c77c38ed","updated":"2020-07-31 16:40:53.000000000","message":"no no, I didn\u0027t see it. It\u0027s ok as is.","commit_id":"6723f4a485e2c60e45f45732c0881c126de06608"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"714264d2bc93502d12246265052e093fe991ae6b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def from_type(cls, _type, chassis):"},{"line_number":62,"context_line":"        return cls.types[_type](chassis)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @staticmethod"},{"line_number":65,"context_line":"    def agent_types():"},{"line_number":66,"context_line":"        return NeutronAgent.__subclasses__()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @property"},{"line_number":69,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_7c185f74","line":66,"range":{"start_line":64,"start_character":0,"end_line":66,"end_character":44},"updated":"2020-07-31 14:40:03.000000000","message":"again, very elegant","commit_id":"6723f4a485e2c60e45f45732c0881c126de06608"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"635c7e04f2be0f566644450bd12ea5f1541eb4ed","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def from_type(cls, _type, chassis):"},{"line_number":62,"context_line":"        return cls.types[_type](chassis)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @staticmethod"},{"line_number":65,"context_line":"    def agent_types():"},{"line_number":66,"context_line":"        return NeutronAgent.__subclasses__()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @property"},{"line_number":69,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_2747f47a","line":66,"range":{"start_line":64,"start_character":0,"end_line":66,"end_character":44},"in_reply_to":"9f560f44_7c185f74","updated":"2020-07-31 16:01:10.000000000","message":"*blushes*","commit_id":"6723f4a485e2c60e45f45732c0881c126de06608"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cfdee61461bf0b28ce7c1fae824aa573ec085e92","unresolved":false,"context_lines":[{"line_number":63,"context_line":"AGENTS \u003d {}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"class NeutronAgent:"},{"line_number":67,"context_line":"    types \u003d {}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init_subclass__(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_0a6bab84","line":66,"range":{"start_line":66,"start_character":6,"end_line":66,"end_character":18},"updated":"2020-06-23 11:12:53.000000000","message":"Terry, can we move it to some separate file in this directory? Maybe we can move this abstraction to some agents-related path? like neutron/neutron/plugins/ml2/drivers/ovs/agent.\nWhat others think about it?","commit_id":"85b6b68eed2c97e142579461b80d74989db5e95a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"0f800b20f12a512df68dd9d9de9e26e88f3bc229","unresolved":false,"context_lines":[{"line_number":63,"context_line":"AGENTS \u003d {}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"class NeutronAgent:"},{"line_number":67,"context_line":"    types \u003d {}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init_subclass__(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_5e38c19e","line":66,"range":{"start_line":66,"start_character":6,"end_line":66,"end_character":18},"in_reply_to":"bf51134e_0a6bab84","updated":"2020-06-23 14:08:55.000000000","message":"Good idea, will do. Initially left it here just because it\u0027d be easier to review the moved code. But I suppose people can open multiple windows on these new-fangled GUI operating systems. :p","commit_id":"85b6b68eed2c97e142579461b80d74989db5e95a"}]}
