)]}'
{"ironicclient/osc/v1/baremetal_node.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"185702ecf1d8283b4ee4d236737a83d663669f47","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"            \u0027--protected-reason\u0027,"},{"line_number":1126,"context_line":"            metavar\u003d\u0027\u003cprotected_reason\u003e\u0027,"},{"line_number":1127,"context_line":"            help\u003d_(\u0027Set the reason of marking the node as protected\u0027),"},{"line_number":1128,"context_line":"        )"},{"line_number":1129,"context_line":"        parser.add_argument("},{"line_number":1130,"context_line":"            \u0027--target-raid-config\u0027,"},{"line_number":1131,"context_line":"            metavar\u003d\u0027\u003ctarget_raid_config\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_92ca946c","line":1128,"updated":"2018-11-26 15:21:44.000000000","message":"Should we automatically set protected if this is passed? Or raise an error if this is passed without --protected?","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2c4f61a168b0c3dedfcab440689b083322864ee8","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"            \u0027--protected-reason\u0027,"},{"line_number":1126,"context_line":"            metavar\u003d\u0027\u003cprotected_reason\u003e\u0027,"},{"line_number":1127,"context_line":"            help\u003d_(\u0027Set the reason of marking the node as protected\u0027),"},{"line_number":1128,"context_line":"        )"},{"line_number":1129,"context_line":"        parser.add_argument("},{"line_number":1130,"context_line":"            \u0027--target-raid-config\u0027,"},{"line_number":1131,"context_line":"            metavar\u003d\u0027\u003ctarget_raid_config\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_27ea52a0","line":1128,"in_reply_to":"3f79a3b5_92ca946c","updated":"2018-11-27 13:56:20.000000000","message":"Protected reason can be changed for nodes that are already protected.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"ce2bfaec2307ae48ece1f3102527a6c31c7d1475","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"        )"},{"line_number":1454,"context_line":"        parser.add_argument("},{"line_number":1455,"context_line":"            \"--protected-reason\","},{"line_number":1456,"context_line":"            action\u003d\"store_true\","},{"line_number":1457,"context_line":"            help\u003d_(\u0027Unset the protected reason (gets unset automatically when \u0027"},{"line_number":1458,"context_line":"                   \u0027protected is unset)\u0027),"},{"line_number":1459,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_62b491d4","line":1456,"range":{"start_line":1456,"start_character":12,"end_line":1456,"end_character":32},"updated":"2018-10-30 06:38:26.000000000","message":"I guess this is not required.\n\nAlso wonder if we really need this argument, since it is automatically cleared when protected is unset.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"149b6f6a6b748eae6560ad82421f6497ba1b59f5","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"        )"},{"line_number":1454,"context_line":"        parser.add_argument("},{"line_number":1455,"context_line":"            \"--protected-reason\","},{"line_number":1456,"context_line":"            action\u003d\"store_true\","},{"line_number":1457,"context_line":"            help\u003d_(\u0027Unset the protected reason (gets unset automatically when \u0027"},{"line_number":1458,"context_line":"                   \u0027protected is unset)\u0027),"},{"line_number":1459,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_88ed478f","line":1456,"range":{"start_line":1456,"start_character":12,"end_line":1456,"end_character":32},"in_reply_to":"3f79a3b5_62b491d4","updated":"2018-10-30 14:29:54.000000000","message":"It is required, otherwise it will take form of --protected \u003cvalue\u003e, which is not what we want. we want just --protected.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d44e88911189f9bc7b2928a8fc3db8c801ae83b7","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"        )"},{"line_number":1454,"context_line":"        parser.add_argument("},{"line_number":1455,"context_line":"            \"--protected-reason\","},{"line_number":1456,"context_line":"            action\u003d\"store_true\","},{"line_number":1457,"context_line":"            help\u003d_(\u0027Unset the protected reason (gets unset automatically when \u0027"},{"line_number":1458,"context_line":"                   \u0027protected is unset)\u0027),"},{"line_number":1459,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_8cc9cdac","line":1456,"range":{"start_line":1456,"start_character":12,"end_line":1456,"end_character":32},"in_reply_to":"3f79a3b5_88ed478f","updated":"2018-10-31 01:36:20.000000000","message":"Oh I get it, thanks!","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2f8e10863b6f40f1f0e79e19dc0ed141650af140","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"            \u0027--protected-reason\u0027,"},{"line_number":1126,"context_line":"            metavar\u003d\u0027\u003cprotected_reason\u003e\u0027,"},{"line_number":1127,"context_line":"            help\u003d_(\u0027Set the reason of marking the node as protected\u0027),"},{"line_number":1128,"context_line":"        )"},{"line_number":1129,"context_line":"        parser.add_argument("},{"line_number":1130,"context_line":"            \u0027--target-raid-config\u0027,"},{"line_number":1131,"context_line":"            metavar\u003d\u0027\u003ctarget_raid_config\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_f3b978ea","line":1128,"updated":"2018-11-27 11:56:27.000000000","message":"Same question as patch set 2:\n\n \u003e Should we automatically set protected if this is passed? Or raise\n \u003e an error if this is passed without --protected?","commit_id":"1c941eefe55c37ec9f89aa974773fec101e05a17"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"626c3ab9b32d558dc9ac7eeeb77b0ac1a63eb09a","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"            \u0027--protected-reason\u0027,"},{"line_number":1126,"context_line":"            metavar\u003d\u0027\u003cprotected_reason\u003e\u0027,"},{"line_number":1127,"context_line":"            help\u003d_(\u0027Set the reason of marking the node as protected\u0027),"},{"line_number":1128,"context_line":"        )"},{"line_number":1129,"context_line":"        parser.add_argument("},{"line_number":1130,"context_line":"            \u0027--target-raid-config\u0027,"},{"line_number":1131,"context_line":"            metavar\u003d\u0027\u003ctarget_raid_config\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3e88146a","line":1128,"in_reply_to":"3f79a3b5_3b2ca692","updated":"2018-11-27 14:41:39.000000000","message":"Aha, good point. :)","commit_id":"1c941eefe55c37ec9f89aa974773fec101e05a17"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2c4f61a168b0c3dedfcab440689b083322864ee8","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"            \u0027--protected-reason\u0027,"},{"line_number":1126,"context_line":"            metavar\u003d\u0027\u003cprotected_reason\u003e\u0027,"},{"line_number":1127,"context_line":"            help\u003d_(\u0027Set the reason of marking the node as protected\u0027),"},{"line_number":1128,"context_line":"        )"},{"line_number":1129,"context_line":"        parser.add_argument("},{"line_number":1130,"context_line":"            \u0027--target-raid-config\u0027,"},{"line_number":1131,"context_line":"            metavar\u003d\u0027\u003ctarget_raid_config\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3b2ca692","line":1128,"in_reply_to":"3f79a3b5_f3b978ea","updated":"2018-11-27 13:56:20.000000000","message":"Oh, TIL it helps to actually post the comments you typed :)\n\nProtected reason can be changed for nodes that are already protected. E.g. you made a typo.","commit_id":"1c941eefe55c37ec9f89aa974773fec101e05a17"}],"ironicclient/tests/unit/osc/v1/test_baremetal_node.py":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"ce2bfaec2307ae48ece1f3102527a6c31c7d1475","unresolved":false,"context_lines":[{"line_number":2855,"context_line":"            \u0027node_uuid\u0027,"},{"line_number":2856,"context_line":"            [{\u0027path\u0027: \u0027/protected_reason\u0027, \u0027op\u0027: \u0027remove\u0027}]"},{"line_number":2857,"context_line":"        )"},{"line_number":2858,"context_line":""},{"line_number":2859,"context_line":"    def test_baremetal_unset_extra(self):"},{"line_number":2860,"context_line":"        arglist \u003d ["},{"line_number":2861,"context_line":"            \u0027node_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_627571ff","line":2858,"updated":"2018-10-30 06:38:26.000000000","message":"Oops, protected_reason is a readonly field, why we support removing it alone?","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"149b6f6a6b748eae6560ad82421f6497ba1b59f5","unresolved":false,"context_lines":[{"line_number":2855,"context_line":"            \u0027node_uuid\u0027,"},{"line_number":2856,"context_line":"            [{\u0027path\u0027: \u0027/protected_reason\u0027, \u0027op\u0027: \u0027remove\u0027}]"},{"line_number":2857,"context_line":"        )"},{"line_number":2858,"context_line":""},{"line_number":2859,"context_line":"    def test_baremetal_unset_extra(self):"},{"line_number":2860,"context_line":"        arglist \u003d ["},{"line_number":2861,"context_line":"            \u0027node_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_889227fb","line":2858,"in_reply_to":"3f79a3b5_627571ff","updated":"2018-10-30 14:29:54.000000000","message":"Why do you think it\u0027s readonly? It can be set/unset separately from protected, as long as protected is True.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d44e88911189f9bc7b2928a8fc3db8c801ae83b7","unresolved":false,"context_lines":[{"line_number":2855,"context_line":"            \u0027node_uuid\u0027,"},{"line_number":2856,"context_line":"            [{\u0027path\u0027: \u0027/protected_reason\u0027, \u0027op\u0027: \u0027remove\u0027}]"},{"line_number":2857,"context_line":"        )"},{"line_number":2858,"context_line":""},{"line_number":2859,"context_line":"    def test_baremetal_unset_extra(self):"},{"line_number":2860,"context_line":"        arglist \u003d ["},{"line_number":2861,"context_line":"            \u0027node_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_acfe096b","line":2858,"in_reply_to":"3f79a3b5_889227fb","updated":"2018-10-31 01:36:20.000000000","message":"O_o probably I messed it up with wsme readonly, just tested maintenance and maintenance_reason, yeah they work as you said, so from analogy I think you are right on this.\n\nI am wondering when does the wsme readonly take effect?\nIt seems posting a node object to API from a client will be guarded by this readonly, while patch doesn\u0027t fall into this range, if I understand it correctly.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"}],"ironicclient/tests/unit/v1/test_node_shell.py":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3171aef0ff611e927a6f95c4084a9aab1acb7978","unresolved":false,"context_lines":[{"line_number":65,"context_line":"               \u0027vendor_interface\u0027,"},{"line_number":66,"context_line":"               \u0027power_state\u0027,"},{"line_number":67,"context_line":"               \u0027properties\u0027,"},{"line_number":68,"context_line":"               \u0027protected\u0027,"},{"line_number":69,"context_line":"               \u0027provision_state\u0027,"},{"line_number":70,"context_line":"               \u0027provision_updated_at\u0027,"},{"line_number":71,"context_line":"               \u0027reservation\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_d8f94d1c","line":68,"updated":"2018-11-06 02:23:47.000000000","message":"Further questions, are we still adding code to support classic cli? I suppose we didn\u0027t accept changes after deprecation.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"cb06e29237aa185f45d75b2bf345c2b6f8aafdd1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"               \u0027vendor_interface\u0027,"},{"line_number":66,"context_line":"               \u0027power_state\u0027,"},{"line_number":67,"context_line":"               \u0027properties\u0027,"},{"line_number":68,"context_line":"               \u0027protected\u0027,"},{"line_number":69,"context_line":"               \u0027provision_state\u0027,"},{"line_number":70,"context_line":"               \u0027provision_updated_at\u0027,"},{"line_number":71,"context_line":"               \u0027reservation\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_d34c8bca","line":68,"in_reply_to":"3f79a3b5_d8f94d1c","updated":"2018-11-08 16:21:58.000000000","message":"Good question. All recent additions (conductor_group, automated_clean) are here, so I added mine as well.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"}],"ironicclient/v1/resource_fields.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"185702ecf1d8283b4ee4d236737a83d663669f47","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        \u0027node_uuid\u0027: \u0027Node UUID\u0027,"},{"line_number":90,"context_line":"        \u0027power_state\u0027: \u0027Power State\u0027,"},{"line_number":91,"context_line":"        \u0027properties\u0027: \u0027Properties\u0027,"},{"line_number":92,"context_line":"        \u0027protected\u0027: \u0027Protected\u0027,"},{"line_number":93,"context_line":"        \u0027provision_state\u0027: \u0027Provisioning State\u0027,"},{"line_number":94,"context_line":"        \u0027provision_updated_at\u0027: \u0027Provision Updated At\u0027,"},{"line_number":95,"context_line":"        \u0027raid_config\u0027: \u0027Current RAID configuration\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_9278542c","line":92,"updated":"2018-11-26 15:21:44.000000000","message":"Missing protected_reason here.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2c4f61a168b0c3dedfcab440689b083322864ee8","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        \u0027node_uuid\u0027: \u0027Node UUID\u0027,"},{"line_number":90,"context_line":"        \u0027power_state\u0027: \u0027Power State\u0027,"},{"line_number":91,"context_line":"        \u0027properties\u0027: \u0027Properties\u0027,"},{"line_number":92,"context_line":"        \u0027protected\u0027: \u0027Protected\u0027,"},{"line_number":93,"context_line":"        \u0027provision_state\u0027: \u0027Provisioning State\u0027,"},{"line_number":94,"context_line":"        \u0027provision_updated_at\u0027: \u0027Provision Updated At\u0027,"},{"line_number":95,"context_line":"        \u0027raid_config\u0027: \u0027Current RAID configuration\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e7253a17","line":92,"in_reply_to":"3f79a3b5_9278542c","updated":"2018-11-27 13:56:20.000000000","message":":(","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"185702ecf1d8283b4ee4d236737a83d663669f47","unresolved":false,"context_lines":[{"line_number":235,"context_line":"     \u0027power_interface\u0027,"},{"line_number":236,"context_line":"     \u0027power_state\u0027,"},{"line_number":237,"context_line":"     \u0027properties\u0027,"},{"line_number":238,"context_line":"     \u0027protected\u0027,"},{"line_number":239,"context_line":"     \u0027provision_updated_at\u0027,"},{"line_number":240,"context_line":"     \u0027provision_state\u0027,"},{"line_number":241,"context_line":"     \u0027raid_interface\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_f27d081d","line":238,"updated":"2018-11-26 15:21:44.000000000","message":"Missing protected_reason here.","commit_id":"c0b20a292397c76135d621caeb8938ab2983e04f"}]}
