)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"244cc0a45019fad62d497082f95bd1936e302392","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds poll mode deployment support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds get_hardware_info to the standby extension, which will be used"},{"line_number":10,"context_line":"for node validation by ironic deploy drivers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Adds get_node_info to the stanby extension, which will be used for sending"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ff570b3c_c6869c66","line":9,"range":{"start_line":9,"start_character":30,"end_line":9,"end_character":37},"updated":"2020-05-20 02:21:04.000000000","message":"OMG, forget to update this..","commit_id":"3d7b3dd804da145fc05621c9ea8c7397642569b3"}],"ironic_python_agent/extensions/standby.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"13ab75b260ae405db1b89f02dcd2f03b068c7959","unresolved":false,"context_lines":[{"line_number":460,"context_line":"    for field in [\u0027uuid\u0027, \u0027properties\u0027]:"},{"line_number":461,"context_line":"        if field not in node_info:"},{"line_number":462,"context_line":"            msg \u003d \u0027node_info is missing \\\u0027{}\\\u0027 field.\u0027.format(field)"},{"line_number":463,"context_line":"            raise errors.InvalidCommandParamsError(msg)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"class StandbyExtension(base.BaseAgentExtension):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0c65e9e1","line":463,"updated":"2020-02-15 03:02:56.000000000","message":"Just thinking the big picture a little,  I wonder if we should be doing any validation on the incoming request, then again agent token should suffice on the inbound request if provided via vmedia.\n\nJust wondering how we push a token out in that case.... Since we don\u0027t want to take action on the wrong node, especially if we ever have long running agents and can kexec them.","commit_id":"df6f3ac8d92b2f425c081618434f9aa761ec6041"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"dfc9282aedc5ed02195a8bc6bb70866ec5608ce2","unresolved":false,"context_lines":[{"line_number":460,"context_line":"    for field in [\u0027uuid\u0027, \u0027properties\u0027]:"},{"line_number":461,"context_line":"        if field not in node_info:"},{"line_number":462,"context_line":"            msg \u003d \u0027node_info is missing \\\u0027{}\\\u0027 field.\u0027.format(field)"},{"line_number":463,"context_line":"            raise errors.InvalidCommandParamsError(msg)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"class StandbyExtension(base.BaseAgentExtension):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a774ee9b","line":463,"in_reply_to":"3fa7e38b_0c65e9e1","updated":"2020-02-15 08:59:23.000000000","message":"Sorry I haven\u0027t looked the token patches yet, this is needed before I can figure out a larger scope :(\nFrom original spec we validate mac address before sending lookup to the agent, surely we can discuss more if the original proposal is not secured enough. I can hold this patch since it\u0027s not in a high priority atm.","commit_id":"df6f3ac8d92b2f425c081618434f9aa761ec6041"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fcdc453aae0ebcd2ce14aa525bdbccb8fa20173b","unresolved":false,"context_lines":[{"line_number":706,"context_line":"                raise errors.ClockSyncError(msg)"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"    @base.sync_command(\u0027get_hardware_info\u0027)"},{"line_number":709,"context_line":"    def get_hardware_info(self):"},{"line_number":710,"context_line":"        \"\"\"Get the hardware information where IPA is running.\"\"\""},{"line_number":711,"context_line":"        hardware_info \u003d hardware.dispatch_to_managers(\u0027list_hardware_info\u0027)"},{"line_number":712,"context_line":"        encoder \u003d encoding.RESTJSONEncoder()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_0a063a87","line":709,"updated":"2020-05-08 08:46:06.000000000","message":"Let\u0027s maybe move these two calls to a new extension? This class is concerned with stuff around the direct deploy interface","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"5947492f4aa0b0e92f2235d07af0fdf4006e2f7e","unresolved":false,"context_lines":[{"line_number":706,"context_line":"                raise errors.ClockSyncError(msg)"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"    @base.sync_command(\u0027get_hardware_info\u0027)"},{"line_number":709,"context_line":"    def get_hardware_info(self):"},{"line_number":710,"context_line":"        \"\"\"Get the hardware information where IPA is running.\"\"\""},{"line_number":711,"context_line":"        hardware_info \u003d hardware.dispatch_to_managers(\u0027list_hardware_info\u0027)"},{"line_number":712,"context_line":"        encoder \u003d encoding.RESTJSONEncoder()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_8e83eb04","line":709,"in_reply_to":"1f493fa4_0a063a87","updated":"2020-05-09 01:24:11.000000000","message":"Sounds good, name it \"poll\" maybe?","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fcdc453aae0ebcd2ce14aa525bdbccb8fa20173b","unresolved":false,"context_lines":[{"line_number":709,"context_line":"    def get_hardware_info(self):"},{"line_number":710,"context_line":"        \"\"\"Get the hardware information where IPA is running.\"\"\""},{"line_number":711,"context_line":"        hardware_info \u003d hardware.dispatch_to_managers(\u0027list_hardware_info\u0027)"},{"line_number":712,"context_line":"        encoder \u003d encoding.RESTJSONEncoder()"},{"line_number":713,"context_line":"        hardware_info \u003d encoder.encode(hardware_info)"},{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_ea082e92","line":712,"updated":"2020-05-08 08:46:06.000000000","message":"Do we need this explicitly? I would expect the extension mechanism to take care of serialization.","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"5947492f4aa0b0e92f2235d07af0fdf4006e2f7e","unresolved":false,"context_lines":[{"line_number":709,"context_line":"    def get_hardware_info(self):"},{"line_number":710,"context_line":"        \"\"\"Get the hardware information where IPA is running.\"\"\""},{"line_number":711,"context_line":"        hardware_info \u003d hardware.dispatch_to_managers(\u0027list_hardware_info\u0027)"},{"line_number":712,"context_line":"        encoder \u003d encoding.RESTJSONEncoder()"},{"line_number":713,"context_line":"        hardware_info \u003d encoder.encode(hardware_info)"},{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_2ea57fb6","line":712,"in_reply_to":"1f493fa4_ea082e92","updated":"2020-05-09 01:24:11.000000000","message":"Yep, it appears so, I can investigate if it needs another spin.","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"b1e3320eea9fadcb0b394950c4da1fc4a4cf5179","unresolved":false,"context_lines":[{"line_number":709,"context_line":"    def get_hardware_info(self):"},{"line_number":710,"context_line":"        \"\"\"Get the hardware information where IPA is running.\"\"\""},{"line_number":711,"context_line":"        hardware_info \u003d hardware.dispatch_to_managers(\u0027list_hardware_info\u0027)"},{"line_number":712,"context_line":"        encoder \u003d encoding.RESTJSONEncoder()"},{"line_number":713,"context_line":"        hardware_info \u003d encoder.encode(hardware_info)"},{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_066ff4c4","line":712,"in_reply_to":"ff570b3c_2ea57fb6","updated":"2020-05-20 02:20:20.000000000","message":"I think it\u0027s not required, seems to be something wrong with my tests code, updated.","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fcdc453aae0ebcd2ce14aa525bdbccb8fa20173b","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @base.sync_command(\u0027node_info\u0027)"},{"line_number":717,"context_line":"    def node_info(self, node_info\u003dNone):"},{"line_number":718,"context_line":"        \"\"\"Set node lookup data when IPA is running at passive mode."},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        :param node_info: A dictionary contains the information of the node"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_4a004268","line":717,"updated":"2020-05-08 08:46:06.000000000","message":"I\u0027d call it set_node_info","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"b1e3320eea9fadcb0b394950c4da1fc4a4cf5179","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @base.sync_command(\u0027node_info\u0027)"},{"line_number":717,"context_line":"    def node_info(self, node_info\u003dNone):"},{"line_number":718,"context_line":"        \"\"\"Set node lookup data when IPA is running at passive mode."},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        :param node_info: A dictionary contains the information of the node"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_e67120aa","line":717,"in_reply_to":"1f493fa4_4a004268","updated":"2020-05-20 02:20:20.000000000","message":"Done","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"5947492f4aa0b0e92f2235d07af0fdf4006e2f7e","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @base.sync_command(\u0027node_info\u0027)"},{"line_number":717,"context_line":"    def node_info(self, node_info\u003dNone):"},{"line_number":718,"context_line":"        \"\"\"Set node lookup data when IPA is running at passive mode."},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        :param node_info: A dictionary contains the information of the node"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_ce93235c","line":717,"in_reply_to":"1f493fa4_4a004268","updated":"2020-05-09 01:24:11.000000000","message":"Same feeling here, but this is defined in the spec, we can rename if no objections.","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8ed07704ddbaaed32cac2877a7bcc1288dbd720d","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        return hardware_info"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @base.sync_command(\u0027node_info\u0027)"},{"line_number":717,"context_line":"    def node_info(self, node_info\u003dNone):"},{"line_number":718,"context_line":"        \"\"\"Set node lookup data when IPA is running at passive mode."},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        :param node_info: A dictionary contains the information of the node"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_73ae102f","line":717,"in_reply_to":"ff570b3c_ce93235c","updated":"2020-05-12 15:21:41.000000000","message":"no objection to this.","commit_id":"21616dffdd6cbdb1df97b4fcb08db736e1df1f4d"}]}
