)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"57ddc5a03aec5a5ef29431556fbd40ae7368f4ce","unresolved":false,"context_lines":[{"line_number":7,"context_line":"support multi-nodes input for node-set-provision-state"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"currently, node-set-provision-state command just support to set"},{"line_number":10,"context_line":"provision status for single node uuid as input, with this patch, we"},{"line_number":11,"context_line":"support multi-nodes operation for node-set-provision-state command, that"},{"line_number":12,"context_line":"will be easy for user to set provision status with single command"},{"line_number":13,"context_line":"for multi-nodes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9a8ffd7b_0fd9f3f2","line":10,"updated":"2015-12-03 14:18:20.000000000","message":"nit:s/input, with/input. With/","commit_id":"17ee027cc2eb97931d9f8b2cb9d75e34f46b9913"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"57ddc5a03aec5a5ef29431556fbd40ae7368f4ce","unresolved":false,"context_lines":[{"line_number":9,"context_line":"currently, node-set-provision-state command just support to set"},{"line_number":10,"context_line":"provision status for single node uuid as input, with this patch, we"},{"line_number":11,"context_line":"support multi-nodes operation for node-set-provision-state command, that"},{"line_number":12,"context_line":"will be easy for user to set provision status with single command"},{"line_number":13,"context_line":"for multi-nodes."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib68662f74d29fe8c6d7e89799aafaf64cfacd992"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9a8ffd7b_ef56ef5a","line":12,"updated":"2015-12-03 14:18:20.000000000","message":"nit: s/user/users/\nnit: s/with single command/with a single command/","commit_id":"17ee027cc2eb97931d9f8b2cb9d75e34f46b9913"}],"ironicclient/v1/node_shell.py":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"316e8d257f52abad0536c998e43187fb62fb08b9","unresolved":false,"context_lines":[{"line_number":378,"context_line":"@cliutils.arg(\u0027node\u0027,"},{"line_number":379,"context_line":"              metavar\u003d\u0027\u003cnode\u003e\u0027,"},{"line_number":380,"context_line":"              nargs\u003d\u0027+\u0027,"},{"line_number":381,"context_line":"              help\u003d\"Name or UUID of the node.\")"},{"line_number":382,"context_line":"@cliutils.arg("},{"line_number":383,"context_line":"    \u0027provision_state\u0027,"},{"line_number":384,"context_line":"    metavar\u003d\u0027\u003cprovision-state\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da85f559_82dd6416","line":381,"updated":"2015-11-09 09:37:36.000000000","message":"This help should indicate there are more than one node now","commit_id":"824ddde1f7c90b61ae3f2b090b8be004ccd524ab"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"316e8d257f52abad0536c998e43187fb62fb08b9","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        raise exceptions.CommandError(_(\u0027--config-drive is only valid when \u0027"},{"line_number":402,"context_line":"                                        \u0027setting provision state to \"active\"\u0027))"},{"line_number":403,"context_line":"    for n in args.node:"},{"line_number":404,"context_line":"        cc.node.set_provision_state(args.node, args.provision_state,"},{"line_number":405,"context_line":"                                    configdrive\u003dargs.config_drive)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da85f559_e29c706b","line":404,"updated":"2015-11-09 09:37:36.000000000","message":"hmm, the same issue of your another patch. Use \u0027n\u0027 instead of args.node in for loop.","commit_id":"824ddde1f7c90b61ae3f2b090b8be004ccd524ab"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7cfec7bae906f3fbf6b2056218255b885a60f6fb","unresolved":false,"context_lines":[{"line_number":402,"context_line":"                                        \u0027setting provision state to \"active\"\u0027))"},{"line_number":403,"context_line":"    for node in args.node:"},{"line_number":404,"context_line":"        cc.node.set_provision_state(node, args.provision_state,"},{"line_number":405,"context_line":"                                    configdrive\u003dargs.config_drive)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"@cliutils.arg(\u0027node\u0027, metavar\u003d\u0027\u003cnode\u003e\u0027, help\u003d\"Name or UUID of the node.\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_c364b1e6","line":405,"updated":"2015-12-04 18:01:58.000000000","message":"Interpreting this, it seems like the same config drive would be rolled out across all of the supplied machines.\n\nThat seems like it could create issues for users.  At a minimum, documentation update perhaps to set expectations?","commit_id":"17ee027cc2eb97931d9f8b2cb9d75e34f46b9913"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"cea17a115f28aa218cc353d119d7391fdf3d84a8","unresolved":false,"context_lines":[{"line_number":402,"context_line":"                                        \u0027setting provision state to \"active\"\u0027))"},{"line_number":403,"context_line":"    for node in args.node:"},{"line_number":404,"context_line":"        cc.node.set_provision_state(node, args.provision_state,"},{"line_number":405,"context_line":"                                    configdrive\u003dargs.config_drive)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"@cliutils.arg(\u0027node\u0027, metavar\u003d\u0027\u003cnode\u003e\u0027, help\u003d\"Name or UUID of the node.\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_371f48b8","line":405,"in_reply_to":"7a740942_c364b1e6","updated":"2015-12-09 07:23:20.000000000","message":"Agree with you, will commit the new patch to change document for such case, and another option, we can report the result here to show which node operation failed.","commit_id":"17ee027cc2eb97931d9f8b2cb9d75e34f46b9913"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"06ac7cce37b717394faef8ab0b7542c28c045247","unresolved":false,"context_lines":[{"line_number":378,"context_line":"@cliutils.arg(\u0027node\u0027,"},{"line_number":379,"context_line":"              metavar\u003d\u0027\u003cnode\u003e\u0027,"},{"line_number":380,"context_line":"              nargs\u003d\u0027+\u0027,"},{"line_number":381,"context_line":"              help\u003d\"One or more Name/UUID of the node(s).\")"},{"line_number":382,"context_line":"@cliutils.arg("},{"line_number":383,"context_line":"    \u0027provision_state\u0027,"},{"line_number":384,"context_line":"    metavar\u003d\u0027\u003cprovision-state\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a740942_9e1802d5","line":381,"updated":"2015-12-11 14:15:07.000000000","message":"I think this help string should be expanded upon to explicitly state that the same state and potentially configuration drive will be applied to all nodes.  Or Or the configuration drive and provision state help.  Either way, we to inform the user of the caveat.","commit_id":"e94886c96d3c85941cc24a70f3c619c4b8efba5a"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"1779f35e4497d4a3b478ef2a23753d284a7cb58f","unresolved":false,"context_lines":[{"line_number":378,"context_line":"@cliutils.arg(\u0027node\u0027,"},{"line_number":379,"context_line":"              metavar\u003d\u0027\u003cnode\u003e\u0027,"},{"line_number":380,"context_line":"              nargs\u003d\u0027+\u0027,"},{"line_number":381,"context_line":"              help\u003d\"One or more Name/UUID of the node(s).\")"},{"line_number":382,"context_line":"@cliutils.arg("},{"line_number":383,"context_line":"    \u0027provision_state\u0027,"},{"line_number":384,"context_line":"    metavar\u003d\u0027\u003cprovision-state\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a710552_014e1f96","line":381,"in_reply_to":"7a740942_9e1802d5","updated":"2015-12-16 05:47:43.000000000","message":"Good idea, Julia, will address.","commit_id":"e94886c96d3c85941cc24a70f3c619c4b8efba5a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"67abb8f3829da0566925dfe3f9eb1120f0671959","unresolved":false,"context_lines":[{"line_number":379,"context_line":"              metavar\u003d\u0027\u003cnode\u003e\u0027,"},{"line_number":380,"context_line":"              nargs\u003d\u0027+\u0027,"},{"line_number":381,"context_line":"              help\u003d\"One or more Name/UUID of the node(s).\""},{"line_number":382,"context_line":"                   \"NOTE: for multi-nodes, same arguments will be applied \""},{"line_number":383,"context_line":"                   \"for each node.\")"},{"line_number":384,"context_line":"@cliutils.arg("},{"line_number":385,"context_line":"    \u0027provision_state\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a7e1126_ae363a01","line":382,"range":{"start_line":382,"start_character":30,"end_line":382,"end_character":35},"updated":"2015-12-17 13:44:32.000000000","message":"s/multi-/multiple /","commit_id":"80d6f0fd611aa94b597aa790f163c346622b3d6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"67abb8f3829da0566925dfe3f9eb1120f0671959","unresolved":false,"context_lines":[{"line_number":379,"context_line":"              metavar\u003d\u0027\u003cnode\u003e\u0027,"},{"line_number":380,"context_line":"              nargs\u003d\u0027+\u0027,"},{"line_number":381,"context_line":"              help\u003d\"One or more Name/UUID of the node(s).\""},{"line_number":382,"context_line":"                   \"NOTE: for multi-nodes, same arguments will be applied \""},{"line_number":383,"context_line":"                   \"for each node.\")"},{"line_number":384,"context_line":"@cliutils.arg("},{"line_number":385,"context_line":"    \u0027provision_state\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a7e1126_8e31fe0d","line":382,"range":{"start_line":382,"start_character":43,"end_line":382,"end_character":47},"updated":"2015-12-17 13:44:32.000000000","message":"s/same/the same/","commit_id":"80d6f0fd611aa94b597aa790f163c346622b3d6d"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"763fa06f582b96b5be3502c83d2ff1d16b67fc6c","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    for node in args.node:"},{"line_number":477,"context_line":"        try:"},{"line_number":478,"context_line":"            cc.node.set_provision_state(node, args.provision_state,"},{"line_number":479,"context_line":"                                        configdrive\u003dargs.config_drive,"},{"line_number":480,"context_line":"                                        cleansteps\u003dclean_steps)"},{"line_number":481,"context_line":"        except Exception as e:"},{"line_number":482,"context_line":"            print(_(\u0027Set provision state for node %(node)s failed: %(err)\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"bae84128_7ebc06bb","line":479,"updated":"2016-02-24 02:22:11.000000000","message":"I don\u0027t think we should allow mult-nodes using a same configdriver. AFAIK, one use case is using configdriver to pass network configuration like IP in case of missing DHCP. You should add a condition here for this case.","commit_id":"90bf65defecf13532302f1445c08e83417b260b5"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"abf740844b236f0352637b5d3ac64ad2eea18c52","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    for node in args.node:"},{"line_number":477,"context_line":"        try:"},{"line_number":478,"context_line":"            cc.node.set_provision_state(node, args.provision_state,"},{"line_number":479,"context_line":"                                        configdrive\u003dargs.config_drive,"},{"line_number":480,"context_line":"                                        cleansteps\u003dclean_steps)"},{"line_number":481,"context_line":"        except Exception as e:"},{"line_number":482,"context_line":"            print(_(\u0027Set provision state for node %(node)s failed: %(err)\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"bae84128_b8ec7890","line":479,"in_reply_to":"bae84128_1f2f63a2","updated":"2016-02-25 14:10:01.000000000","message":"hmm, imo it\u0027s obvious that the same args would be applied to multiple nodes, if operators do this, he/she should understand this, we can\u0027t protect them from all wrong actions. Also for some cases it could be not wrong.","commit_id":"90bf65defecf13532302f1445c08e83417b260b5"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"c47182f924058f27c777ec18431dcccc42e29e64","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    for node in args.node:"},{"line_number":477,"context_line":"        try:"},{"line_number":478,"context_line":"            cc.node.set_provision_state(node, args.provision_state,"},{"line_number":479,"context_line":"                                        configdrive\u003dargs.config_drive,"},{"line_number":480,"context_line":"                                        cleansteps\u003dclean_steps)"},{"line_number":481,"context_line":"        except Exception as e:"},{"line_number":482,"context_line":"            print(_(\u0027Set provision state for node %(node)s failed: %(err)\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"bae84128_1f2f63a2","line":479,"in_reply_to":"bae84128_791ee070","updated":"2016-02-25 07:08:29.000000000","message":"I am thinking maybe we should prohibit this behavior explicitly rather then a help message?","commit_id":"90bf65defecf13532302f1445c08e83417b260b5"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"bf1315b3bf2a4b07055939215167a3e007ae6662","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    for node in args.node:"},{"line_number":477,"context_line":"        try:"},{"line_number":478,"context_line":"            cc.node.set_provision_state(node, args.provision_state,"},{"line_number":479,"context_line":"                                        configdrive\u003dargs.config_drive,"},{"line_number":480,"context_line":"                                        cleansteps\u003dclean_steps)"},{"line_number":481,"context_line":"        except Exception as e:"},{"line_number":482,"context_line":"            print(_(\u0027Set provision state for node %(node)s failed: %(err)\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"bae84128_791ee070","line":479,"in_reply_to":"bae84128_7ebc06bb","updated":"2016-02-24 03:02:41.000000000","message":"Yes, agree with you, if the config drive can not be applied to multi-nodes, user should not run this command with multi-nodes as input, and we have hint in help info already, it is in L428-430, so user can know if they need to run with multi-nodes or separated commands to set provision state for each nodes.","commit_id":"90bf65defecf13532302f1445c08e83417b260b5"}]}
