)]}'
{"ironic/db/sqlalchemy/api.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"c9e81a4465ef606cd69cc0d87abd5b763d87ee37","unresolved":false,"context_lines":[{"line_number":743,"context_line":"        if nodes:"},{"line_number":744,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"},{"line_number":745,"context_line":"            LOG.warning("},{"line_number":746,"context_line":"                _LW(\u0027Cleared reservations held by %(hostname)s: \u0027"},{"line_number":747,"context_line":"                    \u0027%(nodes)s\u0027), {\u0027hostname\u0027: hostname, \u0027nodes\u0027: nodes})"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"    def get_active_driver_dict(self, interval\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_9d24c30d","line":746,"updated":"2016-04-26 08:15:23.000000000","message":"If target_power_state is set current node power state is unknown because hardware can be already switched to new state. Will be good collect also nodes with target_power_state is set and log warning that power state for these nodes can be incorrect.","commit_id":"a8442774ef7bde167ed323edd8c77fc9fc4effb7"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"b079ecfb58506983325c840981f54c777fb0dcdb","unresolved":false,"context_lines":[{"line_number":743,"context_line":"        if nodes:"},{"line_number":744,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"},{"line_number":745,"context_line":"            LOG.warning("},{"line_number":746,"context_line":"                _LW(\u0027Cleared reservations held by %(hostname)s: \u0027"},{"line_number":747,"context_line":"                    \u0027%(nodes)s\u0027), {\u0027hostname\u0027: hostname, \u0027nodes\u0027: nodes})"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"    def get_active_driver_dict(self, interval\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_bd26dfcb","line":746,"in_reply_to":"1a122d0e_9d24c30d","updated":"2016-04-26 08:30:08.000000000","message":"Thanks Yuriy for the suggestion, will update soon.","commit_id":"a8442774ef7bde167ed323edd8c77fc9fc4effb7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d4f4a95252efd83ab5eb629444eee9d42cab97a7","unresolved":false,"context_lines":[{"line_number":736,"context_line":"        with _session_for_write():"},{"line_number":737,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":738,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":739,"context_line":"            query \u003d query.filter(models.Node.target_power_state !\u003d sql.null())"},{"line_number":740,"context_line":"            power_nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":741,"context_line":"            query.update({\u0027target_power_state\u0027: None})"},{"line_number":742,"context_line":"            query \u003d (model_query(models.Node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_c58d937d","line":739,"updated":"2016-04-27 20:12:16.000000000","message":"what about nodes with target_power_state \u003d NULL? why do you think we should not clean resevations for them?","commit_id":"4dee2f4a59e17cc4d826c2c485bdbc457d8b2729"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"f7282f24cd0325ac44e062033537b230431bb36d","unresolved":false,"context_lines":[{"line_number":736,"context_line":"        with _session_for_write():"},{"line_number":737,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":738,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":739,"context_line":"            query \u003d query.filter(models.Node.target_power_state !\u003d sql.null())"},{"line_number":740,"context_line":"            power_nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":741,"context_line":"            query.update({\u0027target_power_state\u0027: None})"},{"line_number":742,"context_line":"            query \u003d (model_query(models.Node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_e78fef20","line":739,"in_reply_to":"1a122d0e_c58d937d","updated":"2016-04-28 02:33:15.000000000","message":"hi Dmitry, this is the first clean step which dedicated to cleaning target_power_state, and on the second step below, it will clean all reservations, see L742-745.","commit_id":"4dee2f4a59e17cc4d826c2c485bdbc457d8b2729"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"74e94d7de828179f688a23952897ec49eaa934fd","unresolved":false,"context_lines":[{"line_number":739,"context_line":"            query \u003d query.filter(models.Node.target_power_state !\u003d sql.null())"},{"line_number":740,"context_line":"            power_nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":741,"context_line":"            query.update({\u0027target_power_state\u0027: None,"},{"line_number":742,"context_line":"                          \u0027reservation\u0027: None})"},{"line_number":743,"context_line":"            # clear all node reservations"},{"line_number":744,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":745,"context_line":"                     .filter_by(reservation\u003dhostname))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_e1954332","line":742,"range":{"start_line":742,"start_character":1,"end_line":742,"end_character":47},"updated":"2016-05-05 10:01:29.000000000","message":"since you plan to clear reservation for all nodes below, this is not necessary to do now.","commit_id":"cd2b736b7f430e50a7bf94b5ad08d95606bb9989"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"74e94d7de828179f688a23952897ec49eaa934fd","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            power_nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":741,"context_line":"            query.update({\u0027target_power_state\u0027: None,"},{"line_number":742,"context_line":"                          \u0027reservation\u0027: None})"},{"line_number":743,"context_line":"            # clear all node reservations"},{"line_number":744,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":745,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":746,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_d46a83b4","line":743,"updated":"2016-05-05 10:01:29.000000000","message":"Or you change the note like clear the rest node reservations.","commit_id":"cd2b736b7f430e50a7bf94b5ad08d95606bb9989"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d7866126604e9dc2b9daf53690d6dfbc4b171256","unresolved":false,"context_lines":[{"line_number":731,"context_line":"            if count \u003d\u003d 0:"},{"line_number":732,"context_line":"                raise exception.ConductorNotFound(conductor\u003dhostname)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def clear_node_reservations_for_conductor(self, hostname):"},{"line_number":735,"context_line":"        nodes \u003d []"},{"line_number":736,"context_line":"        with _session_for_write():"},{"line_number":737,"context_line":"            query \u003d (model_query(models.Node)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_74b3b29a","line":734,"updated":"2016-05-26 16:03:58.000000000","message":"seems like we have to rename this method","commit_id":"d74ce46cf7a40cb59a568b8dca458ddf6e991446"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d7866126604e9dc2b9daf53690d6dfbc4b171256","unresolved":false,"context_lines":[{"line_number":743,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":744,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":745,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":746,"context_line":"            query.update({\u0027reservation\u0027: None})"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"        if nodes:"},{"line_number":749,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_54b82e75","line":746,"updated":"2016-05-26 16:03:58.000000000","message":"actually everything above is not needed, just add \u0027target_power_state\u0027: None here. It will just ignore everything with None.","commit_id":"d74ce46cf7a40cb59a568b8dca458ddf6e991446"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e8238a7a8682b12d7bc8380b7fad7077900c1591","unresolved":false,"context_lines":[{"line_number":743,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":744,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":745,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":746,"context_line":"            query.update({\u0027reservation\u0027: None})"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"        if nodes:"},{"line_number":749,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_3c7853c4","line":746,"in_reply_to":"9abb7d3a_35722bae","updated":"2016-05-30 10:28:40.000000000","message":"Then you have to split these into 2 functions.","commit_id":"d74ce46cf7a40cb59a568b8dca458ddf6e991446"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"e45d420fc3380de764c3fc03e6f2660e712d6110","unresolved":false,"context_lines":[{"line_number":743,"context_line":"            query \u003d (model_query(models.Node)"},{"line_number":744,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":745,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":746,"context_line":"            query.update({\u0027reservation\u0027: None})"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"        if nodes:"},{"line_number":749,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_35722bae","line":746,"in_reply_to":"bab6814e_54b82e75","updated":"2016-05-30 09:38:20.000000000","message":"thanks Dmitry for the comments, on patch set 1, the code is just like what you suggested, but Yuriy pointed out that it\u0027s better to also collect the nodes with target_power_state and log a warning.","commit_id":"d74ce46cf7a40cb59a568b8dca458ddf6e991446"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2dead4ca87b8e0a159144fe98d5bbfb28124a3f4","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            LOG.warning("},{"line_number":760,"context_line":"                _LW(\u0027Cleared target_power_state of the locked nodes in \u0027"},{"line_number":761,"context_line":"                    \u0027powering process, their power state can be incorrect: \u0027"},{"line_number":762,"context_line":"                    \u0027%(nodes2)s\u0027), {\u0027nodes\u0027: nodes})"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"    def get_active_driver_dict(self, interval\u003dNone):"},{"line_number":765,"context_line":"        if interval is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_0fb7c1f5","line":762,"updated":"2016-05-31 18:11:06.000000000","message":"typo: s/nodes2/nodes/","commit_id":"693e9643a7220e0189e85fd1d442d71fa8939e8a"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"8a4cc082d174a9255d211ccf1cb1bbd80e9a3665","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            LOG.warning("},{"line_number":760,"context_line":"                _LW(\u0027Cleared target_power_state of the locked nodes in \u0027"},{"line_number":761,"context_line":"                    \u0027powering process, their power state can be incorrect: \u0027"},{"line_number":762,"context_line":"                    \u0027%(nodes2)s\u0027), {\u0027nodes\u0027: nodes})"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"    def get_active_driver_dict(self, interval\u003dNone):"},{"line_number":765,"context_line":"        if interval is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_bc8e9fcd","line":762,"in_reply_to":"9abb7d3a_0fb7c1f5","updated":"2016-06-01 03:36:32.000000000","message":"Done","commit_id":"693e9643a7220e0189e85fd1d442d71fa8939e8a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0492d943559ca08ce84de5050c7c2686e7439def","unresolved":false,"context_lines":[{"line_number":752,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":753,"context_line":"            query \u003d query.filter(models.Node.target_power_state !\u003d sql.null())"},{"line_number":754,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":755,"context_line":"            query.update({\u0027target_power_state\u0027: None})"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"        if nodes:"},{"line_number":758,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_792222bb","line":755,"updated":"2016-06-06 04:51:04.000000000","message":"I\u0027ve just realized we should probably set last_error to something like \"Pending power operation was aborted due to conductor restart\"","commit_id":"a16d89f9e67fe0fbf0ea5decf3a00cd8902ddaa7"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"e856d2bde1af8f83463c37a284bc5e5e0a783409","unresolved":false,"context_lines":[{"line_number":752,"context_line":"                     .filter_by(reservation\u003dhostname))"},{"line_number":753,"context_line":"            query \u003d query.filter(models.Node.target_power_state !\u003d sql.null())"},{"line_number":754,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":755,"context_line":"            query.update({\u0027target_power_state\u0027: None})"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"        if nodes:"},{"line_number":758,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_b52bd02f","line":755,"in_reply_to":"7aa08908_792222bb","updated":"2016-06-06 14:15:10.000000000","message":"Done","commit_id":"a16d89f9e67fe0fbf0ea5decf3a00cd8902ddaa7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9c7d26333217a75adfad5648d40c9034c799bd19","unresolved":false,"context_lines":[{"line_number":764,"context_line":"            nodes \u003d [node[\u0027uuid\u0027] for node in query]"},{"line_number":765,"context_line":"            query.update({\u0027target_power_state\u0027: None,"},{"line_number":766,"context_line":"                          \u0027last_error\u0027: \"Pending power operation was aborted \""},{"line_number":767,"context_line":"                          \"due to conductor restart\"})"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        if nodes:"},{"line_number":770,"context_line":"            nodes \u003d \u0027, \u0027.join(nodes)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3aaa91ec_612b9c95","line":767,"updated":"2016-06-27 13:58:00.000000000","message":"this need i18n by using _()","commit_id":"d52077f4fe8c668b258702e8298a4beaa19476d8"}],"ironic/tests/unit/db/test_conductor.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d4f4a95252efd83ab5eb629444eee9d42cab97a7","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        node1 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname1\u0027,"},{"line_number":103,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":104,"context_line":"        node2 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname2\u0027,"},{"line_number":105,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":106,"context_line":"        node3 \u003d self.dbapi.create_node({\u0027reservation\u0027: None,"},{"line_number":107,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":108,"context_line":"        self.dbapi.clear_node_reservations_for_conductor(\u0027hostname1\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_65947f8a","line":105,"updated":"2016-04-27 20:12:16.000000000","message":"please try target_power_state \u003d None here, I suspect it might not work.","commit_id":"4dee2f4a59e17cc4d826c2c485bdbc457d8b2729"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"f7282f24cd0325ac44e062033537b230431bb36d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        node1 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname1\u0027,"},{"line_number":103,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":104,"context_line":"        node2 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname2\u0027,"},{"line_number":105,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":106,"context_line":"        node3 \u003d self.dbapi.create_node({\u0027reservation\u0027: None,"},{"line_number":107,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":108,"context_line":"        self.dbapi.clear_node_reservations_for_conductor(\u0027hostname1\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_47a18393","line":105,"in_reply_to":"1a122d0e_65947f8a","updated":"2016-04-28 02:33:15.000000000","message":"ok, but that could work as expected I think:) will update soon!","commit_id":"4dee2f4a59e17cc4d826c2c485bdbc457d8b2729"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6e2cec15823f702ccf9ec72c1e380fc9c9d64a8e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        node1 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname1\u0027,"},{"line_number":103,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":104,"context_line":"        node2 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname1\u0027,"},{"line_number":105,"context_line":"                                        \u0027target_power_state\u0027: None})"},{"line_number":106,"context_line":"        node3 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname2\u0027,"},{"line_number":107,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":108,"context_line":"        node4 \u003d self.dbapi.create_node({\u0027reservation\u0027: None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_40099f94","line":105,"updated":"2016-05-05 01:29:43.000000000","message":"Why not states.NOSTATE?","commit_id":"473f71f175b7e9a3fe47b7130ec121843042daf5"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"1e019762aa27a3ed08046460c3a872ff60249188","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        node1 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname1\u0027,"},{"line_number":103,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":104,"context_line":"        node2 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname1\u0027,"},{"line_number":105,"context_line":"                                        \u0027target_power_state\u0027: None})"},{"line_number":106,"context_line":"        node3 \u003d self.dbapi.create_node({\u0027reservation\u0027: \u0027hostname2\u0027,"},{"line_number":107,"context_line":"                                        \u0027target_power_state\u0027: \u0027power on\u0027})"},{"line_number":108,"context_line":"        node4 \u003d self.dbapi.create_node({\u0027reservation\u0027: None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_80d297cf","line":105,"in_reply_to":"1a122d0e_40099f94","updated":"2016-05-05 01:39:25.000000000","message":"will update soon, thanks Julia!","commit_id":"473f71f175b7e9a3fe47b7130ec121843042daf5"}],"releasenotes/notes/clear-node-target-power-state-de1f25be46d3e6d7.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2dead4ca87b8e0a159144fe98d5bbfb28124a3f4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Clear target_power_state of the locked nodes on conductor startup."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9abb7d3a_2fb28506","line":3,"updated":"2016-05-31 18:11:06.000000000","message":"Please clarify it, this is not done for all locked nodes, only nodes managed by this conductor.","commit_id":"693e9643a7220e0189e85fd1d442d71fa8939e8a"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"8a4cc082d174a9255d211ccf1cb1bbd80e9a3665","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Clear target_power_state of the locked nodes on conductor startup."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9abb7d3a_7c2437c4","line":3,"in_reply_to":"9abb7d3a_2fb28506","updated":"2016-06-01 03:36:32.000000000","message":"Done","commit_id":"693e9643a7220e0189e85fd1d442d71fa8939e8a"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"3f16d2b8a985794ba254f4600f5a69afbdf3bb01","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Clear target_power_state of the nodes locked by the conductor on it"},{"line_number":4,"context_line":"    startup."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7aa08908_6edd5ddf","line":3,"updated":"2016-06-14 21:57:58.000000000","message":"nit: s/it/its","commit_id":"7b0499e6809cd95105ccf66a32e585de1eadf6d7"}]}
