)]}'
{"ironic_inspector/common/ironic.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"47d277fc938be71194c3487b4407ece5f37dc12a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"else:"},{"line_number":35,"context_line":"    states \u003d [\u0027enroll\u0027, \u0027manageable\u0027, \u0027inspecting\u0027, \u0027inspect wait\u0027,"},{"line_number":36,"context_line":"              \u0027inspect failed\u0027, \u0027active\u0027, \u0027rescuing\u0027, \u0027rescue\u0027,"},{"line_number":37,"context_line":"              \u0027deleting\u0027, \u0027cleaning\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"VALID_STATES \u003d frozenset(states)"},{"line_number":40,"context_line":"# 1.38 is the latest API version in the Queens release series, 10.1.0."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_251d3bbd","line":37,"updated":"2019-06-18 06:38:30.000000000","message":"Yeah, I don\u0027t think we should update nodes in *ING states (except for INSPECTING - for historical reasons)","commit_id":"d3b30dc87ba9af63e50092669041500ae8a76171"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"ec5d7e80b36225143a653984cbea51134c228b9f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"else:"},{"line_number":35,"context_line":"    states \u003d [\u0027enroll\u0027, \u0027manageable\u0027, \u0027inspecting\u0027, \u0027inspect wait\u0027,"},{"line_number":36,"context_line":"              \u0027inspect failed\u0027, \u0027active\u0027, \u0027rescuing\u0027, \u0027rescue\u0027,"},{"line_number":37,"context_line":"              \u0027deleting\u0027, \u0027cleaning\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"VALID_STATES \u003d frozenset(states)"},{"line_number":40,"context_line":"# 1.38 is the latest API version in the Queens release series, 10.1.0."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_b33416fd","line":37,"updated":"2019-06-18 01:43:45.000000000","message":"some states are not in the update allowed states from ironic side..","commit_id":"d3b30dc87ba9af63e50092669041500ae8a76171"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"86012280e7d2aa2784ea4bd0b6e2bbc3a0e218a6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"else:"},{"line_number":35,"context_line":"    states \u003d [\u0027enroll\u0027, \u0027manageable\u0027, \u0027inspecting\u0027, \u0027inspect wait\u0027,"},{"line_number":36,"context_line":"              \u0027inspect failed\u0027, \u0027active\u0027, \u0027rescuing\u0027, \u0027rescue\u0027,"},{"line_number":37,"context_line":"              \u0027deleting\u0027, \u0027cleaning\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"VALID_STATES \u003d frozenset(states)"},{"line_number":40,"context_line":"# 1.38 is the latest API version in the Queens release series, 10.1.0."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_26069c22","line":37,"in_reply_to":"9fb8cfa7_251d3bbd","updated":"2019-06-18 14:05:02.000000000","message":"so no casually updating the data when IPA fires up for any reason? :)","commit_id":"d3b30dc87ba9af63e50092669041500ae8a76171"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"8638efadeca7d8324b74ff3ba3400d73c9394e26","unresolved":false,"context_lines":[{"line_number":30,"context_line":"VALID_STATES \u003d frozenset([\u0027enroll\u0027, \u0027manageable\u0027, \u0027inspecting\u0027, \u0027inspect wait\u0027,"},{"line_number":31,"context_line":"                          \u0027inspect failed\u0027])"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# States where an instance is deployed, and and admin may be doing something."},{"line_number":34,"context_line":"VALID_ACTIVE_STATES \u003d frozenset([\u0027active\u0027, \u0027rescue\u0027])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# 1.38 is the latest API version in the Queens release series, 10.1.0."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_ec886323","line":33,"range":{"start_line":33,"start_character":44,"end_line":33,"end_character":47},"updated":"2019-06-18 15:13:16.000000000","message":"nit: an (or a sneaky)","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bddd52906ee22880f52e77da177ac206d5434a6f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"VALID_STATES \u003d frozenset([\u0027enroll\u0027, \u0027manageable\u0027, \u0027inspecting\u0027, \u0027inspect wait\u0027,"},{"line_number":31,"context_line":"                          \u0027inspect failed\u0027])"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# States where an instance is deployed, and and admin may be doing something."},{"line_number":34,"context_line":"VALID_ACTIVE_STATES \u003d frozenset([\u0027active\u0027, \u0027rescue\u0027])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# 1.38 is the latest API version in the Queens release series, 10.1.0."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_4fcb85a4","line":33,"range":{"start_line":33,"start_character":44,"end_line":33,"end_character":47},"in_reply_to":"9fb8cfa7_ec886323","updated":"2019-07-01 12:21:36.000000000","message":"Done","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"8638efadeca7d8324b74ff3ba3400d73c9394e26","unresolved":false,"context_lines":[{"line_number":156,"context_line":"def check_provision_state(node):"},{"line_number":157,"context_line":"    \"\"\"Sanity checks the provision state of the node."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    :returns: None if no action is to be taken, True if the"},{"line_number":160,"context_line":"              power node state should not be modified."},{"line_number":161,"context_line":"    :raises: Error on an invalid state being detected."},{"line_number":162,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_0c8e172e","line":159,"updated":"2019-06-18 15:13:16.000000000","message":"add :param node ?","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bddd52906ee22880f52e77da177ac206d5434a6f","unresolved":false,"context_lines":[{"line_number":156,"context_line":"def check_provision_state(node):"},{"line_number":157,"context_line":"    \"\"\"Sanity checks the provision state of the node."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    :returns: None if no action is to be taken, True if the"},{"line_number":160,"context_line":"              power node state should not be modified."},{"line_number":161,"context_line":"    :raises: Error on an invalid state being detected."},{"line_number":162,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_afd48148","line":159,"in_reply_to":"9fb8cfa7_0c8e172e","updated":"2019-07-01 12:21:36.000000000","message":"Done","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"e8960fdf0e2b4df298c15b37dde0f499ba46abce","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if state not in VALID_STATES:"},{"line_number":165,"context_line":"        if (CONF.processing.permit_active_introspection"},{"line_number":166,"context_line":"                and state in VALID_ACTIVE_STATES):"},{"line_number":167,"context_line":"            # Hey, we can leave the power on! Lets return"},{"line_number":168,"context_line":"            # True to let the caller know."},{"line_number":169,"context_line":"            return True"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_9c7b958a","line":167,"range":{"start_line":167,"start_character":46,"end_line":167,"end_character":51},"updated":"2019-06-26 10:16:57.000000000","message":"nit: Let\u0027s","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"}],"ironic_inspector/conf/processing.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"47d277fc938be71194c3487b4407ece5f37dc12a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                default\u003dFalse,"},{"line_number":100,"context_line":"                help\u003d_(\u0027Whether to process nodes that are in running states. \u0027"},{"line_number":101,"context_line":"                       \u0027It is advisable to set the \\\u0027power_off\\\u0027 option to \u0027"},{"line_number":102,"context_line":"                       \u0027False.\u0027)),"},{"line_number":103,"context_line":"]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_c5777f08","line":102,"updated":"2019-06-18 06:38:30.000000000","message":"I think we should detect this situation instead of making operators set power_off for every inspection","commit_id":"d3b30dc87ba9af63e50092669041500ae8a76171"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"86012280e7d2aa2784ea4bd0b6e2bbc3a0e218a6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                default\u003dFalse,"},{"line_number":100,"context_line":"                help\u003d_(\u0027Whether to process nodes that are in running states. \u0027"},{"line_number":101,"context_line":"                       \u0027It is advisable to set the \\\u0027power_off\\\u0027 option to \u0027"},{"line_number":102,"context_line":"                       \u0027False.\u0027)),"},{"line_number":103,"context_line":"]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_c90c713d","line":102,"in_reply_to":"9fb8cfa7_c5777f08","updated":"2019-06-18 14:05:02.000000000","message":"++ Agreed.","commit_id":"d3b30dc87ba9af63e50092669041500ae8a76171"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"8638efadeca7d8324b74ff3ba3400d73c9394e26","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                help\u003d_(\u0027Whether to power off a node after introspection.\u0027"},{"line_number":98,"context_line":"                       \u0027Nodes in active or rescue states which submit \u0027"},{"line_number":99,"context_line":"                       \u0027introspection data will be left on if the feature \u0027"},{"line_number":100,"context_line":"                       \u0027is enabled via the \\\u0027permit_active_introspection\\\u0027\u0027"},{"line_number":101,"context_line":"                       \u0027configuration option.\u0027)),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027permit_active_introspection\u0027,"},{"line_number":103,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_cc9c7f5f","line":100,"range":{"start_line":100,"start_character":74,"end_line":100,"end_character":75},"updated":"2019-06-18 15:13:16.000000000","message":"nit: missing blank space","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bddd52906ee22880f52e77da177ac206d5434a6f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                help\u003d_(\u0027Whether to power off a node after introspection.\u0027"},{"line_number":98,"context_line":"                       \u0027Nodes in active or rescue states which submit \u0027"},{"line_number":99,"context_line":"                       \u0027introspection data will be left on if the feature \u0027"},{"line_number":100,"context_line":"                       \u0027is enabled via the \\\u0027permit_active_introspection\\\u0027\u0027"},{"line_number":101,"context_line":"                       \u0027configuration option.\u0027)),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027permit_active_introspection\u0027,"},{"line_number":103,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_af39e1a3","line":100,"range":{"start_line":100,"start_character":74,"end_line":100,"end_character":75},"in_reply_to":"9fb8cfa7_cc9c7f5f","updated":"2019-07-01 12:21:36.000000000","message":"Done","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"}],"ironic_inspector/process.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a341987afdc07f77f61457568b553e30ae4d89d7","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    # determine how to handle power"},{"line_number":274,"context_line":"    if not keep_power_on:"},{"line_number":275,"context_line":"        keep_power_on \u003d CONF.processing.power_off"},{"line_number":276,"context_line":"    utils.executor().submit(_finish, node_info, ironic, introspection_data,"},{"line_number":277,"context_line":"                            power_off\u003dkeep_power_on)"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_1b45dd17","line":275,"updated":"2019-06-19 08:17:17.000000000","message":"mmmmm...","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bddd52906ee22880f52e77da177ac206d5434a6f","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    # determine how to handle power"},{"line_number":274,"context_line":"    if not keep_power_on:"},{"line_number":275,"context_line":"        keep_power_on \u003d CONF.processing.power_off"},{"line_number":276,"context_line":"    utils.executor().submit(_finish, node_info, ironic, introspection_data,"},{"line_number":277,"context_line":"                            power_off\u003dkeep_power_on)"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_0f4a6d26","line":275,"in_reply_to":"9fb8cfa7_1b45dd17","updated":"2019-07-01 12:21:36.000000000","message":"Yeah, I know its not great :)","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a341987afdc07f77f61457568b553e30ae4d89d7","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    if not keep_power_on:"},{"line_number":275,"context_line":"        keep_power_on \u003d CONF.processing.power_off"},{"line_number":276,"context_line":"    utils.executor().submit(_finish, node_info, ironic, introspection_data,"},{"line_number":277,"context_line":"                            power_off\u003dkeep_power_on)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    return resp"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_bb493133","line":277,"updated":"2019-06-19 08:17:17.000000000","message":"this is confusing.. did you mean \"power_off\u003dnot keep_power_on\"? Otherwise you set power_off\u003dTrue if check_provision_state returns True..","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bddd52906ee22880f52e77da177ac206d5434a6f","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    if not keep_power_on:"},{"line_number":275,"context_line":"        keep_power_on \u003d CONF.processing.power_off"},{"line_number":276,"context_line":"    utils.executor().submit(_finish, node_info, ironic, introspection_data,"},{"line_number":277,"context_line":"                            power_off\u003dkeep_power_on)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    return resp"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_ef4ef936","line":277,"in_reply_to":"9fb8cfa7_bb493133","updated":"2019-07-01 12:21:36.000000000","message":"Wow, yeah, your right. Doh! Made it a little less hacky.","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"}],"ironic_inspector/test/unit/test_process.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a341987afdc07f77f61457568b553e30ae4d89d7","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        post_hook_mock.assert_called_once_with(self.data, self.node_info)"},{"line_number":427,"context_line":"        finished_mock.assert_called_once_with(mock.ANY, istate.Events.finish)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    @mock.patch.object(example_plugin.ExampleProcessingHook, \u0027before_update\u0027)"},{"line_number":430,"context_line":"    @mock.patch.object(node_cache.NodeInfo, \u0027finished\u0027, autospec\u003dTrue)"},{"line_number":431,"context_line":"    def test_ok_node_active(self, finished_mock, post_hook_mock):"},{"line_number":432,"context_line":"        self.node.provision_state \u003d \u0027active\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_db466522","line":429,"updated":"2019-06-19 08:17:17.000000000","message":"nit: autospec\u003dTrue","commit_id":"b1831f5ff3361c4215b07e3a7999d562d83dafd6"}]}
