)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aaee24a21d1c1f43ad63fe501e488a9e37331eba","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Kaifeng Wang \u003ckaifeng.w@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-12-15 13:16:07 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provides detailed conductor information"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_f7275611","line":7,"updated":"2018-08-23 13:37:43.000000000","message":"I think this spec kind of conflicts with https://review.openstack.org/#/c/471217/ but is closer to landing","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b9349e98de17b86be00b061bc563d92af0aeb6d7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  running."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I7da04c1775132d4112acf3e1f3f1f19cf164a144"},{"line_number":26,"context_line":"Related-Bug: #1724474"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf659307_1328cddf","line":26,"updated":"2018-04-12 15:56:19.000000000","message":"please update to task/story","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"84487f975a9661fab240a1b156d52a4ca660c1fd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provides detailed conductor information"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_d8a9b18f","line":9,"range":{"start_line":9,"start_character":54,"end_line":9,"end_character":66},"updated":"2018-10-18 09:12:14.000000000","message":"nit: may be present? being used?\n\n/me is not sure","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provides detailed conductor information"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_f2ceba2a","line":9,"range":{"start_line":9,"start_character":54,"end_line":9,"end_character":66},"in_reply_to":"3f79a3b5_d8a9b18f","updated":"2018-10-23 03:34:28.000000000","message":"It seems TheJulia like to use this word, so I\u0027m counting on her native usage :)","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"84487f975a9661fab240a1b156d52a4ca660c1fd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Provides detailed conductor information"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes providing support of retrieving such information"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_38c3055b","line":10,"range":{"start_line":10,"start_character":51,"end_line":10,"end_character":52},"updated":"2018-10-18 09:12:14.000000000","message":"nit: may be a new sentence would read better?","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Provides detailed conductor information"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes providing support of retrieving such information"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_52df6ed6","line":10,"range":{"start_line":10,"start_character":51,"end_line":10,"end_character":52},"in_reply_to":"3f79a3b5_38c3055b","updated":"2018-10-23 03:34:28.000000000","message":"Done","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"84487f975a9661fab240a1b156d52a4ca660c1fd","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes providing support of retrieving such information"},{"line_number":14,"context_line":"from ironic API."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_3898e574","line":11,"range":{"start_line":11,"start_character":27,"end_line":11,"end_character":65},"updated":"2018-10-18 09:12:14.000000000","message":"nit: may be \u0027which conductor currently owns a given node\u0027?","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In a large deployment with multiple ironic conductors incorporated,"},{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes providing support of retrieving such information"},{"line_number":14,"context_line":"from ironic API."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_9283c6aa","line":11,"range":{"start_line":11,"start_character":27,"end_line":11,"end_character":65},"in_reply_to":"3f79a3b5_3898e574","updated":"2018-10-23 03:34:28.000000000","message":"Done (changed own to serve)","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"84487f975a9661fab240a1b156d52a4ca660c1fd","unresolved":false,"context_lines":[{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes providing support of retrieving such information"},{"line_number":14,"context_line":"from ironic API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In short:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_78773d3e","line":13,"range":{"start_line":13,"start_character":37,"end_line":13,"end_character":39},"updated":"2018-10-18 09:12:14.000000000","message":"nit: for ?","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"nodes are distributed across conductors by hashring, currently we"},{"line_number":11,"context_line":"have no mechanism to know the specific conductor for a given node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes providing support of retrieving such information"},{"line_number":14,"context_line":"from ironic API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In short:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_72886ac2","line":13,"range":{"start_line":13,"start_character":37,"end_line":13,"end_character":39},"in_reply_to":"3f79a3b5_78773d3e","updated":"2018-10-23 03:34:28.000000000","message":"Done","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"}],"specs/approved/expose-conductor-info.rst":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0531b196c438887d72373002cb59c3ea362cfb38","unresolved":false,"context_lines":[{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Admins can directly query the ironic database for a conductor list. To locate"},{"line_number":61,"context_line":"the last conductor served a node, query nodes table for the"},{"line_number":62,"context_line":"``conductor_affinity`` field, then query ``conductors`` table for the hostname"},{"line_number":63,"context_line":"of the conductor. The ``conductor_affinity`` is updated in several cases,"},{"line_number":64,"context_line":"mainly during node deployment time. There is no alternative to get the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_376ff992","line":61,"range":{"start_line":61,"start_character":9,"end_line":61,"end_character":25},"updated":"2018-09-19 06:34:59.000000000","message":"typo: that?","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9f8b71a131fa756e4675c7ab48f606df1bb3f80c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Admins can directly query the ironic database for a conductor list. To locate"},{"line_number":61,"context_line":"the last conductor served a node, query nodes table for the"},{"line_number":62,"context_line":"``conductor_affinity`` field, then query ``conductors`` table for the hostname"},{"line_number":63,"context_line":"of the conductor. The ``conductor_affinity`` is updated in several cases,"},{"line_number":64,"context_line":"mainly during node deployment time. There is no alternative to get the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_97fea968","line":61,"range":{"start_line":61,"start_character":9,"end_line":61,"end_character":25},"in_reply_to":"3f79a3b5_376ff992","updated":"2018-10-18 08:07:14.000000000","message":"Done","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0531b196c438887d72373002cb59c3ea362cfb38","unresolved":false,"context_lines":[{"line_number":100,"context_line":"              },"},{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_972ccd4a","line":103,"range":{"start_line":103,"start_character":19,"end_line":103,"end_character":24},"updated":"2018-09-19 06:34:59.000000000","message":"conductor_group vs group ?","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b9603c576553f37a419045bc253453d0ae55221","unresolved":false,"context_lines":[{"line_number":100,"context_line":"              },"},{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_8f5b0688","line":103,"range":{"start_line":103,"start_character":19,"end_line":103,"end_character":24},"in_reply_to":"3f79a3b5_952605ba","updated":"2018-10-17 14:56:34.000000000","message":"Likely a good idea to respin the patch with that. I\u0027ll mark it -1 so there is that visibility to do so.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9f8b71a131fa756e4675c7ab48f606df1bb3f80c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"              },"},{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_3738f53a","line":103,"range":{"start_line":103,"start_character":19,"end_line":103,"end_character":24},"in_reply_to":"3f79a3b5_972ccd4a","updated":"2018-10-18 08:07:14.000000000","message":"Done","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"7f8d31b6e81a2bf27107731e04acff115802a4b8","unresolved":false,"context_lines":[{"line_number":100,"context_line":"              },"},{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_952605ba","line":103,"range":{"start_line":103,"start_character":19,"end_line":103,"end_character":24},"in_reply_to":"3f79a3b5_972ccd4a","updated":"2018-09-19 08:10:12.000000000","message":"Oops, should be conductor_group here.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b9603c576553f37a419045bc253453d0ae55221","unresolved":false,"context_lines":[{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"},{"line_number":107,"context_line":"          ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_af9362ff","line":104,"updated":"2018-10-17 14:56:34.000000000","message":"I feel like it might be premature to have an online field, fwiw. That being said, I understand this is just an example.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d657a407a9ea761305256fc19adea053b4e2482f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"},{"line_number":107,"context_line":"          ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_c6ff9967","line":104,"in_reply_to":"3f79a3b5_af9362ff","updated":"2018-10-18 04:00:43.000000000","message":"I haven\u0027t thought too much about the field, exposing it only because it\u0027s an existing field that might helpful, but it is kind of redundant with the \"alive\", fine to remove it.\n\nI wonder is there any other special reason?","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9f8b71a131fa756e4675c7ab48f606df1bb3f80c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"},{"line_number":107,"context_line":"          ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_772e6dfa","line":104,"in_reply_to":"3f79a3b5_af9362ff","updated":"2018-10-18 08:07:14.000000000","message":"online field is removed.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9458bd63dda85b244340f4f7e396d143a085dd4d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"              {"},{"line_number":102,"context_line":"                  \"hostname\": \"Compute03\","},{"line_number":103,"context_line":"                  \"group\": \"region1\","},{"line_number":104,"context_line":"                  \"online\": true,"},{"line_number":105,"context_line":"                  \"alive\": true"},{"line_number":106,"context_line":"              }"},{"line_number":107,"context_line":"          ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_d0d0842d","line":104,"in_reply_to":"3f79a3b5_c6ff9967","updated":"2018-10-19 16:31:46.000000000","message":"I think there is, I just don\u0027t remember. That or it got in at some point and we might not be using it. Your implementation details may differ and that is fine with me.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0531b196c438887d72373002cb59c3ea362cfb38","unresolved":false,"context_lines":[{"line_number":125,"context_line":"          \"last_seen\": \"2018-09-10 19:53:17\""},{"line_number":126,"context_line":"      }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Change ``Node`` API object in a following way:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add a read-only attribute ``conductor`` to indicate the hostname of"},{"line_number":131,"context_line":"  associated conductor."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_1720bd48","line":128,"range":{"start_line":128,"start_character":30,"end_line":128,"end_character":31},"updated":"2018-09-19 06:34:59.000000000","message":"nit: the","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9f8b71a131fa756e4675c7ab48f606df1bb3f80c","unresolved":false,"context_lines":[{"line_number":125,"context_line":"          \"last_seen\": \"2018-09-10 19:53:17\""},{"line_number":126,"context_line":"      }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Change ``Node`` API object in a following way:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add a read-only attribute ``conductor`` to indicate the hostname of"},{"line_number":131,"context_line":"  associated conductor."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_d7ee6189","line":128,"range":{"start_line":128,"start_character":30,"end_line":128,"end_character":31},"in_reply_to":"3f79a3b5_1720bd48","updated":"2018-10-18 08:07:14.000000000","message":"Done\n\nMy instinct told me \"in following way\" is better, but my sense of language always cheats me :)","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"38fff9b2c5a4a2ab814fc1ac67d09d21ccb2ffcf","unresolved":false,"context_lines":[{"line_number":125,"context_line":"          \"last_seen\": \"2018-09-10 19:53:17\""},{"line_number":126,"context_line":"      }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Change ``Node`` API object in a following way:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add a read-only attribute ``conductor`` to indicate the hostname of"},{"line_number":131,"context_line":"  associated conductor."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_f01580e7","line":128,"range":{"start_line":128,"start_character":30,"end_line":128,"end_character":31},"in_reply_to":"3f79a3b5_58e7e110","updated":"2018-10-19 16:28:20.000000000","message":"I think \"a\" works, but also \"the following way\" works as well.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"84487f975a9661fab240a1b156d52a4ca660c1fd","unresolved":false,"context_lines":[{"line_number":125,"context_line":"          \"last_seen\": \"2018-09-10 19:53:17\""},{"line_number":126,"context_line":"      }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Change ``Node`` API object in a following way:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add a read-only attribute ``conductor`` to indicate the hostname of"},{"line_number":131,"context_line":"  associated conductor."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_58e7e110","line":128,"range":{"start_line":128,"start_character":30,"end_line":128,"end_character":31},"in_reply_to":"3f79a3b5_d7ee6189","updated":"2018-10-18 09:12:14.000000000","message":"Well, /me is totally driven by instincts.\n\nPerhaps we should better appeal to TheJulia for the sound opinion.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0531b196c438887d72373002cb59c3ea362cfb38","unresolved":false,"context_lines":[{"line_number":131,"context_line":"  associated conductor."},{"line_number":132,"context_line":"* Retrieve and assign the conductor hostname in ``Node.convert_with_links``."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The hostname of conductor will be returned in these endpoints:"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* ``POST /v1/nodes``"},{"line_number":137,"context_line":"* ``GET /v1/nodes`` (when ``detail`` is set to true)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_17e51d0a","line":134,"range":{"start_line":134,"start_character":15,"end_line":134,"end_character":16},"updated":"2018-09-19 06:34:59.000000000","message":"nit: the","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9f8b71a131fa756e4675c7ab48f606df1bb3f80c","unresolved":false,"context_lines":[{"line_number":131,"context_line":"  associated conductor."},{"line_number":132,"context_line":"* Retrieve and assign the conductor hostname in ``Node.convert_with_links``."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The hostname of conductor will be returned in these endpoints:"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* ``POST /v1/nodes``"},{"line_number":137,"context_line":"* ``GET /v1/nodes`` (when ``detail`` is set to true)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_37fd553c","line":134,"range":{"start_line":134,"start_character":15,"end_line":134,"end_character":16},"in_reply_to":"3f79a3b5_17e51d0a","updated":"2018-10-18 08:07:14.000000000","message":"Done","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0531b196c438887d72373002cb59c3ea362cfb38","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_57b075fd","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"updated":"2018-09-19 06:34:59.000000000","message":"Would `conductor_group` be useful here?","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9f8b71a131fa756e4675c7ab48f606df1bb3f80c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_52325ff5","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_15c43591","updated":"2018-10-18 08:07:14.000000000","message":"Oops, I have already noted that at L137.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b9603c576553f37a419045bc253453d0ae55221","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_6f9d4a08","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_15c43591","updated":"2018-10-17 14:56:34.000000000","message":"We could just expose the conductor_affinity field with....","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9458bd63dda85b244340f4f7e396d143a085dd4d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_9081acfd","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_46c94978","updated":"2018-10-19 16:31:46.000000000","message":"Okay, it is an implementation detail then, as long as we\u0027re not re-calculating the hash ring per node, I think we should be fine.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"7f8d31b6e81a2bf27107731e04acff115802a4b8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_15c43591","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_57b075fd","updated":"2018-09-19 08:10:12.000000000","message":"you can ask jroll if it is an important field :D\n\nfor the \"conductor\" field, it will not be returned if detail\u003dFalse, I\u0027ll clarify this.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d657a407a9ea761305256fc19adea053b4e2482f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_46c94978","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_6f9d4a08","updated":"2018-10-18 04:00:43.000000000","message":"There was some thought at PS1, that explains why don\u0027t choose conductor_affinity, in short, this field is not updated in every case.\n\nhttps://review.openstack.org/#/c/528158/1/specs/approved/node-conductor-mapping.rst@105","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_b5f90c50","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_9081acfd","updated":"2018-10-23 03:34:28.000000000","message":"I would avoid re-calculate hash ring too, this feature will read hash ring data on each request, judging by code there is caching mechanism indeed. We\u0027ll need to add one or more interfaces to ConductorAPI, up to the implementation that whether the mapping calculation code lives in API or RPCAPI.","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cea19f9d5c2689b5dd12f16f2c15dca360e580ab","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"nodes\": ["},{"line_number":145,"context_line":"            {"},{"line_number":146,"context_line":"                \"instance_uuid\": null,"},{"line_number":147,"context_line":"                \"conductor\": \"Compute01\","},{"line_number":148,"context_line":"                \"uuid\": \"a308bca6-e6a3-4349-b8ea-695e17672898\","},{"line_number":149,"context_line":"                \"links\": ...,"},{"line_number":150,"context_line":"                \"maintenance\": false,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_e5552fc2","line":147,"range":{"start_line":147,"start_character":17,"end_line":147,"end_character":26},"in_reply_to":"3f79a3b5_b5f90c50","updated":"2018-10-26 21:23:55.000000000","message":"Works for me!","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"0531b196c438887d72373002cb59c3ea362cfb38","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        ]"},{"line_number":156,"context_line":"    }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Add support for querying nodes by conductor hostname for endpoints:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"* ``GET /v1/nodes``"},{"line_number":161,"context_line":"* ``GET /v1/nodes/detail``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_d7c32557","line":158,"range":{"start_line":158,"start_character":34,"end_line":158,"end_character":52},"updated":"2018-09-19 06:34:59.000000000","message":"Would it be useful/possible to also query nodes by conductor group?","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"7f8d31b6e81a2bf27107731e04acff115802a4b8","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        ]"},{"line_number":156,"context_line":"    }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Add support for querying nodes by conductor hostname for endpoints:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"* ``GET /v1/nodes``"},{"line_number":161,"context_line":"* ``GET /v1/nodes/detail``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_15499530","line":158,"range":{"start_line":158,"start_character":34,"end_line":158,"end_character":52},"in_reply_to":"3f79a3b5_d7c32557","updated":"2018-09-19 08:10:12.000000000","message":"That\u0027s already supported in the conductor locality feature, thanks jroll \\o/","commit_id":"4a524a8c7cca31ed4085ee2cde92061cea35b4bc"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be760ac871b220c0668bc8ad12e3e2a9565d7a6b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"              {"},{"line_number":96,"context_line":"                  \"hostname\": \"Compute01\","},{"line_number":97,"context_line":"                  \"conductor_group\": \"region1\","},{"line_number":98,"context_line":"                  \"alive\": true"},{"line_number":99,"context_line":"              },"},{"line_number":100,"context_line":"              {"},{"line_number":101,"context_line":"                  \"hostname\": \"Compute03\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_0950045f","line":98,"updated":"2018-10-22 10:11:01.000000000","message":"missing \"links\"","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"              {"},{"line_number":96,"context_line":"                  \"hostname\": \"Compute01\","},{"line_number":97,"context_line":"                  \"conductor_group\": \"region1\","},{"line_number":98,"context_line":"                  \"alive\": true"},{"line_number":99,"context_line":"              },"},{"line_number":100,"context_line":"              {"},{"line_number":101,"context_line":"                  \"hostname\": \"Compute03\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_72fdca07","line":98,"in_reply_to":"3f79a3b5_0950045f","updated":"2018-10-23 03:34:28.000000000","message":"Done","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be760ac871b220c0668bc8ad12e3e2a9565d7a6b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"          \"conductor_group\": \"region1\","},{"line_number":120,"context_line":"          \"alive\": true"},{"line_number":121,"context_line":"          \"drivers\": [\"ipmi\"],"},{"line_number":122,"context_line":"          \"last_seen\": \"2018-09-10 19:53:17\""},{"line_number":123,"context_line":"      }"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Change ``Node`` API object in the following way:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_294b80b2","line":122,"updated":"2018-10-22 10:11:01.000000000","message":"missing \"links\"","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":119,"context_line":"          \"conductor_group\": \"region1\","},{"line_number":120,"context_line":"          \"alive\": true"},{"line_number":121,"context_line":"          \"drivers\": [\"ipmi\"],"},{"line_number":122,"context_line":"          \"last_seen\": \"2018-09-10 19:53:17\""},{"line_number":123,"context_line":"      }"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Change ``Node`` API object in the following way:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_15fa4010","line":122,"in_reply_to":"3f79a3b5_294b80b2","updated":"2018-10-23 03:34:28.000000000","message":"Done","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be760ac871b220c0668bc8ad12e3e2a9565d7a6b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"* ``POST /v1/nodes``"},{"line_number":134,"context_line":"* ``GET /v1/nodes`` (when ``detail`` is set to true)"},{"line_number":135,"context_line":"* ``GET /v1/nodes/detail``"},{"line_number":136,"context_line":"* ``GET /v1/nodes/{node_ident}``"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Sample response data for ``GET /v1/nodes/{node_ident}`` would be::"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_c949acb8","line":136,"updated":"2018-10-22 10:11:01.000000000","message":"If we care about API discoverability, we should also provide\n\n GET /v1/nodes/{node_ident}/conductor\n\nI don\u0027t insist though :)","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":133,"context_line":"* ``POST /v1/nodes``"},{"line_number":134,"context_line":"* ``GET /v1/nodes`` (when ``detail`` is set to true)"},{"line_number":135,"context_line":"* ``GET /v1/nodes/detail``"},{"line_number":136,"context_line":"* ``GET /v1/nodes/{node_ident}``"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Sample response data for ``GET /v1/nodes/{node_ident}`` would be::"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_b5c6ec40","line":136,"in_reply_to":"3f79a3b5_c949acb8","updated":"2018-10-23 03:34:28.000000000","message":"Done","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7612bd44b1f5b494a256eeb4cbae5698370da2f0","unresolved":false,"context_lines":[{"line_number":241,"context_line":"-----------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Primary assignee:"},{"line_number":244,"context_line":"  kaifeng"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Work Items"},{"line_number":247,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_309d3858","line":244,"updated":"2018-10-19 16:33:07.000000000","message":"nit: Your email address should be here :)","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"db9146e41689b98fd27867ca6344717ba11fb9c3","unresolved":false,"context_lines":[{"line_number":241,"context_line":"-----------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Primary assignee:"},{"line_number":244,"context_line":"  kaifeng"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Work Items"},{"line_number":247,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_d2b29e96","line":244,"in_reply_to":"3f79a3b5_309d3858","updated":"2018-10-23 03:34:28.000000000","message":"Done","commit_id":"9b1aaea04a5484f944241de0b96e7080739f91e1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ed503a4260afa67f7ddb097787ca84a4dca9caa5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"* GET /v1/conductors"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  * Get the list of conductors known by ironic"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  * Client with earlier microversion before this feature implemented will"},{"line_number":89,"context_line":"    receive 404. For a normal request, 200 is returned."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_db1ab969","line":87,"updated":"2018-11-20 16:58:40.000000000","message":"we need a \"detail\" argument to return full records in the listing (not blocking the spec, just note for the implementation)","commit_id":"5487f20f43c29e1058a3ddfdf14489da86222525"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"424a9af1262be9a13f7838d46f1942f55b679b09","unresolved":false,"context_lines":[{"line_number":84,"context_line":"* GET /v1/conductors"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  * Get the list of conductors known by ironic"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  * Client with earlier microversion before this feature implemented will"},{"line_number":89,"context_line":"    receive 404. For a normal request, 200 is returned."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_af33f411","line":87,"in_reply_to":"3f79a3b5_db1ab969","updated":"2018-11-21 01:16:17.000000000","message":"I think it\u0027s already a full collection of records, so we want to hide some of them unless detail is specified? anyway we can discuss that in code patches.","commit_id":"5487f20f43c29e1058a3ddfdf14489da86222525"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ed503a4260afa67f7ddb097787ca84a4dca9caa5","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Expose the conductor field in command:"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"* ``openstack baremetal node list --detail``"},{"line_number":212,"context_line":"* ``openstack baremetal node show \u003cnode\u003e``"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Support node querying by conductor hostname:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_fb1d3561","line":211,"updated":"2018-11-20 16:58:40.000000000","message":"nit: I think it\u0027s called --long","commit_id":"5487f20f43c29e1058a3ddfdf14489da86222525"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"424a9af1262be9a13f7838d46f1942f55b679b09","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Expose the conductor field in command:"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"* ``openstack baremetal node list --detail``"},{"line_number":212,"context_line":"* ``openstack baremetal node show \u003cnode\u003e``"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Support node querying by conductor hostname:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_ef448c78","line":211,"in_reply_to":"3f79a3b5_fb1d3561","updated":"2018-11-21 01:16:17.000000000","message":"Ah yes, detail is used by the old cli..","commit_id":"5487f20f43c29e1058a3ddfdf14489da86222525"}],"specs/approved/node-conductor-mapping.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aaee24a21d1c1f43ad63fe501e488a9e37331eba","unresolved":false,"context_lines":[{"line_number":78,"context_line":"          \"conductors\": ["},{"line_number":79,"context_line":"              {"},{"line_number":80,"context_line":"                  \"hostname\": \"Compute01\","},{"line_number":81,"context_line":"                  \"drivers\": [\"ipmi\"],"},{"line_number":82,"context_line":"              },"},{"line_number":83,"context_line":"              {"},{"line_number":84,"context_line":"                  \"hostname\": \"Compute03\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_17253209","line":81,"updated":"2018-08-23 13:37:43.000000000","message":"nit: since driver is a first class entity, we may need a link to it:\n\n \"drivers\": [\n     {\"name\": \"ipmi\", \"links\": [{\"rel\": \"self\", \"href\": \".../v1/drivers/ipmi\"}]},\n ]\n\nalthough node.hardware_type is not a link, sooo... we\u0027re not very good at it :( maybe this is fine.","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"11113548da7ee46e667f399be21ed19a5873c880","unresolved":false,"context_lines":[{"line_number":78,"context_line":"          \"conductors\": ["},{"line_number":79,"context_line":"              {"},{"line_number":80,"context_line":"                  \"hostname\": \"Compute01\","},{"line_number":81,"context_line":"                  \"drivers\": [\"ipmi\"],"},{"line_number":82,"context_line":"              },"},{"line_number":83,"context_line":"              {"},{"line_number":84,"context_line":"                  \"hostname\": \"Compute03\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_4d52cc6a","line":81,"in_reply_to":"3f79a3b5_17253209","updated":"2018-09-11 08:36:22.000000000","message":"The \"links\" is use for endpoint discovery right? I guess it\u0027s fine to live without it, since the conductor information is mainly used for diagnosis.\nIf we do have this guideline on api, I\u0027m fine to add that.","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aaee24a21d1c1f43ad63fe501e488a9e37331eba","unresolved":false,"context_lines":[{"line_number":102,"context_line":"          \"nodes\": ["},{"line_number":103,"context_line":"                     \"b2ab7dbe-aeb6-4c13-96e5-a411e552ee44\","},{"line_number":104,"context_line":"                     \"60ad8d54-5937-47be-9a81-9255bc0b836c\""},{"line_number":105,"context_line":"                   ]"},{"line_number":106,"context_line":"      }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Change API object ``Node`` in a following way:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_b71d5ebf","line":105,"updated":"2018-08-23 13:37:43.000000000","message":"I\u0027d prefer to move nodes into /v1/conductors/{hostname}/nodes, and return the same fields as in /v1/nodes (without detail). Or maybe just /v1/nodes/?conductor\u003d{hostname}? Actually, it\u0027s even better, because we expose the conductor field on nodes, so it feels natural to be able to filter by it.","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"11113548da7ee46e667f399be21ed19a5873c880","unresolved":false,"context_lines":[{"line_number":102,"context_line":"          \"nodes\": ["},{"line_number":103,"context_line":"                     \"b2ab7dbe-aeb6-4c13-96e5-a411e552ee44\","},{"line_number":104,"context_line":"                     \"60ad8d54-5937-47be-9a81-9255bc0b836c\""},{"line_number":105,"context_line":"                   ]"},{"line_number":106,"context_line":"      }"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Change API object ``Node`` in a following way:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_30e00327","line":105,"in_reply_to":"3f79a3b5_b71d5ebf","updated":"2018-09-11 08:36:22.000000000","message":"The latter approach sounds good, but it conflicts with the plan to use conductor_affinity, which needs time to be synced with the real mapping.\nThere is no db support for hashring, this query key will need special handling.\n\nI was on the crossroad of choosing data source, hashring or conductor_affinity? It seems make more sense to use conductor_affinity, as this is the de-facto conductor for the node. But it seems conductor_affinity is only updated during node deployment.\n\nAnyway, I\u0027ll take your suggestion in, we then see if there is any problem.","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aaee24a21d1c1f43ad63fe501e488a9e37331eba","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Change API object ``Node`` in a following way:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Add a new attribute ``conductor`` to store hostname of associated conductor."},{"line_number":111,"context_line":"* Retrieve and assign the conductor hostname in ``Node.convert_with_links``."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"The hostname of conductor will be returned in these endpoints:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_d71a5ac4","line":110,"updated":"2018-08-23 13:37:43.000000000","message":"read-only, I guess?","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"11113548da7ee46e667f399be21ed19a5873c880","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Change API object ``Node`` in a following way:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Add a new attribute ``conductor`` to store hostname of associated conductor."},{"line_number":111,"context_line":"* Retrieve and assign the conductor hostname in ``Node.convert_with_links``."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"The hostname of conductor will be returned in these endpoints:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_2dfc30b4","line":110,"in_reply_to":"3f79a3b5_d71a5ac4","updated":"2018-09-11 08:36:22.000000000","message":"yes, it\u0027s read-only","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aaee24a21d1c1f43ad63fe501e488a9e37331eba","unresolved":false,"context_lines":[{"line_number":113,"context_line":"The hostname of conductor will be returned in these endpoints:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* ``POST /v1/nodes``"},{"line_number":116,"context_line":"* ``GET /v1/nodes``"},{"line_number":117,"context_line":"* ``GET /v1/nodes/detail``"},{"line_number":118,"context_line":"* ``GET /v1/nodes/{node_ident}``"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_777906fa","line":116,"updated":"2018-08-23 13:37:43.000000000","message":"do we need it in this summary output? I think it\u0027s not that important, given that we only introduce it now :) maybe output it only in detail (and with \"fields\" including it)?","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"11113548da7ee46e667f399be21ed19a5873c880","unresolved":false,"context_lines":[{"line_number":113,"context_line":"The hostname of conductor will be returned in these endpoints:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* ``POST /v1/nodes``"},{"line_number":116,"context_line":"* ``GET /v1/nodes``"},{"line_number":117,"context_line":"* ``GET /v1/nodes/detail``"},{"line_number":118,"context_line":"* ``GET /v1/nodes/{node_ident}``"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_8de304d9","line":116,"in_reply_to":"3f79a3b5_777906fa","updated":"2018-09-11 08:36:22.000000000","message":"yeah, that\u0027s not an important field, I\u0027m just fuzzy at that time (maybe still..).\nthe interesting thing is I found /v1/nodes supports detail now, introduced by https://review.openstack.org/#/c/431497, looks like I make things right by mistake \\o/","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aaee24a21d1c1f43ad63fe501e488a9e37331eba","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Expose the conductor field in command:"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"* ``openstack baremetal node show \u003cnode\u003e``"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"RPC API impact"},{"line_number":161,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_977e22e2","line":158,"updated":"2018-08-23 13:37:43.000000000","message":"It seems like with the new API you can also implement\n\n openstack baremetal node list --conductor {hostname}","commit_id":"d52d457033caab09592d8d5571af0b20590e1fed"}]}
