)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"0ce2d726e25019e9e85bed7c0e86aeea3afd4955","unresolved":false,"context_lines":[{"line_number":10,"context_line":"existing and adds missing docstring in the code."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ic7ddc1a4454630a14550a82e803a2568cafc8969"},{"line_number":13,"context_line":"Closes-Bug: #1368906"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"df7087c5_d61bcc70","line":13,"updated":"2018-03-07 16:26:55.000000000","message":"Are we sure this \"closes\" the bug?\n\nThe bug also talks about changing exception types.","commit_id":"48d04b3abea44419878e72d2ce2885924822d3dc"}],"ironic/drivers/modules/agent_client.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        \"\"\"Sends command to agent."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_12fc156e","line":62,"updated":"2018-02-13 19:36:45.000000000","message":"this is a string?","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        \"\"\"Sends command to agent."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_504da397","line":62,"in_reply_to":"3fa0c359_12fc156e","updated":"2018-02-27 07:47:48.000000000","message":"Yes, updated","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d2f1cd96","line":63,"updated":"2018-02-13 19:36:45.000000000","message":"this is a dict?","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_9056cb29","line":63,"in_reply_to":"3fa0c359_d2f1cd96","updated":"2018-02-27 07:47:48.000000000","message":"Yes, updated","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_922d85ff","line":64,"updated":"2018-02-13 19:36:45.000000000","message":"this is a Boolean?\n\nnit s/Whether wait/Whether to wait/. Well, how about\n\nTrue to wait for the command to finish executing; False otherwise.","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d00e9339","line":64,"in_reply_to":"3fa0c359_922d85ff","updated":"2018-02-27 07:47:48.000000000","message":"Done\nThanks for rewording","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":68,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_520cdd92","line":65,"updated":"2018-02-13 19:36:45.000000000","message":"by \u0027perform\u0027 do you mean to issue the request?","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":68,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff6b8bd7_fad84980","line":65,"in_reply_to":"1f9dbf25_f0e021cf","updated":"2018-03-05 06:40:25.000000000","message":"ok, let\u0027s make it clear instead of unreachable elegance :P","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f53429b45fd6223fe30577bda814841ef224dad8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":68,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f9dbf25_f0e021cf","line":65,"in_reply_to":"3fa0c359_4b297887","updated":"2018-03-03 11:40:21.000000000","message":"how about \u0027failed to issue the request or there was a malformed response from the agent\u0027 ?","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        :param method: The command to be executed by agent."},{"line_number":63,"context_line":"        :param params: Params used to form the request body."},{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":68,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_4b297887","line":65,"in_reply_to":"3fa0c359_520cdd92","updated":"2018-02-27 07:47:48.000000000","message":"Done\nthe same exception is raised if ironic get malformed response from agent, so I\u0027m not sure if `issue` is the best word, but I do think it\u0027s better than `perform`.","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        url \u003d self._get_command_url(node)"},{"line_number":70,"context_line":"        body \u003d self._get_command_body(method, params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_728479d3","line":67,"updated":"2018-02-13 19:36:45.000000000","message":"out of curiosity, do you know what the dict keys are? That\u0027s what I never remember, so it\u0027d be good to document that :) Or maybe we should point to documentation for this if it exists.","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":65,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":66,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":67,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        url \u003d self._get_command_url(node)"},{"line_number":70,"context_line":"        body \u003d self._get_command_body(method, params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_6b18f4d1","line":67,"in_reply_to":"3fa0c359_728479d3","updated":"2018-02-27 07:47:48.000000000","message":"Done\nunluckily, ipa is not well documented, we have to infer it from codes.","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"\"\"Get command status from agent."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        :param node: A Node object."},{"line_number":123,"context_line":"        :return: A dict represents command result."},{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        url \u003d self._get_command_url(node)"},{"line_number":126,"context_line":"        LOG.debug(\u0027Fetching status of agent commands for node %s\u0027, node.uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_525a9d82","line":123,"updated":"2018-02-13 19:36:45.000000000","message":"I think it is more interesting to know what the key/value pairs are in this dict :)","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"\"\"Get command status from agent."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        :param node: A Node object."},{"line_number":123,"context_line":"        :return: A dict represents command result."},{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        url \u003d self._get_command_url(node)"},{"line_number":126,"context_line":"        LOG.debug(\u0027Fetching status of agent commands for node %s\u0027, node.uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_cbdb48ea","line":123,"in_reply_to":"3fa0c359_525a9d82","updated":"2018-02-27 07:47:48.000000000","message":"Done","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        :param node: A Node object."},{"line_number":143,"context_line":"        :param image_info: A dictionary contains various image related"},{"line_number":144,"context_line":"                           information."},{"line_number":145,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":146,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":147,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":148,"context_line":"        :returns: A dict contains command status from agent."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d24d4dc4","line":145,"updated":"2018-02-13 19:36:45.000000000","message":"ditto, see comment above","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        :param node: A Node object."},{"line_number":143,"context_line":"        :param image_info: A dictionary contains various image related"},{"line_number":144,"context_line":"                           information."},{"line_number":145,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":146,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":147,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":148,"context_line":"        :returns: A dict contains command status from agent."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_8be1c09d","line":145,"in_reply_to":"3fa0c359_d24d4dc4","updated":"2018-02-27 07:47:48.000000000","message":"Done","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        :param image_info: A dictionary contains various image related"},{"line_number":144,"context_line":"                           information."},{"line_number":145,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":146,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":147,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":148,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":149,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_f24889b3","line":146,"updated":"2018-02-13 19:36:45.000000000","message":"ditto, see comment above","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        :param image_info: A dictionary contains various image related"},{"line_number":144,"context_line":"                           information."},{"line_number":145,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":146,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":147,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":148,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":149,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_ebd644c3","line":146,"in_reply_to":"3fa0c359_f24889b3","updated":"2018-02-27 07:47:48.000000000","message":"Done","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":146,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":147,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":148,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        LOG.debug(\u0027Preparing image %(image)s on node %(node)s.\u0027,"},{"line_number":151,"context_line":"                  {\u0027image\u0027: image_info.get(\u0027id\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_72d239d3","line":148,"updated":"2018-02-13 19:36:45.000000000","message":"ditto, see comment above","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        :param wait: Whether wait for command execution complete."},{"line_number":146,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":147,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":148,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        LOG.debug(\u0027Preparing image %(image)s on node %(node)s.\u0027,"},{"line_number":151,"context_line":"                  {\u0027image\u0027: image_info.get(\u0027id\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_abdcbce0","line":148,"in_reply_to":"3fa0c359_72d239d3","updated":"2018-02-27 07:47:48.000000000","message":"Done","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        \"\"\"Get clean steps from agent."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        :param node: A node object."},{"line_number":214,"context_line":"        :param ports: Ports associated to node."},{"line_number":215,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":216,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":217,"context_line":"        :returns: A dict contains command response from agent, in the form:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_52e85d7a","line":214,"updated":"2018-02-13 19:36:45.000000000","message":"nit s/to node/with the node/","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        \"\"\"Get clean steps from agent."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        :param node: A node object."},{"line_number":214,"context_line":"        :param ports: Ports associated to node."},{"line_number":215,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":216,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":217,"context_line":"        :returns: A dict contains command response from agent, in the form:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_0be7f0ad","line":214,"in_reply_to":"3fa0c359_52e85d7a","updated":"2018-02-27 07:47:48.000000000","message":"Done","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        :param step: A clean step dictionary to execute."},{"line_number":241,"context_line":"        :param node: A Node object."},{"line_number":242,"context_line":"        :param ports: Ports associated to node."},{"line_number":243,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":244,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":245,"context_line":"        :returns: A dict contains command response from agent, in the form:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_32011139","line":242,"updated":"2018-02-13 19:36:45.000000000","message":"ditto","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        :param step: A clean step dictionary to execute."},{"line_number":241,"context_line":"        :param node: A Node object."},{"line_number":242,"context_line":"        :param ports: Ports associated to node."},{"line_number":243,"context_line":"        :raises: IronicException when failed to perform the request to agent."},{"line_number":244,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":245,"context_line":"        :returns: A dict contains command response from agent, in the form:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_ebff2431","line":242,"in_reply_to":"3fa0c359_32011139","updated":"2018-02-27 07:47:48.000000000","message":"Done","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            ::"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"              {"},{"line_number":250,"context_line":"                \u0027clean_result\u0027: result,"},{"line_number":251,"context_line":"                \u0027clean_step\u0027: step"},{"line_number":252,"context_line":"              }"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_52b61d8c","line":250,"updated":"2018-02-13 19:36:45.000000000","message":"what is result, an integer?","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            ::"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"              {"},{"line_number":250,"context_line":"                \u0027clean_result\u0027: result,"},{"line_number":251,"context_line":"                \u0027clean_step\u0027: step"},{"line_number":252,"context_line":"              }"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_3cd311d8","line":250,"in_reply_to":"3fa0c359_52b61d8c","updated":"2018-02-27 07:47:48.000000000","message":"I think it\u0027s specific to steps, generally speaking, it\u0027s the clean execution output.","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a2dd184f8b4c2c8911e86d8d01a776d5b571cc72","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"              {"},{"line_number":250,"context_line":"                \u0027clean_result\u0027: result,"},{"line_number":251,"context_line":"                \u0027clean_step\u0027: step"},{"line_number":252,"context_line":"              }"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_f28ba9bc","line":251,"updated":"2018-02-13 19:36:45.000000000","message":"this is the step like the \u0027step\u0027 at L240?","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"732a36d2039560695c45d8960ef3c9b894f1bac8","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"              {"},{"line_number":250,"context_line":"                \u0027clean_result\u0027: result,"},{"line_number":251,"context_line":"                \u0027clean_step\u0027: step"},{"line_number":252,"context_line":"              }"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_dcd78dc0","line":251,"in_reply_to":"3fa0c359_f28ba9bc","updated":"2018-02-27 07:47:48.000000000","message":"Yes I think so.","commit_id":"48ebfdea33f800061d05c39db41bfea4eda05edf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.session.headers.update({\u0027Content-Type\u0027: \u0027application/json\u0027})"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _get_command_url(self, node):"},{"line_number":40,"context_line":"        \"\"\"Get URL endpoint for agent command request\"\"\""},{"line_number":41,"context_line":"        agent_url \u003d node.driver_internal_info.get(\u0027agent_url\u0027)"},{"line_number":42,"context_line":"        if not agent_url:"},{"line_number":43,"context_line":"            raise exception.IronicException(_(\u0027Agent driver requires \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_a9da46e6","line":40,"updated":"2018-03-02 11:13:23.000000000","message":"description about node parameter can be added.","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.session.headers.update({\u0027Content-Type\u0027: \u0027application/json\u0027})"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _get_command_url(self, node):"},{"line_number":40,"context_line":"        \"\"\"Get URL endpoint for agent command request\"\"\""},{"line_number":41,"context_line":"        agent_url \u003d node.driver_internal_info.get(\u0027agent_url\u0027)"},{"line_number":42,"context_line":"        if not agent_url:"},{"line_number":43,"context_line":"            raise exception.IronicException(_(\u0027Agent driver requires \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_3a5b212f","line":40,"in_reply_to":"1f9dbf25_a9da46e6","updated":"2018-03-05 06:40:25.000000000","message":"The main consideration of not adding full docs is sphinx doesn\u0027t generate doc for internal function, and I think it\u0027s quite straightforward.\nWill do if more people have the desire.","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                 \u0027api_version\u0027: CONF.agent.agent_api_version})"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _get_command_body(self, method, params):"},{"line_number":51,"context_line":"        \"\"\"Generate command body from method and params\"\"\""},{"line_number":52,"context_line":"        return jsonutils.dumps({"},{"line_number":53,"context_line":"            \u0027name\u0027: method,"},{"line_number":54,"context_line":"            \u0027params\u0027: params,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_29f07667","line":51,"updated":"2018-03-02 11:13:23.000000000","message":"ditto, description of input parameters missing.","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                 \u0027api_version\u0027: CONF.agent.agent_api_version})"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _get_command_body(self, method, params):"},{"line_number":51,"context_line":"        \"\"\"Generate command body from method and params\"\"\""},{"line_number":52,"context_line":"        return jsonutils.dumps({"},{"line_number":53,"context_line":"            \u0027name\u0027: method,"},{"line_number":54,"context_line":"            \u0027params\u0027: params,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_da3f85b3","line":51,"in_reply_to":"1f9dbf25_29f07667","updated":"2018-03-05 06:40:25.000000000","message":"ditto","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: A string represents the command to be executed by"},{"line_number":63,"context_line":"                       agent."},{"line_number":64,"context_line":"        :param params: A dictionary contains params used to form the request"},{"line_number":65,"context_line":"                       body."},{"line_number":66,"context_line":"        :param wait: True to wait for the command to finish executing, False"},{"line_number":67,"context_line":"                     otherwise."}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_499aa214","line":64,"range":{"start_line":64,"start_character":36,"end_line":64,"end_character":44},"updated":"2018-03-02 11:13:23.000000000","message":"s/contains/containing/","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        :param node: A Node object."},{"line_number":62,"context_line":"        :param method: A string represents the command to be executed by"},{"line_number":63,"context_line":"                       agent."},{"line_number":64,"context_line":"        :param params: A dictionary contains params used to form the request"},{"line_number":65,"context_line":"                       body."},{"line_number":66,"context_line":"        :param wait: True to wait for the command to finish executing, False"},{"line_number":67,"context_line":"                     otherwise."}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_da68e5bb","line":64,"range":{"start_line":64,"start_character":36,"end_line":64,"end_character":44},"in_reply_to":"1f9dbf25_499aa214","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                     otherwise."},{"line_number":68,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":69,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":70,"context_line":"        :returns: A dict contains command result from agent, see"},{"line_number":71,"context_line":"                  get_commands_status for a sample."},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":"        url \u003d self._get_command_url(node)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_e99e0e06","line":70,"range":{"start_line":70,"start_character":25,"end_line":70,"end_character":33},"updated":"2018-03-02 11:13:23.000000000","message":"s/contains/containing/","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                     otherwise."},{"line_number":68,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":69,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":70,"context_line":"        :returns: A dict contains command result from agent, see"},{"line_number":71,"context_line":"                  get_commands_status for a sample."},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":"        url \u003d self._get_command_url(node)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_ba5f310d","line":70,"range":{"start_line":70,"start_character":25,"end_line":70,"end_character":33},"in_reply_to":"1f9dbf25_e99e0e06","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f53429b45fd6223fe30577bda814841ef224dad8","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                  e.g. \u0027RUNNING\u0027, \u0027SUCCEEDED\u0027, \u0027FAILED\u0027\u003e,"},{"line_number":137,"context_line":"                \u0027command_error\u0027: \u003cerror message if command execution"},{"line_number":138,"context_line":"                                 failed\u003e,"},{"line_number":139,"context_line":"                \u0027command_result\u0027: \u003cresult message if command execution"},{"line_number":140,"context_line":"                                  succeeded\u003e"},{"line_number":141,"context_line":"              }"},{"line_number":142,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_10c6ed49","line":139,"updated":"2018-03-03 11:40:21.000000000","message":"looks like this is a dict, with \u0027result\u0027, \u0027clean_result\u0027, \u0027system_logs\u0027 as possible keys. The actual keys depend on the command I think. I just did a quick look at the code so this may not be complete, but it definitely isn\u0027t a result message.","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                  e.g. \u0027RUNNING\u0027, \u0027SUCCEEDED\u0027, \u0027FAILED\u0027\u003e,"},{"line_number":137,"context_line":"                \u0027command_error\u0027: \u003cerror message if command execution"},{"line_number":138,"context_line":"                                 failed\u003e,"},{"line_number":139,"context_line":"                \u0027command_result\u0027: \u003cresult message if command execution"},{"line_number":140,"context_line":"                                  succeeded\u003e"},{"line_number":141,"context_line":"              }"},{"line_number":142,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_dd721f7d","line":139,"in_reply_to":"1f9dbf25_10c6ed49","updated":"2018-03-05 06:40:25.000000000","message":"It\u0027s command specific, it\u0027s true that a dictionary is returned in most cases, for example:\n\n* CleanExtension.execute_clean_step returns a dict containing keys clean_result and clean_step.\n* LogExtension.collect_system_logs returns a dict containing key system_logs.\n\nWell, most commands in StandbyExtension doesn\u0027t return a dictionary:\n* cache_image returns a string.\n* power_off or sync just return None.\n\nSo I think we can\u0027t simply assume it as a dictionary, but result message is not correct either.\n\nI am updating to:\ncommand result if command execution succeeded, value is command specific, e.g.\n* a dictionary containing keys clean_result and clean_step for the command clean.execute_clean_step;\n* a string representing result message for the command standby.cache_image;\n* None for the command standby.sync.\n\nPlease let me know your thoughts.","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f1c7c2c68e17b668431ed4e55103c82e3cbd3de6","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                  e.g. \u0027RUNNING\u0027, \u0027SUCCEEDED\u0027, \u0027FAILED\u0027\u003e,"},{"line_number":137,"context_line":"                \u0027command_error\u0027: \u003cerror message if command execution"},{"line_number":138,"context_line":"                                 failed\u003e,"},{"line_number":139,"context_line":"                \u0027command_result\u0027: \u003cresult message if command execution"},{"line_number":140,"context_line":"                                  succeeded\u003e"},{"line_number":141,"context_line":"              }"},{"line_number":142,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_6daa2f86","line":139,"in_reply_to":"ff6b8bd7_dd721f7d","updated":"2018-03-07 15:07:17.000000000","message":"good thing you\u0027re documenting this!","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        \"\"\"Call the `prepare_image` method on the node."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        :param node: A Node object."},{"line_number":161,"context_line":"        :param image_info: A dictionary contains various image related"},{"line_number":162,"context_line":"                           information."},{"line_number":163,"context_line":"        :param wait: True to wait for the command to finish executing, False"},{"line_number":164,"context_line":"                     otherwise."}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_a98806c6","line":161,"range":{"start_line":161,"start_character":40,"end_line":161,"end_character":48},"updated":"2018-03-02 11:13:23.000000000","message":"s/contains/containing/","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        \"\"\"Call the `prepare_image` method on the node."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        :param node: A Node object."},{"line_number":161,"context_line":"        :param image_info: A dictionary contains various image related"},{"line_number":162,"context_line":"                           information."},{"line_number":163,"context_line":"        :param wait: True to wait for the command to finish executing, False"},{"line_number":164,"context_line":"                     otherwise."}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_1aa41d08","line":161,"range":{"start_line":161,"start_character":40,"end_line":161,"end_character":48},"in_reply_to":"1f9dbf25_a98806c6","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                     otherwise."},{"line_number":165,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":166,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":167,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":168,"context_line":"                  See :func:`get_commands_status` for a command result sample."},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        LOG.debug(\u0027Preparing image %(image)s on node %(node)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_c98552af","line":167,"range":{"start_line":167,"start_character":25,"end_line":167,"end_character":33},"updated":"2018-03-02 11:13:23.000000000","message":"s/contains/containing/","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                     otherwise."},{"line_number":165,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":166,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":167,"context_line":"        :returns: A dict contains command status from agent."},{"line_number":168,"context_line":"                  See :func:`get_commands_status` for a command result sample."},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        LOG.debug(\u0027Preparing image %(image)s on node %(node)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_3aa9e1de","line":167,"range":{"start_line":167,"start_character":25,"end_line":167,"end_character":33},"in_reply_to":"1f9dbf25_c98552af","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                                   table, RAID or filesystem signature."},{"line_number":197,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":198,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":199,"context_line":"        :returns: A dict contains command response from agent."},{"line_number":200,"context_line":"                  See :func:`get_commands_status` for a command result sample."},{"line_number":201,"context_line":"        \"\"\""},{"line_number":202,"context_line":"        params \u003d {\u0027iqn\u0027: iqn,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_49c382ee","line":199,"range":{"start_line":199,"start_character":25,"end_line":199,"end_character":33},"updated":"2018-03-02 11:13:23.000000000","message":"s/contains/containing/","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                                   table, RAID or filesystem signature."},{"line_number":197,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":198,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":199,"context_line":"        :returns: A dict contains command response from agent."},{"line_number":200,"context_line":"                  See :func:`get_commands_status` for a command result sample."},{"line_number":201,"context_line":"        \"\"\""},{"line_number":202,"context_line":"        params \u003d {\u0027iqn\u0027: iqn,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_daad45eb","line":199,"range":{"start_line":199,"start_character":25,"end_line":199,"end_character":33},"in_reply_to":"1f9dbf25_49c382ee","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":218,"context_line":"               boot mode."},{"line_number":219,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":220,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":221,"context_line":"        :returns: A dict contains command response from agent."},{"line_number":222,"context_line":"                  See :func:`get_commands_status` for a command result sample."},{"line_number":223,"context_line":"        \"\"\""},{"line_number":224,"context_line":"        params \u003d {\u0027root_uuid\u0027: root_uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_89a8aa1f","line":221,"range":{"start_line":221,"start_character":25,"end_line":221,"end_character":33},"updated":"2018-03-02 11:13:23.000000000","message":"ditto","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":218,"context_line":"               boot mode."},{"line_number":219,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":220,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":221,"context_line":"        :returns: A dict contains command response from agent."},{"line_number":222,"context_line":"                  See :func:`get_commands_status` for a command result sample."},{"line_number":223,"context_line":"        \"\"\""},{"line_number":224,"context_line":"        params \u003d {\u0027root_uuid\u0027: root_uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_faaa89d0","line":221,"range":{"start_line":221,"start_character":25,"end_line":221,"end_character":33},"in_reply_to":"1f9dbf25_89a8aa1f","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"2e17077b04ed16da98ccb6da0bc0dfb31008e23c","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        :param ports: Ports associated with the node."},{"line_number":237,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":238,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":239,"context_line":"        :returns: A dict contains command response from agent."},{"line_number":240,"context_line":"            See :func:`get_commands_status` for a command result sample."},{"line_number":241,"context_line":"            The value of key command_result is in the form of:"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_2963961c","line":239,"range":{"start_line":239,"start_character":25,"end_line":239,"end_character":33},"updated":"2018-03-02 11:13:23.000000000","message":"ditto","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"624f1307b5ba2a9fd480e5239144ac36693d4246","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        :param ports: Ports associated with the node."},{"line_number":237,"context_line":"        :raises: IronicException when failed to issue the request to agent."},{"line_number":238,"context_line":"        :raises: AgentAPIError when agent failed to execute specified command."},{"line_number":239,"context_line":"        :returns: A dict contains command response from agent."},{"line_number":240,"context_line":"            See :func:`get_commands_status` for a command result sample."},{"line_number":241,"context_line":"            The value of key command_result is in the form of:"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff6b8bd7_9ab7cd3b","line":239,"range":{"start_line":239,"start_character":25,"end_line":239,"end_character":33},"in_reply_to":"1f9dbf25_2963961c","updated":"2018-03-05 06:40:25.000000000","message":"Done","commit_id":"ddecc73423fe4c0a8b74fbe29dc617b2bb7ee612"}]}
