)]}'
{"ironic/api/controllers/v1/versions.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9fc43e1ea0b80be675ab2a7be4eba413a048d862","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Here goes a short log of changes in every version."},{"line_number":20,"context_line":"# Refer to doc/source/webapi/v1.rst for a detailed explanation of what"},{"line_number":21,"context_line":"# each version contains, and don\u0027t forget to update it when introducing"},{"line_number":22,"context_line":"# a new version."},{"line_number":23,"context_line":"#"},{"line_number":24,"context_line":"# v1.0: corresponds to Juno API, not supported since Kilo"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_a9ae377f","line":21,"updated":"2015-09-10 00:07:38.000000000","message":"Need to update doc/source/webapi/v1.rst as well","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9fc43e1ea0b80be675ab2a7be4eba413a048d862","unresolved":false,"context_lines":[{"line_number":41,"context_line":"# v1.10: Logical node names support RFC 3986 unreserved characters"},{"line_number":42,"context_line":"# v1.11: Nodes appear in ENROLL state by default"},{"line_number":43,"context_line":"# v1.12: Add support for RAID"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"MINOR_0_JUNO \u003d 0"},{"line_number":46,"context_line":"MINOR_1_INITIAL_VERSION \u003d 1"},{"line_number":47,"context_line":"MINOR_2_AVAILABLE_STATE \u003d 2"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_89c49341","line":44,"updated":"2015-09-10 00:07:38.000000000","message":"I think we tend to add a comment here too.","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"23c6b05ec4d7ac52c1154ae678f9ac283a821d7c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"# v1.10: Logical node names support RFC 3986 unreserved characters"},{"line_number":42,"context_line":"# v1.11: Nodes appear in ENROLL state by default"},{"line_number":43,"context_line":"# v1.12: Add support for RAID"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"MINOR_0_JUNO \u003d 0"},{"line_number":46,"context_line":"MINOR_1_INITIAL_VERSION \u003d 1"},{"line_number":47,"context_line":"MINOR_2_AVAILABLE_STATE \u003d 2"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_0ee1169b","line":44,"in_reply_to":"da20952f_89c49341","updated":"2015-09-11 19:02:40.000000000","message":"Done","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"2bcbe3d0d879c794a1dd363cc601a87e7e0cc8dd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"BASE_VERSION \u003d 1"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Here goes a short log of changes in every version."},{"line_number":20,"context_line":"# Refer to doc/source/webapi/v1.rst for a detailed explanation of what"},{"line_number":21,"context_line":"# each version contains, and don\u0027t forget to update it when introducing"},{"line_number":22,"context_line":"# a new version."},{"line_number":23,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_dc440b4b","line":20,"updated":"2015-09-17 21:28:39.000000000","message":"Please update doc/source/webapi/v1.rst as mentioned.","commit_id":"f976ae82c747401cd4aed7008943e541746518af"}],"ironic/common/states.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9fc43e1ea0b80be675ab2a7be4eba413a048d862","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"UPDATE_ALLOWED_STATES \u003d (DEPLOYFAIL, INSPECTING, INSPECTFAIL, CLEANFAIL, ERROR,"},{"line_number":187,"context_line":"                         VERIFYING)"},{"line_number":188,"context_line":"\"\"\"Transitional states in which we allow updating a node.\"\"\""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"DELETE_ALLOWED_STATES \u003d (AVAILABLE, NOSTATE, MANAGEABLE, ENROLL)"},{"line_number":191,"context_line":"\"\"\"States in which node deletion is allowed.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_69d01ff8","line":188,"updated":"2015-09-10 00:07:38.000000000","message":"Do we add ZAPFAIL to this list?","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"23c6b05ec4d7ac52c1154ae678f9ac283a821d7c","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"UPDATE_ALLOWED_STATES \u003d (DEPLOYFAIL, INSPECTING, INSPECTFAIL, CLEANFAIL, ERROR,"},{"line_number":187,"context_line":"                         VERIFYING)"},{"line_number":188,"context_line":"\"\"\"Transitional states in which we allow updating a node.\"\"\""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"DELETE_ALLOWED_STATES \u003d (AVAILABLE, NOSTATE, MANAGEABLE, ENROLL)"},{"line_number":191,"context_line":"\"\"\"States in which node deletion is allowed.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_2ef5fa4f","line":188,"in_reply_to":"da20952f_69d01ff8","updated":"2015-09-11 19:02:40.000000000","message":"Done","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9fc43e1ea0b80be675ab2a7be4eba413a048d862","unresolved":false,"context_lines":[{"line_number":356,"context_line":""},{"line_number":357,"context_line":"# Verification can fail with setting last_error and rolling back to ENROLL"},{"line_number":358,"context_line":"machine.add_transition(VERIFYING, ENROLL, \u0027fail\u0027)"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"# If zapping fails, wait for operator intervention"},{"line_number":361,"context_line":"machine.add_transition(ZAPPING, ZAPFAIL, \u0027fail\u0027)"},{"line_number":362,"context_line":"machine.add_transition(ZAPWAIT, ZAPFAIL, \u0027fail\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_099723ec","line":359,"updated":"2015-09-10 00:07:38.000000000","message":"looks like you\u0027re missing add_transition(zapping, manageable, \u0027done\u0027)","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"23c6b05ec4d7ac52c1154ae678f9ac283a821d7c","unresolved":false,"context_lines":[{"line_number":356,"context_line":""},{"line_number":357,"context_line":"# Verification can fail with setting last_error and rolling back to ENROLL"},{"line_number":358,"context_line":"machine.add_transition(VERIFYING, ENROLL, \u0027fail\u0027)"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"# If zapping fails, wait for operator intervention"},{"line_number":361,"context_line":"machine.add_transition(ZAPPING, ZAPFAIL, \u0027fail\u0027)"},{"line_number":362,"context_line":"machine.add_transition(ZAPWAIT, ZAPFAIL, \u0027fail\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_ce947ee9","line":359,"in_reply_to":"da20952f_099723ec","updated":"2015-09-11 19:02:40.000000000","message":"Ahh, that\u0027s kind of an important one, huh?","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"61821f660724388172c96a043125a0d188f4aec7","unresolved":false,"context_lines":[{"line_number":366,"context_line":"machine.add_transition(ZAPWAIT, ZAPPING, \u0027resume\u0027)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"# An operator may want to move a ZAPFAIL node back to MANAGEABLE, if the"},{"line_number":369,"context_line":"# zapping is not to be retried."},{"line_number":370,"context_line":"machine.add_transition(ZAPFAIL, MANAGEABLE, \u0027manage\u0027)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"# From MANAGEABLE, a node may be zapped"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_e6de5ed9","line":369,"updated":"2015-09-11 10:37:19.000000000","message":"If it can be retried, then zapfail -\u003e zapping should be added too.","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"23c6b05ec4d7ac52c1154ae678f9ac283a821d7c","unresolved":false,"context_lines":[{"line_number":366,"context_line":"machine.add_transition(ZAPWAIT, ZAPPING, \u0027resume\u0027)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"# An operator may want to move a ZAPFAIL node back to MANAGEABLE, if the"},{"line_number":369,"context_line":"# zapping is not to be retried."},{"line_number":370,"context_line":"machine.add_transition(ZAPFAIL, MANAGEABLE, \u0027manage\u0027)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"# From MANAGEABLE, a node may be zapped"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_6ead3230","line":369,"in_reply_to":"da20952f_e6de5ed9","updated":"2015-09-11 19:02:40.000000000","message":"Done","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9fc43e1ea0b80be675ab2a7be4eba413a048d862","unresolved":false,"context_lines":[{"line_number":370,"context_line":"machine.add_transition(ZAPFAIL, MANAGEABLE, \u0027manage\u0027)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"# From MANAGEABLE, a node may be zapped"},{"line_number":373,"context_line":"machine.add_transition(MANAGEABLE, ZAPPING, \u0027zap\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_69f7bf8c","line":373,"updated":"2015-09-10 00:07:38.000000000","message":"Maybe a nit, but I\u0027d like this to be the first transition of the zap* transitions.\n\nAnd then the wait-related ones.\n\nAnd then the fail-related ones.","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"23c6b05ec4d7ac52c1154ae678f9ac283a821d7c","unresolved":false,"context_lines":[{"line_number":370,"context_line":"machine.add_transition(ZAPFAIL, MANAGEABLE, \u0027manage\u0027)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"# From MANAGEABLE, a node may be zapped"},{"line_number":373,"context_line":"machine.add_transition(MANAGEABLE, ZAPPING, \u0027zap\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_ee670223","line":373,"in_reply_to":"da20952f_69f7bf8c","updated":"2015-09-11 19:02:40.000000000","message":"Done","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"85d78aae592579d0ba2762f124a46d551753033f","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"ZAPPING \u003d \u0027zapping\u0027"},{"line_number":148,"context_line":"\"\"\" Node is performing operator-initiated management tasks (zap steps)\"\"\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"ZAPWAIT \u003d \u0027zap wait\u0027"},{"line_number":151,"context_line":"\"\"\" Node is waiting for a zap step to be finished."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_7369378b","line":148,"updated":"2015-09-13 16:59:44.000000000","message":"nit: period at the end of this docstring would be good for consistency","commit_id":"fe32495a345bda19d54e55f5b5d6a55e2db8dba5"}],"ironic/objects/node.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9fc43e1ea0b80be675ab2a7be4eba413a048d862","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    # Version 1.11: Add clean_step"},{"line_number":39,"context_line":"    # Version 1.12: Add raid_config and target_raid_config"},{"line_number":40,"context_line":"    # Version 1.13: Add touch_provisioning()"},{"line_number":41,"context_line":"    # Version 1.14: Add zap_step"},{"line_number":42,"context_line":"    VERSION \u003d \u00271.14\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    dbapi \u003d db_api.get_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_891fb36f","line":41,"updated":"2015-09-10 00:07:38.000000000","message":"I don\u0027t see why we can\u0027t use clean_step again. Is it just a question of possible confusion? It is confusing anyway, cuz a zap step is/can be a clean_step, blah blah.\n\nI really hate having new fields that are only used as \u0027status\u0027 things during an operation.","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"39f7598a70ded9fc1f4227fe8160b76450456374","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    # Version 1.11: Add clean_step"},{"line_number":39,"context_line":"    # Version 1.12: Add raid_config and target_raid_config"},{"line_number":40,"context_line":"    # Version 1.13: Add touch_provisioning()"},{"line_number":41,"context_line":"    # Version 1.14: Add zap_step"},{"line_number":42,"context_line":"    VERSION \u003d \u00271.14\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    dbapi \u003d db_api.get_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_e0919847","line":41,"updated":"2015-09-10 08:19:13.000000000","message":"I\u0027m a bit uncertain on this one. On one hand, cleaning and zapping cannot run in parallel, so it makes sense to reuse it. On another hand, users are not required to know that zapping and cleaning are implemented the same way, so it might be confusing to start \"zap\", but see \"clean_step\". So I\u0027m more inclined to leave a new field.","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"23c6b05ec4d7ac52c1154ae678f9ac283a821d7c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    # Version 1.11: Add clean_step"},{"line_number":39,"context_line":"    # Version 1.12: Add raid_config and target_raid_config"},{"line_number":40,"context_line":"    # Version 1.13: Add touch_provisioning()"},{"line_number":41,"context_line":"    # Version 1.14: Add zap_step"},{"line_number":42,"context_line":"    VERSION \u003d \u00271.14\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    dbapi \u003d db_api.get_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_6e5bf254","line":41,"in_reply_to":"da20952f_881a287b","updated":"2015-09-11 19:02:40.000000000","message":"Echoing a bit of what we talked about in IRC yesterday:\n\nzap_step is the current zap step being executed, and the list of user-supplied steps is in driver_internal_info[\u0027zap_steps\u0027]. This should reduce at least a tiny bit of the confusion between zapping and cleaning. It also means we can reuse all the cleaning code for zapping. I\u0027m opening to reorganizing both in the future (node.clean_steps and node.zap_steps maybe).","commit_id":"931325090a73f070a45270f07ab433110bf55e56"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8dc4e567ba05dbffbe38e7cd9dddd3de4c5bfd74","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    # Version 1.11: Add clean_step"},{"line_number":39,"context_line":"    # Version 1.12: Add raid_config and target_raid_config"},{"line_number":40,"context_line":"    # Version 1.13: Add touch_provisioning()"},{"line_number":41,"context_line":"    # Version 1.14: Add zap_step"},{"line_number":42,"context_line":"    VERSION \u003d \u00271.14\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    dbapi \u003d db_api.get_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_881a287b","line":41,"in_reply_to":"da20952f_e0919847","updated":"2015-09-10 19:54:16.000000000","message":"except that we are calling zap steps, clean steps. I think. Or maybe only internally. I should have forced folks to be more clear on \u0027zap\u0027 and \u0027clean\u0027!\n\nI\u0027m not happy to have zap step, but we\u0027ve probably already got precedent for that blah blah and it was probably in the approved spec. Just grumbling, that\u0027s all.\n\nWhere do we store the zap steps that the user specified? Is zap_step the \"current zap step\"? ie, the zap step being performed right now?","commit_id":"931325090a73f070a45270f07ab433110bf55e56"}]}
