)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nisha Agarwal \u003cagarwalnisha1980@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-19 02:52:04 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Discover node properties using new CLI node-inspect"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements : blueprint ironic-node-properties-discovery"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":66,"id":"3a961159_c5660051","line":7,"updated":"2014-12-18 23:09:02.000000000","message":"you might want to change this, since there won\u0027t be a new CLI.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"}],"specs/juno/discover_hardware_properties.rst":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Discover node properties automatically at node-create and node-update"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint URL:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_b67b67f3","line":8,"updated":"2014-06-23 17:10:14.000000000","message":"this spec is still specific to iLO driver and should be split into a generic spec, describing API changes, and a spec for the iLO driver implementation thereof","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Today, Ironic does not have the out-of-band node properties discovery."},{"line_number":45,"context_line":"The driver can be used to discover node properties irrespective"},{"line_number":46,"context_line":"of whether OS is deployed on baremetal node or not."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Following properties may be discovered:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_965d8b7f","line":45,"updated":"2014-06-23 17:10:14.000000000","message":"this statement only applies to your driver","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":45,"context_line":"The driver can be used to discover node properties irrespective"},{"line_number":46,"context_line":"of whether OS is deployed on baremetal node or not."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Following properties may be discovered:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* memory size"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_5674e3fd","line":48,"updated":"2014-06-23 17:10:14.000000000","message":"this list of properties isn\u0027t a description of the problem, it\u0027s part of your proposed solution","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":96,"context_line":"* ironic node-create -d ilo -i \u003cilo_address\u003dvalue\u003e ..."},{"line_number":97,"context_line":"  -i \u003ciLOClient_timeout\u003dvalue\u003e"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"It creates the node with above properties populated in the node"},{"line_number":100,"context_line":"property info if driver_info data is provided on the node-create"},{"line_number":101,"context_line":"command line."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_96ebcb7a","line":99,"updated":"2014-06-23 17:10:14.000000000","message":"if you intend to make node-create always auto-discover node properties for the ilo driver, please state that clearly in both the general spec and the iLO spec. \n\nBased on our IRC discussion, I think that is your intent, but also, I do not think that is appropriate for all drivers, but let\u0027s discuss that after you refactor the spec to be generic","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":135,"context_line":"* A new rpcapi is added discover_properties()."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"def discover_attributes(self, context, node_obj, topic\u003dNone):"},{"line_number":138,"context_line":"  \"\"\"Synchronously, have a conductor discover the node\u0027s information."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  Discovers the node\u0027s attributes and updates the database."},{"line_number":141,"context_line":"  It returns a node object."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_76f63f5f","line":138,"updated":"2014-06-23 17:10:14.000000000","message":"this RPC method must be asynchronous.","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":171,"context_line":"The algorithm followed at node-create is:"},{"line_number":172,"context_line":"-----------------------------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* create the node obj using node.create()."},{"line_number":175,"context_line":"  It creates the node with all the information provided."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* call rpcapi discover_attributes()."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_367117df","line":174,"updated":"2014-06-23 17:10:14.000000000","message":"the NodesController.post() method today simply creates the node object and saves it to the database, prior to returning it to the user.\n\nMaking this call invoke any RPC method is going to make the API for node creation significantly slower and should be considered as such.","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":174,"context_line":"* create the node obj using node.create()."},{"line_number":175,"context_line":"  It creates the node with all the information provided."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* call rpcapi discover_attributes()."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* rpcapi calls ManagementInterface method, discover_hardware_properties()"},{"line_number":180,"context_line":"  to discover node properties. This method then populates the properties"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_96b90b7f","line":177,"updated":"2014-06-23 17:10:14.000000000","message":"does node.create always initiate a discover, or is this optional?","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":257,"context_line":"Data model impact"},{"line_number":258,"context_line":"-----------------"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"None."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Ironic CLI impact"},{"line_number":263,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_16097b32","line":260,"updated":"2014-06-23 17:10:14.000000000","message":"The discovered properties should be stored within Ironic so that subsequent retrievals of the properties do not require hitting the hardware again, unless the user requests that Ironic\u0027s knowledge of the node\u0027s properties be refreshed (eg, because the operator has replaced some hardware)","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":279,"context_line":"--create_ports \u003ccreate_ports\u003e:-\u003e creates ports : \u0027true\u0027 or \u0027false\u0027"},{"line_number":280,"context_line":"--discover \u003cdiscover\u003e:-\u003e discovers node properties: \u0027true\u0027 or \u0027false\u0027"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"REST API impact"},{"line_number":283,"context_line":"---------------"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"The REST APIs node-create and node-update needs to be modified"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_d6f0f3ff","line":282,"updated":"2014-06-23 17:10:14.000000000","message":"please detail the REST API changes here","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":283,"context_line":"---------------"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"The REST APIs node-create and node-update needs to be modified"},{"line_number":286,"context_line":"to have a new option as --create_ports."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"The node-update needs to be modified to have a new option of"},{"line_number":289,"context_line":"--discover."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f90b2022","line":286,"updated":"2014-06-23 17:10:14.000000000","message":"\"--create-ports\" is a CLI option. How will the HTTP REST API change to accept a new parameter to initiate this operation?","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":285,"context_line":"The REST APIs node-create and node-update needs to be modified"},{"line_number":286,"context_line":"to have a new option as --create_ports."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"The node-update needs to be modified to have a new option of"},{"line_number":289,"context_line":"--discover."},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"* Expose management as sub-element of nodes."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_1910cc4e","line":288,"updated":"2014-06-23 17:10:14.000000000","message":"ditto","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":295,"context_line":"node-create:"},{"line_number":296,"context_line":"------------"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"* Modify existing POST /v1/nodes/post to call new rpcapi"},{"line_number":299,"context_line":"  function and the port-create functions."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"The algorithm proposed is:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f92240a2","line":298,"updated":"2014-06-23 17:10:14.000000000","message":"see comments above regarding the change in performance to node creation.","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":303,"context_line":"* create the node obj using node.create()."},{"line_number":304,"context_line":"  It creates the node with all the information provided."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"* call rpcapi discover_attributes()."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"* rpcapi calls ManagementInterface method, discover_hardware_properties()"},{"line_number":309,"context_line":"  to discover node properties. This method then populates the properties"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_1937ece5","line":306,"updated":"2014-06-23 17:10:14.000000000","message":"This RPC call must be asynchronous","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":384,"context_line":""},{"line_number":385,"context_line":"Performance Impact"},{"line_number":386,"context_line":"------------------"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"None."},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_b976f8a1","line":387,"updated":"2014-06-23 17:10:14.000000000","message":"I believe there will be a very significant performance impact from this change, as it is proposed here, because node creation will become significantly slower.\n\nCurrent time to register a node in ironic is roughly the time it takes to save one row in the database.\n\nProposed time will be sum of:\n- save node in the database\n- RPC message to conductor\n- time to interrogate the iLO BMC and get all hardware details back\n- time for conductor to process results\n- time to save one or more ports to database\n- time for RPC response from conductor","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"5d76439acc0328605e934c8f2a506fd8faf769ab","unresolved":false,"context_lines":[{"line_number":386,"context_line":"------------------"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"None."},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"Other deployer impact"},{"line_number":391,"context_line":"---------------------"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_f97080a6","line":389,"updated":"2014-06-23 17:10:14.000000000","message":"what happens if the hardware interrogation takes longer than the RPC or HTTP timeouts?","commit_id":"6f48dc0bc92a8513eac79572ce40d0b5113bed86"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"ad3dfee80e14cb8f9071dc18e90332ac20905f1d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"driver_info fields are re-supplied on the command line."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Similarly, the node-create and node-update can be updated to"},{"line_number":27,"context_line":"have a new option, say --create_ports to automatically create"},{"line_number":28,"context_line":"ports with the NIC MAC addresses returned by node-create."},{"line_number":29,"context_line":"The create_ports option will create ports only when the node"},{"line_number":30,"context_line":"properties are discovered automatically as proposed. The"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_0e2552ad","line":27,"updated":"2014-06-26 20:37:27.000000000","message":"NIT: maybe create-port vs create_port","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"41f1de2c52ada812aea63fa32a33690d24b46725","unresolved":false,"context_lines":[{"line_number":24,"context_line":"driver_info fields are re-supplied on the command line."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Similarly, the node-create and node-update can be updated to"},{"line_number":27,"context_line":"have a new option, say --create_ports to automatically create"},{"line_number":28,"context_line":"ports with the NIC MAC addresses returned by node-create."},{"line_number":29,"context_line":"The create_ports option will create ports only when the node"},{"line_number":30,"context_line":"properties are discovered automatically as proposed. The"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_8e24020f","line":27,"in_reply_to":"1ae5cdf2_0e2552ad","updated":"2014-06-27 03:52:50.000000000","message":"Ok.","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"ad3dfee80e14cb8f9071dc18e90332ac20905f1d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"command line."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* ironic node-create -d \u003cdriver_name\u003e -i \u003ckey\u003dvalue\u003e ..."},{"line_number":91,"context_line":"  -i \u003ckey\u003dvalue\u003e --create_ports \u003ctrue/false/True/False\u003e"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"It creates the node with discovered properties populated in the node"},{"line_number":94,"context_line":"property info if driver_info data is provided on the node-create"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_bb073e1c","line":91,"updated":"2014-06-26 20:37:27.000000000","message":"False not needed just by including --create-port can safely assume true","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"41f1de2c52ada812aea63fa32a33690d24b46725","unresolved":false,"context_lines":[{"line_number":88,"context_line":"command line."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* ironic node-create -d \u003cdriver_name\u003e -i \u003ckey\u003dvalue\u003e ..."},{"line_number":91,"context_line":"  -i \u003ckey\u003dvalue\u003e --create_ports \u003ctrue/false/True/False\u003e"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"It creates the node with discovered properties populated in the node"},{"line_number":94,"context_line":"property info if driver_info data is provided on the node-create"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_ae21befd","line":91,"in_reply_to":"1ae5cdf2_bb073e1c","updated":"2014-06-27 03:52:50.000000000","message":"Ok","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"ad3dfee80e14cb8f9071dc18e90332ac20905f1d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"command line. It also creates/adds ports to the created node with"},{"line_number":96,"context_line":"the MAC addresses returned in hardware properties."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* ironic node-update \u003cnode_uuid\u003e --discover \u003ctrue/false/True/False\u003e"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"It discovers the hardware properties for the node again."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_ae0e1e30","line":98,"updated":"2014-06-26 20:37:27.000000000","message":"same as for create-port","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"41f1de2c52ada812aea63fa32a33690d24b46725","unresolved":false,"context_lines":[{"line_number":95,"context_line":"command line. It also creates/adds ports to the created node with"},{"line_number":96,"context_line":"the MAC addresses returned in hardware properties."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* ironic node-update \u003cnode_uuid\u003e --discover \u003ctrue/false/True/False\u003e"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"It discovers the hardware properties for the node again."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_2e7daee7","line":98,"in_reply_to":"1ae5cdf2_ae0e1e30","updated":"2014-06-27 03:52:50.000000000","message":"Ok.","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"50d7827d46755d4f7c63133cc0a65ad705e07710","unresolved":false,"context_lines":[{"line_number":285,"context_line":"This feature will improve user experience as users no longer"},{"line_number":286,"context_line":"need to manually update the node property info using node-create"},{"line_number":287,"context_line":"or node-update."},{"line_number":288,"context_line":" "},{"line_number":289,"context_line":"The users will have an option to update the ports automatically"},{"line_number":290,"context_line":"with node-create. If the --create_ports option is not used in the"},{"line_number":291,"context_line":"command line with node-create or node-update then also"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_4cbe82d5","line":288,"updated":"2014-06-26 21:47:30.000000000","message":"nit: spacing","commit_id":"1601f8ea0a230c64d0fdedc343179ec597a4257a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The node-update can be modified to have a new option, say"},{"line_number":21,"context_line":"\u0027--discover\u0027 which can be invoked when any hardware changes happen."},{"line_number":22,"context_line":"This will update the node properties info automatically again."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Similarly, the node-create and node-update can be updated to"},{"line_number":25,"context_line":"have a new option, say --create-ports to automatically create"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_268300cc","line":22,"updated":"2014-06-27 12:40:38.000000000","message":"this and following paragraphs are already \"Proposed Changes\" and belong there","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The node-update can be modified to have a new option, say"},{"line_number":21,"context_line":"\u0027--discover\u0027 which can be invoked when any hardware changes happen."},{"line_number":22,"context_line":"This will update the node properties info automatically again."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Similarly, the node-create and node-update can be updated to"},{"line_number":25,"context_line":"have a new option, say --create-ports to automatically create"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_d6de7d69","line":22,"in_reply_to":"1ae5cdf2_268300cc","updated":"2014-06-27 19:03:01.000000000","message":"Ok.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Problem description"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Today, Ironic does not have the out-of-band node properties discovery."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Some of the properties which may be of interest:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_06ce042d","line":42,"updated":"2014-06-27 12:40:38.000000000","message":"Obviously you don\u0027t cover all cases (even our 2 specs totally don\u0027t cover all cases), so please be more precise: problem is inability to automatically detect node properties when issuing `node-create` or `node-update`.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Problem description"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Today, Ironic does not have the out-of-band node properties discovery."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Some of the properties which may be of interest:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_56ca6da0","line":42,"in_reply_to":"1ae5cdf2_06ce042d","updated":"2014-06-27 19:03:01.000000000","message":"Ok.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   driver_info fields are provided."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":69,"context_line":"   with a new option --create-ports."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Node-update"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_46772cd4","line":69,"updated":"2014-06-27 12:40:38.000000000","message":"I remember Deva was in favour of moving --create-ports to one more spec. That\u0027s a complex topic, which may be of interest for other methods of discovery as well.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   driver_info fields are provided."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":69,"context_line":"   with a new option --create-ports."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Node-update"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_b6681189","line":69,"in_reply_to":"1ae5cdf2_46772cd4","updated":"2014-06-27 19:03:01.000000000","message":"Yes. he mentioned it but when i cross checked it with him he said that it can be discussed after splitting spec into two. \nThis topic was agreed upon by linggao and jbjohnso and deva in IRC chat that we can do auto creation of ports.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"* ironic node-create -d \u003cdriver_name\u003e -i \u003ckey\u003dvalue\u003e ..."},{"line_number":82,"context_line":"  -i \u003ckey\u003dvalue\u003e"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"It creates the node with doscovered properties populated in the node"},{"line_number":85,"context_line":"property info if driver_info data is provided on the node-create"},{"line_number":86,"context_line":"command line."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_e6bf585e","line":84,"updated":"2014-06-27 12:40:38.000000000","message":"s/doscovered/discovered/","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":81,"context_line":"* ironic node-create -d \u003cdriver_name\u003e -i \u003ckey\u003dvalue\u003e ..."},{"line_number":82,"context_line":"  -i \u003ckey\u003dvalue\u003e"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"It creates the node with doscovered properties populated in the node"},{"line_number":85,"context_line":"property info if driver_info data is provided on the node-create"},{"line_number":86,"context_line":"command line."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_b6ff31aa","line":84,"in_reply_to":"1ae5cdf2_e6bf585e","updated":"2014-06-27 19:03:01.000000000","message":"Thanks. Will do.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  Discovers the node\u0027s attributes and updates the database."},{"line_number":125,"context_line":"  It returns a node object."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  The conductor will spawn a thread to retreive the information."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  :param context: request context."},{"line_number":130,"context_line":"  :param node_obj: a node object."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_460c8c42","line":127,"updated":"2014-06-27 12:40:38.000000000","message":"Please elaborate on this \"spawn a thread\" approach somewhere. Why? Do you mean green or OS thread? How is it going to be managed?","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  Discovers the node\u0027s attributes and updates the database."},{"line_number":125,"context_line":"  It returns a node object."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  The conductor will spawn a thread to retreive the information."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  :param context: request context."},{"line_number":130,"context_line":"  :param node_obj: a node object."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_f62b79e8","line":127,"in_reply_to":"1ae5cdf2_460c8c42","updated":"2014-06-27 19:03:01.000000000","message":"I meant the same way as deploy/power spawns a thread to complete its function. The discovery can be done in background and node create/update returns as before. When discovery is completed, node-show can be used to get the discovered values. I am not sure what is green thread. Do you have any other suggestion how to make rpcapi asynchronous?","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  to discover the hardware attributes."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"* the rpcapi discover_attributes() calls discover_hardware_properties()"},{"line_number":142,"context_line":"  management function. It returns the updated node_object."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Json as returned by the discover_hardware_properties()"},{"line_number":145,"context_line":"------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_693cf9bf","line":142,"updated":"2014-06-27 12:40:38.000000000","message":"Please consider using store_inventory prototyped in https://review.openstack.org/#/c/102565/\n\nWe need a common way to update hardware inventory, otherwise it\u0027s going to be crazy :)","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  to discover the hardware attributes."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"* the rpcapi discover_attributes() calls discover_hardware_properties()"},{"line_number":142,"context_line":"  management function. It returns the updated node_object."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Json as returned by the discover_hardware_properties()"},{"line_number":145,"context_line":"------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_56442d72","line":142,"in_reply_to":"1ae5cdf2_693cf9bf","updated":"2014-06-27 19:03:01.000000000","message":"will see and propose.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":142,"context_line":"  management function. It returns the updated node_object."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Json as returned by the discover_hardware_properties()"},{"line_number":145,"context_line":"------------------------------------------------------"},{"line_number":146,"context_line":"{"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"\"properties\":"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_862bf493","line":145,"updated":"2014-06-27 12:40:38.000000000","message":"First, it\u0027s not JSON (JSON is a string), it\u0027s a dict. Second, please change this dict to a format used by IPA and described in a generic spec https://review.openstack.org/#/c/102565/","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":142,"context_line":"  management function. It returns the updated node_object."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Json as returned by the discover_hardware_properties()"},{"line_number":145,"context_line":"------------------------------------------------------"},{"line_number":146,"context_line":"{"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"\"properties\":"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_366a41ed","line":145,"in_reply_to":"1ae5cdf2_862bf493","updated":"2014-06-27 19:03:01.000000000","message":"Ok will see and propose.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"                \"address\" : \"78:ac:c0:fe:49:64\","},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"                \"port_uuid : \"\""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"          },"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_a9144141","line":176,"updated":"2014-06-27 12:40:38.000000000","message":"closing quote after port_uuid","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"                \"address\" : \"78:ac:c0:fe:49:64\","},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"                \"port_uuid : \"\""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"          },"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_963a3532","line":176,"in_reply_to":"1ae5cdf2_a9144141","updated":"2014-06-27 19:03:01.000000000","message":"Ok","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":202,"context_line":"And after above two steps CLI returns the node object to user."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Since above method will require two requests to be made for any"},{"line_number":205,"context_line":"node-create/node-update, it is not chosen."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Data model impact"},{"line_number":208,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_0906151c","line":205,"updated":"2014-06-27 12:40:38.000000000","message":"Another alternative is auto-discovery, it should be discusses here as well.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":202,"context_line":"And after above two steps CLI returns the node object to user."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Since above method will require two requests to be made for any"},{"line_number":205,"context_line":"node-create/node-update, it is not chosen."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Data model impact"},{"line_number":208,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_113b8f9c","line":205,"in_reply_to":"1ae5cdf2_0906151c","updated":"2014-06-27 19:03:01.000000000","message":"I think autodiscovery shall be node-discovery and not node-properties discovery.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":208,"context_line":"-----------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027 field"},{"line_number":211,"context_line":"of the node."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Ironic CLI impact"},{"line_number":214,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_8919457c","line":211,"updated":"2014-06-27 12:40:38.000000000","message":"they are already stored there, it\u0027s not an impact actually","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":307,"context_line":"------------------"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"None. As the rpcapi will be asynchronous in nature, the current"},{"line_number":310,"context_line":"node-create will see no impact."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"Other deployer impact"},{"line_number":313,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_89e30533","line":310,"updated":"2014-06-27 12:40:38.000000000","message":"So you\u0027re going to return result to user, then update hardware specs, right?","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":307,"context_line":"------------------"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"None. As the rpcapi will be asynchronous in nature, the current"},{"line_number":310,"context_line":"node-create will see no impact."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"Other deployer impact"},{"line_number":313,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_b1ed7bf2","line":310,"in_reply_to":"1ae5cdf2_89e30533","updated":"2014-06-27 19:03:01.000000000","message":"to make rpcapi call asynchronous, it needs to return the node object as today. And the properties discovery updation to node object will happen in background.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2f88bb6ed49735a1aaf8ec40e088781ce846040c","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"The drivers who need to implement base.ManagementInterface(),"},{"line_number":321,"context_line":"will need to implement/define the abstract methods added by this"},{"line_number":322,"context_line":"proposal."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Implementation"},{"line_number":325,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_6946b922","line":322,"updated":"2014-06-27 12:40:38.000000000","message":"What should they do, if they can\u0027t implement it?","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b43013b6734e84e1ec77bffc92d85651f9d1aa60","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"The drivers who need to implement base.ManagementInterface(),"},{"line_number":321,"context_line":"will need to implement/define the abstract methods added by this"},{"line_number":322,"context_line":"proposal."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Implementation"},{"line_number":325,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ae5cdf2_b1a9fb7d","line":322,"in_reply_to":"1ae5cdf2_6946b922","updated":"2014-06-27 19:03:01.000000000","message":"They may choose to implement it and i think this will apply to any new feature defining new abstract functions in drivers.","commit_id":"6ab58b5f8c45efef1f1dacfe55bb2aecfa9a38d2"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Automatic and default hardware discovery at node-create if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_c0a007f7","line":47,"updated":"2014-07-01 15:19:47.000000000","message":"I don\u0027t think this should be the default. Because not all drivers can support this option, it may be better to have the same command line switches as node-update.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Automatic and default hardware discovery at node-create if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_a0da2c76","line":47,"in_reply_to":"baada198_c0a007f7","updated":"2014-07-01 17:35:25.000000000","message":"Ok i will add an option --discover to node-create too.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":89,"context_line":"will not create a new port for that MAC address. The created"},{"line_number":90,"context_line":"port-ids can be added in the properties info field of the"},{"line_number":91,"context_line":"node. This will help user to identify which ports are auto-created"},{"line_number":92,"context_line":"with node-create or node-update."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":95,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_80736f4c","line":92,"updated":"2014-07-01 15:19:47.000000000","message":"many servers may have unconnected NICs that are not used. Will --create-ports add information for NICs that are not connected? Can a parameter be added to --create-ports like \"--create-ports [all | connected]\"","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":89,"context_line":"will not create a new port for that MAC address. The created"},{"line_number":90,"context_line":"port-ids can be added in the properties info field of the"},{"line_number":91,"context_line":"node. This will help user to identify which ports are auto-created"},{"line_number":92,"context_line":"with node-create or node-update."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":95,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_20effc1f","line":92,"in_reply_to":"baada198_80736f4c","updated":"2014-07-01 17:35:25.000000000","message":"Ok. I will add the suggested options and modify spec as per that.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":132,"context_line":"-----------------------------------------"},{"line_number":133,"context_line":"(Taken from https://review.openstack.org/#/c/102565/ after the comment,"},{"line_number":134,"context_line":"The inventory is proposed to be a new-subelement of Node-object."},{"line_number":135,"context_line":"The extra fields may be chosen by each driver to be populated for "},{"line_number":136,"context_line":"other properties discovered. The properties field need to be updated "},{"line_number":137,"context_line":"as needed by Nova-Ironic schedular.)"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_60773b03","line":135,"updated":"2014-07-01 15:19:47.000000000","message":"nit: white space","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":132,"context_line":"-----------------------------------------"},{"line_number":133,"context_line":"(Taken from https://review.openstack.org/#/c/102565/ after the comment,"},{"line_number":134,"context_line":"The inventory is proposed to be a new-subelement of Node-object."},{"line_number":135,"context_line":"The extra fields may be chosen by each driver to be populated for "},{"line_number":136,"context_line":"other properties discovered. The properties field need to be updated "},{"line_number":137,"context_line":"as needed by Nova-Ironic schedular.)"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_e0bb440c","line":135,"in_reply_to":"baada198_60773b03","updated":"2014-07-01 17:35:25.000000000","message":"ok.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":133,"context_line":"(Taken from https://review.openstack.org/#/c/102565/ after the comment,"},{"line_number":134,"context_line":"The inventory is proposed to be a new-subelement of Node-object."},{"line_number":135,"context_line":"The extra fields may be chosen by each driver to be populated for "},{"line_number":136,"context_line":"other properties discovered. The properties field need to be updated "},{"line_number":137,"context_line":"as needed by Nova-Ironic schedular.)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_80744ffe","line":136,"updated":"2014-07-01 15:19:47.000000000","message":"nit: white space","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":133,"context_line":"(Taken from https://review.openstack.org/#/c/102565/ after the comment,"},{"line_number":134,"context_line":"The inventory is proposed to be a new-subelement of Node-object."},{"line_number":135,"context_line":"The extra fields may be chosen by each driver to be populated for "},{"line_number":136,"context_line":"other properties discovered. The properties field need to be updated "},{"line_number":137,"context_line":"as needed by Nova-Ironic schedular.)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_203d3c90","line":136,"in_reply_to":"baada198_80744ffe","updated":"2014-07-01 17:35:25.000000000","message":":) will remove.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":210,"context_line":"Data model impact"},{"line_number":211,"context_line":"-----------------"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"It will add inventory as a new field to the node object as proposed by "},{"line_number":214,"context_line":"https://review.openstack.org/#/c/102565/."},{"line_number":215,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027,"},{"line_number":216,"context_line":"\u0027inventory\u0027 and \u0027extra\u0027 fields of the node."}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_e05a6b82","line":213,"updated":"2014-07-01 15:19:47.000000000","message":"nit: white space","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":210,"context_line":"Data model impact"},{"line_number":211,"context_line":"-----------------"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"It will add inventory as a new field to the node object as proposed by "},{"line_number":214,"context_line":"https://review.openstack.org/#/c/102565/."},{"line_number":215,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027,"},{"line_number":216,"context_line":"\u0027inventory\u0027 and \u0027extra\u0027 fields of the node."}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_40423011","line":213,"in_reply_to":"baada198_e05a6b82","updated":"2014-07-01 17:35:25.000000000","message":"will remove","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                          [-p \u003ckey\u003dvalue\u003e] [-e \u003ckey\u003dvalue\u003e]"},{"line_number":226,"context_line":"                          [--create-ports \u003ccreate-ports\u003e]"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"--create-ports \u003ccreate-ports\u003e:-\u003e creates ports : \u0027true\u0027 or \u0027false\u0027"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* ironic node-update \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"},{"line_number":231,"context_line":"                          [--create-ports \u003ccreate-ports\u003e]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_e09fcb01","line":228,"updated":"2014-07-01 15:19:47.000000000","message":"False not needed. Just including --create-ports should be enough.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                          [-p \u003ckey\u003dvalue\u003e] [-e \u003ckey\u003dvalue\u003e]"},{"line_number":226,"context_line":"                          [--create-ports \u003ccreate-ports\u003e]"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"--create-ports \u003ccreate-ports\u003e:-\u003e creates ports : \u0027true\u0027 or \u0027false\u0027"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* ironic node-update \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"},{"line_number":231,"context_line":"                          [--create-ports \u003ccreate-ports\u003e]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_a0c14c82","line":228,"in_reply_to":"baada198_e09fcb01","updated":"2014-07-01 17:35:25.000000000","message":"Yes. Missed to remove it. will do in next patch.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"914a5d96ea3da68722631eb08b083eeabed35a55","unresolved":false,"context_lines":[{"line_number":342,"context_line":"----------"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"* Add a new option to node-create and node-update for automatic"},{"line_number":345,"context_line":"  port-create."},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_069cd8bf","line":345,"updated":"2014-07-01 15:19:47.000000000","message":"is this change on the python-ironicclient?","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"99772809a0b36dd65cb6d4b9d4b0f1861a8c7bef","unresolved":false,"context_lines":[{"line_number":342,"context_line":"----------"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"* Add a new option to node-create and node-update for automatic"},{"line_number":345,"context_line":"  port-create."},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"baada198_466ed002","line":345,"in_reply_to":"baada198_069cd8bf","updated":"2014-07-01 17:35:25.000000000","message":"Yes. This will be in ironic-client.","commit_id":"c885d788bd7b515070ca02bae7d7b75ea62f2731"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"9bdc17796c06b526d390d1ff1afbfdd026eb03fc","unresolved":false,"context_lines":[{"line_number":144,"context_line":"The inventory is proposed to be a new-subelement of Node-object."},{"line_number":145,"context_line":"The extra fields may be chosen by each driver to be populated for"},{"line_number":146,"context_line":"other properties discovered. The properties field need to be updated"},{"line_number":147,"context_line":"as needed by Nova-Ironic schedular.)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"{"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"baada198_109b2319","line":147,"updated":"2014-07-01 19:16:21.000000000","message":"nit: scheduler","commit_id":"3a1a56dd7dfe80abd5766a0845a10e38b5717c84"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"2fcbb88265b70c95992c56ecd55d3d1cbe259421","unresolved":false,"context_lines":[{"line_number":356,"context_line":"Dependencies"},{"line_number":357,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"None."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"Testing"},{"line_number":362,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"baada198_eb4f4069","line":359,"updated":"2014-07-03 23:15:44.000000000","message":"appears to be dependent on : https://review.openstack.org/#/c/102565","commit_id":"eafcf4872eca2166a75ef330031c76cbda61d2ab"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"18a5b1cceec56ab187c54a6f3916c9f889f083e2","unresolved":false,"context_lines":[{"line_number":356,"context_line":"Dependencies"},{"line_number":357,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"None."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"Testing"},{"line_number":362,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"baada198_aa261fcc","line":359,"in_reply_to":"baada198_eb4f4069","updated":"2014-07-04 03:15:24.000000000","message":"It doesnt depends on the genric hw discovery proposed by Dmitry. The same data structure(json format ) has been chosen just to say that both ways the same database gets populated.","commit_id":"eafcf4872eca2166a75ef330031c76cbda61d2ab"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f5567890f683c8e3acffd000ef3ba9d5f3d998d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  :param task: a task from TaskManager."},{"line_number":104,"context_line":"  :returns: a dict containing hardware information."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"  \"\"\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* A new rpcapi is added discover_properties()."},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"baada198_b679f694","line":106,"updated":"2014-07-14 17:43:47.000000000","message":"You can just give a link to https://review.openstack.org/#/c/102565/14/specs/juno/generic-hardware-discovery.rst where format for HW information is defined in \"REST API\" section","commit_id":"23dacdb2756b7db5830f1eb94f29c7a6966e4f87"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f5567890f683c8e3acffd000ef3ba9d5f3d998d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  to discover the hardware attributes."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* the rpcapi discover_attributes() calls discover_hardware_properties()"},{"line_number":127,"context_line":"  management function. It returns updated node_object."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Json schema definition for the body data:"},{"line_number":130,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"baada198_96287287","line":127,"updated":"2014-07-14 17:43:47.000000000","message":"Here you can add that discover_hardware_properties() calls store_inventory(), defined in https://review.openstack.org/#/c/102565/14/specs/juno/generic-hardware-discovery.rst\n\nstore_inventory() will update Node.properties from the dictionary with HW information","commit_id":"23dacdb2756b7db5830f1eb94f29c7a6966e4f87"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f5567890f683c8e3acffd000ef3ba9d5f3d998d","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Json schema definition for the body data:"},{"line_number":130,"context_line":"-----------------------------------------"},{"line_number":131,"context_line":"The inventory is proposed to be a new-subelement of Node-object."},{"line_number":132,"context_line":"The extra fields may be chosen by each driver to be populated for"},{"line_number":133,"context_line":"other properties discovered. The properties field need to be updated"},{"line_number":134,"context_line":"as needed by Nova-Ironic schedular."}],"source_content_type":"text/x-rst","patch_set":19,"id":"baada198_16438242","line":131,"updated":"2014-07-14 17:43:47.000000000","message":"Devananda and folks were objecting to storing inventory in Node, except for what is already stored in Node.properties. I suggest dropping this whole section","commit_id":"23dacdb2756b7db5830f1eb94f29c7a6966e4f87"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f5567890f683c8e3acffd000ef3ba9d5f3d998d","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"It will add inventory as a new field to the node object."},{"line_number":211,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027,"},{"line_number":212,"context_line":"\u0027inventory\u0027 and \u0027extra\u0027 fields of the node."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Ironic CLI impact"},{"line_number":215,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"baada198_1698e2be","line":212,"updated":"2014-07-14 17:43:47.000000000","message":"See above about storing the whole inventory. If you base this on https://review.openstack.org/#/c/102565/14/specs/juno/generic-hardware-discovery.rst you can drop this section","commit_id":"23dacdb2756b7db5830f1eb94f29c7a6966e4f87"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aff0dccbae5c106b69c700f874dcca3ac76efb2b","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        :param task: a task from TaskManager."},{"line_number":104,"context_line":"        :returns: a dict containing hardware information"},{"line_number":105,"context_line":"             as given in https://review.openstack.org/#/c/102565."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"baada198_a01073ac","line":105,"updated":"2014-07-16 15:16:20.000000000","message":"please no longer link to this review, it\u0027s future is vague. sorry for previous confusion.","commit_id":"b8baf3a0f964fdeee93a2adf84aab8276d21177d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aff0dccbae5c106b69c700f874dcca3ac76efb2b","unresolved":false,"context_lines":[{"line_number":126,"context_line":"* the rpcapi discover_attributes() calls discover_hardware_properties()"},{"line_number":127,"context_line":"  management function to discover hardware properties."},{"line_number":128,"context_line":"  The returned properties are updated by calling store_inventory()"},{"line_number":129,"context_line":"  as given in https://review.openstack.org/#/c/102565."},{"line_number":130,"context_line":"  Then, it returns updated node_object."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Json schema definition for the body data:"}],"source_content_type":"text/x-rst","patch_set":22,"id":"baada198_2024630d","line":129,"updated":"2014-07-16 15:16:20.000000000","message":"ditto","commit_id":"b8baf3a0f964fdeee93a2adf84aab8276d21177d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aff0dccbae5c106b69c700f874dcca3ac76efb2b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"Json schema definition for the body data:"},{"line_number":133,"context_line":"-----------------------------------------"},{"line_number":134,"context_line":"The inventory data would be structured as suggested in"},{"line_number":135,"context_line":"https://review.openstack.org/#/c/102565."},{"line_number":136,"context_line":"The extra fields may be chosen by each driver to be populated for"},{"line_number":137,"context_line":"other properties discovered. The discovered data will be stored"},{"line_number":138,"context_line":"in Node.properties."}],"source_content_type":"text/x-rst","patch_set":22,"id":"baada198_402157fb","line":135,"updated":"2014-07-16 15:16:20.000000000","message":"ditto","commit_id":"b8baf3a0f964fdeee93a2adf84aab8276d21177d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aff0dccbae5c106b69c700f874dcca3ac76efb2b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"No impact."},{"line_number":207,"context_line":"It suggests to update the existing field of the Node object."},{"line_number":208,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":209,"context_line":"and \u0027extra\u0027 fields of the node."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Ironic CLI impact"},{"line_number":212,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":22,"id":"baada198_80728f0f","line":209,"updated":"2014-07-16 15:16:20.000000000","message":"There are strong objections to storing anything, except for what is stored in Node.properties. Particularly, storing anything in `extra` is of little use, because you can\u0027t do searches on this data.","commit_id":"b8baf3a0f964fdeee93a2adf84aab8276d21177d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aff0dccbae5c106b69c700f874dcca3ac76efb2b","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"It will add new abstract method discover_hardware_properties()"},{"line_number":263,"context_line":"to the base.ManagementInterface."},{"line_number":264,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Nova driver impact"},{"line_number":267,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":22,"id":"baada198_604c9bc9","line":264,"updated":"2014-07-16 15:16:20.000000000","message":"What should drivers that do not support this feature do? Nothing? Return an error? How will it be reported to a user? Should be decided and discussed.","commit_id":"b8baf3a0f964fdeee93a2adf84aab8276d21177d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aff0dccbae5c106b69c700f874dcca3ac76efb2b","unresolved":false,"context_lines":[{"line_number":356,"context_line":"Testing"},{"line_number":357,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"Documentation Impact"},{"line_number":362,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":22,"id":"baada198_4084f7b0","line":359,"updated":"2014-07-16 15:16:20.000000000","message":"What about tempest tests? Can we add them. If not, please state, why","commit_id":"b8baf3a0f964fdeee93a2adf84aab8276d21177d"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The proposal is for :"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_b4885523","line":45,"updated":"2014-07-18 14:58:29.000000000","message":"Node-create is a synchronous operation currently. This feature requires contacting the HW, which should not be done in a synchronous manner. It would be good to indicate that this change will make node-create asynchronous.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The proposal is for :"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_fd68f1f6","line":45,"in_reply_to":"baada198_5a548353","updated":"2014-07-18 17:20:09.000000000","message":"Ok. This will be taken care in implementation.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6769e78a1ce739bcb1f72c9e5a66bd7a375c3d9b","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The proposal is for :"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_5a548353","line":45,"in_reply_to":"baada198_b4885523","updated":"2014-07-18 15:19:13.000000000","message":"I need to add something. I would really like new ManagementInterface to error out, if this feature is not implemented. We need make a user aware, that while we managed to create node, the discovery won\u0027t work, as it\u0027s not supported by the driver.\n\nWe don\u0027t want a user to sit in front of his terminal and wait for the process that hasn\u0027t even begun :)","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The proposal is for :"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_fdc1d1e4","line":45,"in_reply_to":"baada198_b4885523","updated":"2014-07-18 17:20:09.000000000","message":"Ok.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_94e0b127","line":47,"updated":"2014-07-18 14:58:29.000000000","message":"Could you please indicate that this ordered list belongs under the node-create list item?","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_c0dee4d9","line":47,"in_reply_to":"baada198_94e0b127","updated":"2014-07-18 17:20:09.000000000","message":"I didnt get the comment. The discovered properties will be part of node object under Node.properties. Lte me know if you meant something else.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Node-update"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":58,"context_line":"   with a new option --create-ports."}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_d4d5c943","line":55,"updated":"2014-07-18 14:58:29.000000000","message":"ditto","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Node-update"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":58,"context_line":"   with a new option --create-ports."}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_c0f50452","line":55,"in_reply_to":"baada198_d4d5c943","updated":"2014-07-18 17:20:09.000000000","message":"See above.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Json schema definition for the body data:"},{"line_number":130,"context_line":"-----------------------------------------"},{"line_number":131,"context_line":"The inventory data would be structured as below. The discovered data will "},{"line_number":132,"context_line":"be stored in Node.properties."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_b9185085","line":131,"updated":"2014-07-18 14:58:29.000000000","message":"please remove excess whitespace","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Json schema definition for the body data:"},{"line_number":130,"context_line":"-----------------------------------------"},{"line_number":131,"context_line":"The inventory data would be structured as below. The discovered data will "},{"line_number":132,"context_line":"be stored in Node.properties."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_6313625c","line":131,"in_reply_to":"baada198_b9185085","updated":"2014-07-18 17:20:09.000000000","message":"ok","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":131,"context_line":"The inventory data would be structured as below. The discovered data will "},{"line_number":132,"context_line":"be stored in Node.properties."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"{"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"{"},{"line_number":137,"context_line":"     \"inventory\" : {"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_d404e916","line":134,"updated":"2014-07-18 14:58:29.000000000","message":"maybe this is redundant","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"The inventory data would be structured as below. The discovered data will "},{"line_number":132,"context_line":"be stored in Node.properties."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"{"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"{"},{"line_number":137,"context_line":"     \"inventory\" : {"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_e32692b9","line":134,"in_reply_to":"baada198_d404e916","updated":"2014-07-18 17:20:09.000000000","message":"ok","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"      \"cpu\" : {"},{"line_number":148,"context_line":"       \"model_name\" : \"...\","},{"line_number":149,"context_line":"       \"frequency\" : \"...\","},{"line_number":150,"context_line":"       \"count\" : \"...\","},{"line_number":151,"context_line":"       \"cpu_arch\" : \"...\""},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_d4a069f6","line":149,"updated":"2014-07-18 14:58:29.000000000","message":"is it the max clock speed or the current one? I guess it\u0027s the max, probably it would be better to indicate this.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"      \"cpu\" : {"},{"line_number":148,"context_line":"       \"model_name\" : \"...\","},{"line_number":149,"context_line":"       \"frequency\" : \"...\","},{"line_number":150,"context_line":"       \"count\" : \"...\","},{"line_number":151,"context_line":"       \"cpu_arch\" : \"...\""},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_037aa687","line":149,"in_reply_to":"baada198_d4a069f6","updated":"2014-07-18 17:20:09.000000000","message":"I will remove this as it is not required in Node.properties as of now for the schedular.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6769e78a1ce739bcb1f72c9e5a66bd7a375c3d9b","unresolved":false,"context_lines":[{"line_number":170,"context_line":"     \"extra\" : {\"...\"},"},{"line_number":171,"context_line":"     \"node\"  : \"uuid\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"}"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_9a1c5bc4","line":173,"updated":"2014-07-18 15:19:13.000000000","message":"please provides units for everything","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":170,"context_line":"     \"extra\" : {\"...\"},"},{"line_number":171,"context_line":"     \"node\"  : \"uuid\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"}"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_43701ea4","line":173,"in_reply_to":"baada198_9a1c5bc4","updated":"2014-07-18 17:20:09.000000000","message":"Ok","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"}"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Alternatives"},{"line_number":178,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_d4094996","line":175,"updated":"2014-07-18 14:58:29.000000000","message":"ditto","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"}"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Alternatives"},{"line_number":178,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_8365d6e2","line":175,"in_reply_to":"baada198_d4094996","updated":"2014-07-18 17:20:09.000000000","message":"ok.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":232,"context_line":"* The NodesController.post() will be modified."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* The syntax will be:"},{"line_number":235,"context_line":"  @wsme_pecan.wsexpose(Node, types.boolean, body\u003dNode, status_code\u003d201)"},{"line_number":236,"context_line":"  def post(self, create_ports, node):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The URL for the REST API will be :"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_744a3dae","line":235,"updated":"2014-07-18 14:58:29.000000000","message":"don\u0027t you need to pass discover as well, which requires another types.boolean?","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":232,"context_line":"* The NodesController.post() will be modified."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* The syntax will be:"},{"line_number":235,"context_line":"  @wsme_pecan.wsexpose(Node, types.boolean, body\u003dNode, status_code\u003d201)"},{"line_number":236,"context_line":"  def post(self, create_ports, node):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The URL for the REST API will be :"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_03a1c6f7","line":235,"in_reply_to":"baada198_744a3dae","updated":"2014-07-18 17:20:09.000000000","message":"Yes, its a miss here, forgot to update it. Will do it.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* The syntax will be:"},{"line_number":235,"context_line":"  @wsme_pecan.wsexpose(Node, types.boolean, body\u003dNode, status_code\u003d201)"},{"line_number":236,"context_line":"  def post(self, create_ports, node):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The URL for the REST API will be :"},{"line_number":239,"context_line":"  POST /v1/nodes/?create_ports\u003dFalse\u0026discover\u003dTrue"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_74e15d9a","line":236,"updated":"2014-07-18 14:58:29.000000000","message":"discovery?","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* The syntax will be:"},{"line_number":235,"context_line":"  @wsme_pecan.wsexpose(Node, types.boolean, body\u003dNode, status_code\u003d201)"},{"line_number":236,"context_line":"  def post(self, create_ports, node):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The URL for the REST API will be :"},{"line_number":239,"context_line":"  POST /v1/nodes/?create_ports\u003dFalse\u0026discover\u003dTrue"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_23a24afc","line":236,"in_reply_to":"baada198_74e15d9a","updated":"2014-07-18 17:20:09.000000000","message":"ditto","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"eadc65f94143ad6f2af046bbc7f93ee2ca1744ed","unresolved":false,"context_lines":[{"line_number":303,"context_line":"Performance Impact"},{"line_number":304,"context_line":"------------------"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"None. As the rpcapi will be asynchronous in nature, the current"},{"line_number":307,"context_line":"node-create will see no impact."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_748f9dcd","line":306,"updated":"2014-07-18 14:58:29.000000000","message":"node-create is not done via rpcapi","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"10476fad71ecd5c2866e15ac8db54e990f259a4e","unresolved":false,"context_lines":[{"line_number":303,"context_line":"Performance Impact"},{"line_number":304,"context_line":"------------------"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"None. As the rpcapi will be asynchronous in nature, the current"},{"line_number":307,"context_line":"node-create will see no impact."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":24,"id":"baada198_a38c9a81","line":306,"in_reply_to":"baada198_748f9dcd","updated":"2014-07-18 17:20:09.000000000","message":"node-create is not done via rpcapi but discovery will be done via rpcapi.","commit_id":"f4b2c09c3a76e120bbb185c4095534d847fbcf46"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":61,"context_line":"   with a new option --createports."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":64,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_4d39b9a2","line":61,"updated":"2014-07-22 10:13:22.000000000","message":"shouldn\u0027t it be --create_ports or --create-ports?","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":58,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":61,"context_line":"   with a new option --createports."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":64,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_36e2fba0","line":61,"in_reply_to":"baada198_4d39b9a2","updated":"2014-07-22 16:07:32.000000000","message":"It was create_ports earlier but Chris proposed to make it create-ports but i couldnt make that work, hence changed the option name to createports. i can change it to create_ports. \ncreate-ports is not working for me. :( May be the option name change shall not be a problem to cover in the code review.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"The --createports option creates port for all the MAC addresses"},{"line_number":91,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":92,"context_line":"will not create a new port for that MAC address. The created"},{"line_number":93,"context_line":"port-ids can be added in the properties info field of the"},{"line_number":94,"context_line":"node. This will help user to identify which ports are auto-created"},{"line_number":95,"context_line":"with node-create or node-update."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_eded2df2","line":93,"updated":"2014-07-22 10:13:22.000000000","message":"I don\u0027t think it\u0027s a convenient way of detecting new ports. If you don\u0027t want to introduce smth like `newly_discovered` field on a port, better leave it along.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"-----------------------------------------------------"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":101,"context_line":"  added as part of ManagementInterface"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":104,"context_line":"        \"\"\"Get the hardware properties of a node."}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_6d791d82","line":101,"updated":"2014-07-22 10:13:22.000000000","message":"nit: for proper formatting put double colon in the end, like\n\n added as part of ManagementInterface::","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":98,"context_line":"-----------------------------------------------------"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":101,"context_line":"  added as part of ManagementInterface"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":104,"context_line":"        \"\"\"Get the hardware properties of a node."}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_b6e52ba6","line":101,"in_reply_to":"baada198_6d791d82","updated":"2014-07-22 16:07:32.000000000","message":"Ok.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        \"\"\""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* A new rpcapi is added discover_properties()."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def discover_attributes(self, context, node_obj, create_ports,"},{"line_number":115,"context_line":"        discover, topic\u003dNone):"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_ed8c4d83","line":112,"updated":"2014-07-22 10:13:22.000000000","message":"ditto","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        \"\"\""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* A new rpcapi is added discover_properties()."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def discover_attributes(self, context, node_obj, create_ports,"},{"line_number":115,"context_line":"        discover, topic\u003dNone):"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_d6ea9f73","line":112,"in_reply_to":"baada198_ed8c4d83","updated":"2014-07-22 16:07:32.000000000","message":"Ok","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  on the CLI, then the thread creates the ports for the discovered"},{"line_number":135,"context_line":"  MAC addresses."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Json schema definition for the body data:"},{"line_number":138,"context_line":"-----------------------------------------"},{"line_number":139,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":140,"context_line":"be stored in Node.properties."}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_adc0957e","line":137,"updated":"2014-07-22 10:13:22.000000000","message":"This heading is outdated, should be something like \"Hardware information structure\", as you no longer have and body here","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  on the CLI, then the thread creates the ports for the discovered"},{"line_number":135,"context_line":"  MAC addresses."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Json schema definition for the body data:"},{"line_number":138,"context_line":"-----------------------------------------"},{"line_number":139,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":140,"context_line":"be stored in Node.properties."}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_56f68f5e","line":137,"in_reply_to":"baada198_adc0957e","updated":"2014-07-22 16:07:32.000000000","message":"Ok.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":230,"context_line":"."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Optional arguments:"},{"line_number":233,"context_line":"  --createports  creates the ports automatically"},{"line_number":234,"context_line":"  --discover     discover automatically"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_0d998179","line":233,"updated":"2014-07-22 10:13:22.000000000","message":"will --createports require --discover? please state","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":230,"context_line":"."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Optional arguments:"},{"line_number":233,"context_line":"  --createports  creates the ports automatically"},{"line_number":234,"context_line":"  --discover     discover automatically"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_964ca79f","line":233,"in_reply_to":"baada198_0d998179","updated":"2014-07-22 16:07:32.000000000","message":"No and yes. \nNo because it can be run independently also if ports are already discovered.\nYes, because unless Node.properties.interface is populated, createports will not create port and will error out.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":243,"context_line":"* The syntax will be:"},{"line_number":244,"context_line":"  @wsme_pecan.wsexpose(Node, types.boolean, types.boolean, body\u003dNode, \\"},{"line_number":245,"context_line":"  status_code\u003d202)"},{"line_number":246,"context_line":"  def post(self, create_ports, discover, node):"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"* The URL for the REST API will be :"},{"line_number":249,"context_line":"  POST /v1/nodes/?create_ports\u003dFalse\u0026discover\u003dTrue"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_ed2b6d93","line":246,"updated":"2014-07-22 10:13:22.000000000","message":"nit: if discover is required for create_ports, it\u0027s a bit more logical to place it first.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":243,"context_line":"* The syntax will be:"},{"line_number":244,"context_line":"  @wsme_pecan.wsexpose(Node, types.boolean, types.boolean, body\u003dNode, \\"},{"line_number":245,"context_line":"  status_code\u003d202)"},{"line_number":246,"context_line":"  def post(self, create_ports, discover, node):"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"* The URL for the REST API will be :"},{"line_number":249,"context_line":"  POST /v1/nodes/?create_ports\u003dFalse\u0026discover\u003dTrue"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_961ae77a","line":246,"in_reply_to":"baada198_ed2b6d93","updated":"2014-07-22 16:07:32.000000000","message":"Its not required, but i will change the order.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":349,"context_line":"----------"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"* Add a new option to node-create and node-update for automatic"},{"line_number":352,"context_line":"  port-create (ironic-client changes)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":355,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_7f1d4062","line":352,"updated":"2014-07-22 10:13:22.000000000","message":"again nitpicking, but this can\u0027t be the first step :)","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":349,"context_line":"----------"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"* Add a new option to node-create and node-update for automatic"},{"line_number":352,"context_line":"  port-create (ironic-client changes)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":355,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_140c103b","line":352,"in_reply_to":"baada198_7f1d4062","updated":"2014-07-22 16:07:32.000000000","message":"Ok. :) Will just update it","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":368,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":371,"context_line":"The test suites for tempest would be considered later."},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"Documentation Impact"},{"line_number":374,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_9f7054a6","line":371,"updated":"2014-07-22 10:13:22.000000000","message":"actually you should state here, that tempest tests can be written for particular implementations","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":368,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"Unit tests will be added conforming to ironic testing requirements."},{"line_number":371,"context_line":"The test suites for tempest would be considered later."},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"Documentation Impact"},{"line_number":374,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_343754e6","line":371,"in_reply_to":"baada198_9f7054a6","updated":"2014-07-22 16:07:32.000000000","message":"Ok. But actually i am not sure if tempest requires the hardware to be placed in openstack network. Tempests can be done for it if really possible.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c91da76f5f4aac0b833e3ec80907ac1bc849811b","unresolved":false,"context_lines":[{"line_number":379,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"* Generic hardware discovery:"},{"line_number":382,"context_line":"  https://review.openstack.org/#/c/102565"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_dfa80cdc","line":382,"updated":"2014-07-22 10:13:22.000000000","message":"please delete the link, it\u0027s abandoned","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f06ac0237c7f68694acc68d97f72104f1c4b8d96","unresolved":false,"context_lines":[{"line_number":379,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"* Generic hardware discovery:"},{"line_number":382,"context_line":"  https://review.openstack.org/#/c/102565"}],"source_content_type":"text/x-rst","patch_set":27,"id":"baada198_d47618a3","line":382,"in_reply_to":"baada198_dfa80cdc","updated":"2014-07-22 16:07:32.000000000","message":"Ok, but i kept the link because it had the data structure format for hardware information.","commit_id":"a6e2c65eb819a2bd9711d3d149acec2196beb94d"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"07fd6a432e1b3abfae5c337315a7a93902cff956","unresolved":false,"context_lines":[{"line_number":64,"context_line":"----------------------------------------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* ironic node-create -d \u003cdriver_name\u003e -i \u003ckey\u003dvalue\u003e ..."},{"line_number":67,"context_line":"  -i \u003ckey\u003dvalue\u003e --discover"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"It creates the node with discovered properties populated in the node"},{"line_number":70,"context_line":"properties and extra info if driver_info data is provided on the"}],"source_content_type":"text/x-rst","patch_set":28,"id":"baada198_e9fdf7b2","line":67,"updated":"2014-07-22 23:46:44.000000000","message":"Are these key\u0027s in driver_info? It is a bit unclear. So if I specify \"-i somekey\u003dsomevalue\" I\u0027ll get a node back with driver_info[\u0027somekey\u0027] \u003d\u003d \u0027somevalue\u0027?","commit_id":"48ddbadeb615fb650292fbed059f665abcb55a21"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ea9b240f83095710a6a55197f042edcd8d4a4d13","unresolved":false,"context_lines":[{"line_number":64,"context_line":"----------------------------------------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* ironic node-create -d \u003cdriver_name\u003e -i \u003ckey\u003dvalue\u003e ..."},{"line_number":67,"context_line":"  -i \u003ckey\u003dvalue\u003e --discover"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"It creates the node with discovered properties populated in the node"},{"line_number":70,"context_line":"properties and extra info if driver_info data is provided on the"}],"source_content_type":"text/x-rst","patch_set":28,"id":"baada198_ed017c6e","line":67,"in_reply_to":"baada198_e9fdf7b2","updated":"2014-07-23 04:33:45.000000000","message":"yes. -i option is for driver_info.","commit_id":"48ddbadeb615fb650292fbed059f665abcb55a21"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2c6a49ef28c8fe78e0240ddcf54c293ffde622b4","unresolved":false,"context_lines":[{"line_number":231,"context_line":"  --discover     discover automatically"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"The --createports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --createports will create the ports only if the "},{"line_number":235,"context_line":"Node.properties.interfaces.mac_address are populated with --discover at"},{"line_number":236,"context_line":"any point of time."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"baada198_80619313","line":234,"updated":"2014-07-23 10:16:11.000000000","message":"nit: redundant whitespace","commit_id":"48ddbadeb615fb650292fbed059f665abcb55a21"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* NIC(s) MAC address"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A driver can decide to discover more properties than listed above."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_f3f3409e","line":38,"updated":"2014-07-29 14:57:10.000000000","message":"As discussed on the IRC meeting 2 weeks ago, it should only add more properties if it will be used by Ironic. Otherwise it should restrict itself to what is required for the scheduler. This info might worth adding to this paragraph.\n\nhttp://eavesdrop.openstack.org/meetings/ironic/2014/ironic.2014-07-14-19.00.log.html","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"2ec08c29bb8de5bae1a1d7f8a524a1f3771866d3","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* NIC(s) MAC address"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A driver can decide to discover more properties than listed above."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_acdb66e8","line":38,"in_reply_to":"baada198_3e4b2d60","updated":"2014-08-04 12:33:12.000000000","message":"I did not comment on the list above. I commented on \"more properties\" which should only be added in the case I mentioned.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* NIC(s) MAC address"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A driver can decide to discover more properties than listed above."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_3e4b2d60","line":38,"in_reply_to":"baada198_f3f3409e","updated":"2014-08-01 17:35:59.000000000","message":"The above list contains those fields only which are directly or indirectly required by Ironic. NIC\u0027s mac addresses are required for port creation as a manual step which is planned to be automated via this proposal.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":51,"context_line":"   with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_131fd4b9","line":48,"updated":"2014-07-29 14:57:10.000000000","message":"I commented previously that  this ordered list belongs under the node-create list item. Please add indentation to indicate it. \n\nYou can see the output of the rst either by running the tox command, or by checking the build: http://docs-draft.openstack.org/51/100951/29/check/gate-ironic-specs-docs/cfede95/doc/build/html/specs/juno/discover_hardware_properties.html","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":51,"context_line":"   with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_be657de3","line":48,"in_reply_to":"baada198_131fd4b9","updated":"2014-08-01 17:35:59.000000000","message":"I ran tox but tox disnt gave me any error for it. but i will consider your comment.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"2ec08c29bb8de5bae1a1d7f8a524a1f3771866d3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"* Node-create:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. Discovers the hardware properties with the new option --discover if"},{"line_number":48,"context_line":"   driver_info fields are provided."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":51,"context_line":"   with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_ec971ee9","line":48,"in_reply_to":"baada198_be657de3","updated":"2014-08-04 12:33:12.000000000","message":"It doesn\u0027t give error. It just not displayed correctly in the html output.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* Node-update"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":61,"context_line":"   with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_53194cd0","line":58,"updated":"2014-07-29 14:57:10.000000000","message":"Ditto","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"2ec08c29bb8de5bae1a1d7f8a524a1f3771866d3","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* Node-update"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":61,"context_line":"   with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_4c880ac6","line":58,"in_reply_to":"baada198_3e808d48","updated":"2014-08-04 12:33:12.000000000","message":"Ditto.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* Node-update"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"1. Discovers the hardware properties with the new option --discover."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":61,"context_line":"   with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_3e808d48","line":58,"in_reply_to":"baada198_53194cd0","updated":"2014-08-01 17:35:59.000000000","message":"I ran tox but tox disnt gave me any error for it. but i will consider your comment.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5ec2279b29dcb892affe8dc0ee77ac8ff2974dea","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        :param task: a task from TaskManager."},{"line_number":104,"context_line":"        :returns: a dict containing hardware information"},{"line_number":105,"context_line":"            or error if driver does not support the feature."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_6983ca55","line":105,"updated":"2014-07-29 10:36:17.000000000","message":"Error should be specified like:\n\n :raises: NotImplementedError if driver does not support the feature","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        :param task: a task from TaskManager."},{"line_number":104,"context_line":"        :returns: a dict containing hardware information"},{"line_number":105,"context_line":"            or error if driver does not support the feature."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_3ececdb7","line":105,"in_reply_to":"baada198_6983ca55","updated":"2014-08-01 17:35:59.000000000","message":"Ok.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5ec2279b29dcb892affe8dc0ee77ac8ff2974dea","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        \"\"\"Discovers the node\u0027s attributes asynchronously."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        :param context: request context."},{"line_number":116,"context_line":"        :param node_obj: a node object."},{"line_number":117,"context_line":"        :param topic: RPC topic, Defaults to self.topic."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_098c0e80","line":116,"updated":"2014-07-29 10:36:17.000000000","message":"2 parameters missing","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        \"\"\"Discovers the node\u0027s attributes asynchronously."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        :param context: request context."},{"line_number":116,"context_line":"        :param node_obj: a node object."},{"line_number":117,"context_line":"        :param topic: RPC topic, Defaults to self.topic."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_5ed3815e","line":116,"in_reply_to":"baada198_098c0e80","updated":"2014-08-01 17:35:59.000000000","message":"OK. :)","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"{"},{"line_number":140,"context_line":"     \"inventory\" : {"},{"line_number":141,"context_line":"      \"interfaces\" : [{"},{"line_number":142,"context_line":"         \"name\" : \"...\","},{"line_number":143,"context_line":"         \"mac_address\" : \"...\","},{"line_number":144,"context_line":"         \"ip_address\": \"...\","}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_3fb2d949","line":141,"updated":"2014-07-29 14:57:10.000000000","message":"Please use indentation consistently","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"2ec08c29bb8de5bae1a1d7f8a524a1f3771866d3","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"{"},{"line_number":140,"context_line":"     \"inventory\" : {"},{"line_number":141,"context_line":"      \"interfaces\" : [{"},{"line_number":142,"context_line":"         \"name\" : \"...\","},{"line_number":143,"context_line":"         \"mac_address\" : \"...\","},{"line_number":144,"context_line":"         \"ip_address\": \"...\","}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_aca0c636","line":141,"in_reply_to":"baada198_1e4ca93e","updated":"2014-08-04 12:33:12.000000000","message":"It\u0027s not consistent. In the previous line, you used 4 spaces. In this line, you used 1 space.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"{"},{"line_number":140,"context_line":"     \"inventory\" : {"},{"line_number":141,"context_line":"      \"interfaces\" : [{"},{"line_number":142,"context_line":"         \"name\" : \"...\","},{"line_number":143,"context_line":"         \"mac_address\" : \"...\","},{"line_number":144,"context_line":"         \"ip_address\": \"...\","}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_1e4ca93e","line":141,"in_reply_to":"baada198_3fb2d949","updated":"2014-08-01 17:35:59.000000000","message":"This indentation is consistent. Please see again. interfaces, cpu, disks, memory are supposed to be part of inventory.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5ec2279b29dcb892affe8dc0ee77ac8ff2974dea","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"     },"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"     \"extra\" : {\"...\"},"},{"line_number":173,"context_line":"     \"node\"  : \"uuid\""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_699caac0","line":172,"updated":"2014-07-29 10:36:17.000000000","message":"What\u0027s the use case of `extra` here?","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"     },"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"     \"extra\" : {\"...\"},"},{"line_number":173,"context_line":"     \"node\"  : \"uuid\""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_1efae9b9","line":172,"in_reply_to":"baada198_699caac0","updated":"2014-08-01 17:35:59.000000000","message":"i will remove it.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5ec2279b29dcb892affe8dc0ee77ac8ff2974dea","unresolved":false,"context_lines":[{"line_number":170,"context_line":"     },"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"     \"extra\" : {\"...\"},"},{"line_number":173,"context_line":"     \"node\"  : \"uuid\""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_e9a7da07","line":173,"updated":"2014-07-29 10:36:17.000000000","message":"node is not needed\n\nalso this struct has more fields, that won\u0027t be used for now. I suggest stripping it to only what is required for properties, namely cpu count and arch, memory size, disk size, and mac\u0027s for create_ports.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":170,"context_line":"     },"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"     \"extra\" : {\"...\"},"},{"line_number":173,"context_line":"     \"node\"  : \"uuid\""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"}"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_9e0ef9e2","line":173,"in_reply_to":"baada198_e9a7da07","updated":"2014-08-01 17:35:59.000000000","message":"ok.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                          [-p \u003ckey\u003dvalue\u003e] [-e \u003ckey\u003dvalue\u003e] [--create_ports]"},{"line_number":213,"context_line":"                          [--discover]"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"."},{"line_number":216,"context_line":"."},{"line_number":217,"context_line":"."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_ff9b0162","line":215,"updated":"2014-07-29 14:57:10.000000000","message":"Are these extra empty lines are required?","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e2217b5a309f006efd5795856fdc4260c1c7dcf1","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                          [-p \u003ckey\u003dvalue\u003e] [-e \u003ckey\u003dvalue\u003e] [--create_ports]"},{"line_number":213,"context_line":"                          [--discover]"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"."},{"line_number":216,"context_line":"."},{"line_number":217,"context_line":"."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_620dd534","line":215,"in_reply_to":"baada198_dec87177","updated":"2014-08-04 12:57:21.000000000","message":"Then why are these 3 lines with a single dot in each are required?","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                          [-p \u003ckey\u003dvalue\u003e] [-e \u003ckey\u003dvalue\u003e] [--create_ports]"},{"line_number":213,"context_line":"                          [--discover]"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"."},{"line_number":216,"context_line":"."},{"line_number":217,"context_line":"."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_dec87177","line":215,"in_reply_to":"baada198_ff9b0162","updated":"2014-08-01 17:35:59.000000000","message":"These are not extra lines. I removed rest of the description where it describes -c , -d , -i and other options.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":217,"context_line":"."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"  --create_ports         creates the ports automatically"},{"line_number":220,"context_line":"  --discover            discover automatically"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"usage: ironic node-update [--create_ports] [--discover]"},{"line_number":223,"context_line":"                          \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_bfffc965","line":220,"updated":"2014-07-29 14:57:10.000000000","message":"Could you please indent the description like the previous line?","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":217,"context_line":"."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"  --create_ports         creates the ports automatically"},{"line_number":220,"context_line":"  --discover            discover automatically"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"usage: ironic node-update [--create_ports] [--discover]"},{"line_number":223,"context_line":"                          \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_de8f912c","line":220,"in_reply_to":"baada198_bfffc965","updated":"2014-08-01 17:35:59.000000000","message":"ok.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":222,"context_line":"usage: ironic node-update [--create_ports] [--discover]"},{"line_number":223,"context_line":"                          \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"."},{"line_number":226,"context_line":"."},{"line_number":227,"context_line":"."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_3fa659ac","line":225,"updated":"2014-07-29 14:57:10.000000000","message":"ditto","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":222,"context_line":"usage: ironic node-update [--create_ports] [--discover]"},{"line_number":223,"context_line":"                          \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"."},{"line_number":226,"context_line":"."},{"line_number":227,"context_line":"."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_fe98d577","line":225,"in_reply_to":"baada198_3fa659ac","updated":"2014-08-01 17:35:59.000000000","message":"ditto","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e2217b5a309f006efd5795856fdc4260c1c7dcf1","unresolved":false,"context_lines":[{"line_number":222,"context_line":"usage: ironic node-update [--create_ports] [--discover]"},{"line_number":223,"context_line":"                          \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"."},{"line_number":226,"context_line":"."},{"line_number":227,"context_line":"."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_4239b1d6","line":225,"in_reply_to":"baada198_fe98d577","updated":"2014-08-04 12:57:21.000000000","message":"ditto :-)","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Optional arguments:"},{"line_number":230,"context_line":"  --create_ports  creates the ports automatically"},{"line_number":231,"context_line":"  --discover     discover automatically"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"The --create_ports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --create_ports will create the ports only if the"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_1feef5b5","line":231,"updated":"2014-07-29 14:57:10.000000000","message":"ditto","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Optional arguments:"},{"line_number":230,"context_line":"  --create_ports  creates the ports automatically"},{"line_number":231,"context_line":"  --discover     discover automatically"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"The --create_ports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --create_ports will create the ports only if the"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_1e966949","line":231,"in_reply_to":"baada198_1feef5b5","updated":"2014-08-01 17:35:59.000000000","message":"ditto","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"90a675c0f09bd991c78f70e5a40db25c8b37cc98","unresolved":false,"context_lines":[{"line_number":233,"context_line":"The --create_ports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --create_ports will create the ports only if the"},{"line_number":235,"context_line":"Node.properties.interfaces.mac_address are populated with --discover at"},{"line_number":236,"context_line":"any point of time."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"REST API impact"},{"line_number":239,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_d2399ad0","line":236,"updated":"2014-07-23 12:31:00.000000000","message":"Will you make 1st \u003cpath\u003dvalue\u003e pair no longer required, if discovery is specified? I can imagine people calling:\n\n ironic node-update \u003cid\u003e --discover\n\nbut it\u0027s unlikely to be possible right now","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":233,"context_line":"The --create_ports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --create_ports will create the ports only if the"},{"line_number":235,"context_line":"Node.properties.interfaces.mac_address are populated with --discover at"},{"line_number":236,"context_line":"any point of time."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"REST API impact"},{"line_number":239,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_9e59998f","line":236,"in_reply_to":"baada198_17e760ad","updated":"2014-08-01 17:35:59.000000000","message":"Yes it looks strange but that will require change in node-update syntax which is not the scope of this spec. \nAs of now, the alternative is that user can specify the dummy replace of any of the field with the same value along with discover or create-ports.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5ec2279b29dcb892affe8dc0ee77ac8ff2974dea","unresolved":false,"context_lines":[{"line_number":233,"context_line":"The --create_ports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --create_ports will create the ports only if the"},{"line_number":235,"context_line":"Node.properties.interfaces.mac_address are populated with --discover at"},{"line_number":236,"context_line":"any point of time."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"REST API impact"},{"line_number":239,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_17e760ad","line":236,"in_reply_to":"baada198_4d77a408","updated":"2014-07-29 10:36:17.000000000","message":"it looks a bit strange. what if a user only want to create ports for a node, what command should be used?","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"bf98002893c127f1e418ef5360086bfcb91c62b6","unresolved":false,"context_lines":[{"line_number":233,"context_line":"The --create_ports option do not require discover to be used mandatorily."},{"line_number":234,"context_line":"The --create_ports will create the ports only if the"},{"line_number":235,"context_line":"Node.properties.interfaces.mac_address are populated with --discover at"},{"line_number":236,"context_line":"any point of time."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"REST API impact"},{"line_number":239,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_4d77a408","line":236,"in_reply_to":"baada198_d2399ad0","updated":"2014-07-23 17:47:42.000000000","message":"Yes you are correct, I am not making the mandatory arguments optional for rnode-update as of now. But it can be done later as a seperate fix.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":342,"context_line":"-----------"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"Primary assignee:"},{"line_number":345,"context_line":"    Nisha Agarwal"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Other Contributors:"},{"line_number":348,"context_line":"    Wanyen"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_5f84ed0d","line":345,"updated":"2014-07-29 14:57:10.000000000","message":"You need to include launchpad ids but this id doesn\u0027t exists.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":342,"context_line":"-----------"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"Primary assignee:"},{"line_number":345,"context_line":"    Nisha Agarwal"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Other Contributors:"},{"line_number":348,"context_line":"    Wanyen"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_beff3d34","line":345,"in_reply_to":"baada198_5f84ed0d","updated":"2014-08-01 17:35:59.000000000","message":"When i post the new patch this name only gets reflected in the IRC. I can change it to just Nisha. How do you search the id?\nOr do you mean the mail id? You can even see the name in the submittal here.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"2ec08c29bb8de5bae1a1d7f8a524a1f3771866d3","unresolved":false,"context_lines":[{"line_number":342,"context_line":"-----------"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"Primary assignee:"},{"line_number":345,"context_line":"    Nisha Agarwal"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Other Contributors:"},{"line_number":348,"context_line":"    Wanyen"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_7f180e76","line":345,"in_reply_to":"baada198_beff3d34","updated":"2014-08-04 12:33:12.000000000","message":"When you login to launchpad and you click on your name in the right top corner of the screen, you will see your Launchpad Id.\n\nThat\u0027s what is required here: https://github.com/openstack/ironic-specs/blob/master/specs/template.rst","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"e4e46b1268130a6f0563a2e8aba7591fbc3306ae","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    Nisha Agarwal"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Other Contributors:"},{"line_number":348,"context_line":"    Wanyen"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"Work Items"},{"line_number":351,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_3f981975","line":348,"updated":"2014-07-29 14:57:10.000000000","message":"Ditto","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cc801de62f1614b9933aef11ce4328952b3e8f31","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    Nisha Agarwal"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Other Contributors:"},{"line_number":348,"context_line":"    Wanyen"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"Work Items"},{"line_number":351,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_de8311a7","line":348,"in_reply_to":"baada198_3f981975","updated":"2014-08-01 17:35:59.000000000","message":"This one accepted. I will change it to full name.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"2ec08c29bb8de5bae1a1d7f8a524a1f3771866d3","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    Nisha Agarwal"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Other Contributors:"},{"line_number":348,"context_line":"    Wanyen"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"Work Items"},{"line_number":351,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"baada198_5f342ade","line":348,"in_reply_to":"baada198_de8311a7","updated":"2014-08-04 12:33:12.000000000","message":"This one also needs to be the Launchpad-id.","commit_id":"f0214a238f294b08e77325ce6134871fa508091f"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"8f2a825ecdf19f08ce4afd9dd6136dfd64bbe26e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Blueprint URL:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/ironic/+spec/ironic-node-properties-discovery"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This proposal adds the ability to perform out-of-band"},{"line_number":15,"context_line":"node property discovery and automatically update"},{"line_number":16,"context_line":"node properties during ironic node-create or node-update"},{"line_number":17,"context_line":"process when driver_info fields are provided in the command line"}],"source_content_type":"text/x-rst","patch_set":30,"id":"baada198_17662b29","line":14,"updated":"2014-08-04 02:12:47.000000000","message":"Which protocol we are using to do out-of-band discovery? IPMI or others?","commit_id":"0197b4b6d5b97ad8e6c1b7b93402aaa54bd0d08d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"a2f98505e70074e023ee6b99ec978dc6ca9cf4d8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Blueprint URL:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/ironic/+spec/ironic-node-properties-discovery"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This proposal adds the ability to perform out-of-band"},{"line_number":15,"context_line":"node property discovery and automatically update"},{"line_number":16,"context_line":"node properties during ironic node-create or node-update"},{"line_number":17,"context_line":"process when driver_info fields are provided in the command line"}],"source_content_type":"text/x-rst","patch_set":30,"id":"baada198_25a02ba4","line":14,"in_reply_to":"baada198_17662b29","updated":"2014-08-05 04:31:16.000000000","message":"This is generic spec where no protocol is required. The protocol actually lies with the driver specific implementation. We intend to implement it with iLO which is already a different spec and depends on this spec.","commit_id":"0197b4b6d5b97ad8e6c1b7b93402aaa54bd0d08d"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"8f2a825ecdf19f08ce4afd9dd6136dfd64bbe26e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"* Node-create:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  1. Discovers the hardware properties with the new option --discover if"},{"line_number":46,"context_line":"     driver_info fields are provided."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":49,"context_line":"     with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":30,"id":"baada198_b7a57f49","line":46,"updated":"2014-08-04 02:12:47.000000000","message":"If \u0027--discover\u0027 options is specified, if the existing driver_info will be overwritten by the new values populated by discovering logic? If this is case, should we prompt user to accept or not?","commit_id":"0197b4b6d5b97ad8e6c1b7b93402aaa54bd0d08d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"a2f98505e70074e023ee6b99ec978dc6ca9cf4d8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"* Node-create:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  1. Discovers the hardware properties with the new option --discover if"},{"line_number":46,"context_line":"     driver_info fields are provided."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":49,"context_line":"     with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":30,"id":"baada198_c58e8f31","line":46,"in_reply_to":"baada198_b7a57f49","updated":"2014-08-05 04:31:16.000000000","message":"The discovery gets the values for cpus, memory , NICs and disks. It doesnt get any driver_info related values so how will it overwrite?","commit_id":"0197b4b6d5b97ad8e6c1b7b93402aaa54bd0d08d"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"8f2a825ecdf19f08ce4afd9dd6136dfd64bbe26e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"     driver_info fields are provided."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":49,"context_line":"     with a new option --create_ports."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"This proposal makes node-create asynchronous when discover and create_ports"},{"line_number":52,"context_line":"options are provided."}],"source_content_type":"text/x-rst","patch_set":30,"id":"baada198_97fcfb40","line":49,"updated":"2014-08-04 02:12:47.000000000","message":"Which ports to be discovered, IPMI/Manage ports or normal NIC ports?\n\nI understand it is difficult to find the IPMI/Manage MAC address, how can we implement, via bios accessing? Any more details in this spec?","commit_id":"0197b4b6d5b97ad8e6c1b7b93402aaa54bd0d08d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"a2f98505e70074e023ee6b99ec978dc6ca9cf4d8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"     driver_info fields are provided."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":49,"context_line":"     with a new option --create_ports."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"This proposal makes node-create asynchronous when discover and create_ports"},{"line_number":52,"context_line":"options are provided."}],"source_content_type":"text/x-rst","patch_set":30,"id":"baada198_6594e335","line":49,"in_reply_to":"baada198_97fcfb40","updated":"2014-08-05 04:31:16.000000000","message":"Its the ports associated with the node. iLO does provide this info. \nIPMI also should be able to get them though may be not through direct commands. But when this port-creation is done manually, how does IPMI provide the MAC addresses? May be IPMI can use the same mechanism to find the associated MACs.","commit_id":"0197b4b6d5b97ad8e6c1b7b93402aaa54bd0d08d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Today, Ironic is unable to automatically detect node properties"},{"line_number":24,"context_line":"when issuing \u0027node-create\u0027 or \u0027node-update\u0027."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Some of the properties which may be of interest:"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_cf0e4c33","line":24,"updated":"2014-08-07 10:34:43.000000000","message":"node-create and node-update are CLI commands which are translated into a POST and PATCH, respectively, HTTP requests to talk to the Ironic API, I think the spec should talk about the changes in the API itself and not on the CLI commands.\n\nThe CLI is just a \"convenient wrapper\" around our API","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* Node-create:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  1. Discovers the hardware properties with the new option --discover if"},{"line_number":44,"context_line":"     driver_info fields are provided."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":47,"context_line":"     with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_cfaaccd2","line":44,"updated":"2014-08-07 10:34:43.000000000","message":"How it will be translated to our API?\n\nPOST v1/nodes/?discovery\u003dTrue ?","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":44,"context_line":"     driver_info fields are provided."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":47,"context_line":"     with a new option --create_ports."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"This proposal makes node-create asynchronous when discover and create_ports"},{"line_number":50,"context_line":"options are provided."}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_af7bd878","line":47,"updated":"2014-08-07 10:34:43.000000000","message":"How it will be translated to our API?\n\nPOST v1/nodes/?discovery\u003dTrue\u0026create_ports\u003dTrue ?\n\ncreate_ports can only specified when discovery \u003d\u003d True? or it can work standalone?","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":47,"context_line":"     with a new option --create_ports."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"This proposal makes node-create asynchronous when discover and create_ports"},{"line_number":50,"context_line":"options are provided."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Node-update"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_8fc6149b","line":50,"updated":"2014-08-07 10:34:43.000000000","message":"Making the call async would involve more changes. Being async usually means we need to provide a way to the user to track the request.\n\nFor e.g, user ask to create a node and discovery the properties, API will then return HTTP 202 (Accepted) when the request is accepted. Now how the user now that the creation really succeeded or failed or is completed? If the node is being created asynchrounosly no UUID of the new node will be returned by that call, so the user will have no idea where is the new node and so on.","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":49,"context_line":"This proposal makes node-create asynchronous when discover and create_ports"},{"line_number":50,"context_line":"options are provided."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Node-update"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Discovers the hardware properties with the new option --discover."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_cf1bac1b","line":52,"updated":"2014-08-07 10:34:43.000000000","message":"This will make PATCH async as well?","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Node-update"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Discovers the hardware properties with the new option --discover."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":57,"context_line":"     with a new option --create_ports."}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_4f287c36","line":54,"updated":"2014-08-07 10:34:43.000000000","message":"ditto how it\u0027s going to be translated to the REST API","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Discovers the hardware properties with the new option --discover."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":57,"context_line":"     with a new option --create_ports."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The use cases covered as part of this proposal are:"}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_8f229452","line":56,"updated":"2014-08-07 10:34:43.000000000","message":"ditto how it\u0027s going to be translated to the REST API","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"  It discovers the hardware properties for the node again."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* ironic node-update \u003cnode_uuid\u003e --discover --create_ports"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":84,"context_line":"  with the returned NIC MAC addresses."}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_cff48cd2","line":81,"updated":"2014-08-07 10:34:43.000000000","message":"This all should talk about the REST API no CLI commands","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"The discovery can be initaited by exposing discovery and automatic port"},{"line_number":171,"context_line":"creation as the sub-element of nodes, say management. But this will"},{"line_number":172,"context_line":"require two calls to be made/initated by CLIs, example for node-create,"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"1. POST /v1/nodes : this will create the node and return it to CLI."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_cf900c52","line":172,"updated":"2014-08-07 10:34:43.000000000","message":"I think that the alternative described here is better than the main proposal. Breaking it in two commands seems more sane and will require minimal changes to our API (instead of converting node creation/update to async, which will require a lot of plumbing work)\n\nAnd as you described, the CLI can conveniently wrap both calls.","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"1. POST /v1/nodes : this will create the node and return it to CLI."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"2. PUT /v1/nodes/\u003cnode_uuid\u003e/management :  This is called after POST."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"And after above two steps CLI returns the node object to user."},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_6fdc6018","line":176,"updated":"2014-08-07 10:34:43.000000000","message":"What is the final URI?\n\nPUT /v1/nodes/\u003cnode_uuid\u003e/management/discovery ?\n\nWill it be async?\n\n...\n\nAn idea:\n\nCould be something like PUT {\u0027discovery\u0027: True, \u0027create_ports\u0027: True} /v1/nodes/\u003cnode_uuid\u003e/management/discovery\n\n Returns: 202 (Accepted) if succeed\n HTTP Location header: http://127.0.0.1/v1/nodes/\u003cnode_uuid\u003e","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5793537b531fef16f6728383e7c3576b7aeb6157","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"The auto-discovery can also be used for discovering node properties"},{"line_number":184,"context_line":"but it also doesnt provide the ability to discover properties at"},{"line_number":185,"context_line":"node-create and node-update."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Data model impact"},{"line_number":188,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":31,"id":"baada198_8fcd3433","line":185,"updated":"2014-08-07 10:34:43.000000000","message":"I don\u0027t know if I understood this bit.\n\nCombining both HTTP requests makes it possible to discovery as part of the CLI commands node-create and node-update","commit_id":"5e377a3eb7a52520d2dd2b24cb62b052afa03bf5"}],"specs/kilo/ironic-node-properties-discovery.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ffc1546d5dbe36ba0d43407e86f82f4af9d44388","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"9aa7fdbe_1b8c5e7f","line":55,"updated":"2014-10-29 08:37:07.000000000","message":"One more issue not covered here: how to signal a successful/unsuccessful introspection to a user? When I was thinking about it, I suggested adding some flag to Node.extra (for success it was newly_discovered, now I also have on_discovery during discovery process, but you can suggest something else). Otherwise from the user perspective the request is going into nothing and something _may_ just happen after some amount of time.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"8472a53de13fffd2ef8940bbd8a8aa37293f6200","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_d5e27c9e","line":55,"in_reply_to":"7a8c0949_2fb1afe1","updated":"2014-11-01 16:43:19.000000000","message":"Thanks for the illustrative comment. It can be done as two steps, \nBut few questions:\n- Why applying shall be a second step? Why it shouldnt be done automatically? Do you mean admin might want to check the returned values before applying? If thats the case then it is same as what we do today i.e check the hardware manually (with some mechanism) and then update the node with the manually got properties. \n\nThe proposal is to eliminate the manual step for ironic node before starting deploy.\n\n- Say, assuming i agree for applying to be a second step. then why do we need a new CLI. It can be done with node-update.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"6fa29d7d1868e15323cf01091867fe723f027896","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_613d4ebb","line":55,"in_reply_to":"7a8c0949_3b461c24","updated":"2014-11-06 17:47:18.000000000","message":"Agree \"not complicate it further\" :)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_e5ca916d","line":55,"in_reply_to":"7a8c0949_3b461c24","updated":"2014-11-10 08:54:58.000000000","message":"Agreed , lets not make it more complicated. :)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"a93824145336e7d08a04600c33f8a5caf8ac2260","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_ba77833a","line":55,"in_reply_to":"7a8c0949_524a09ad","updated":"2014-11-05 07:07:28.000000000","message":"The flexibility to overwrite values manually can be achieved via node-update as we do it today.\nNode-update is not proposed to do discovery. If it turns out to be two steps proposal, then apply can be done via node-update. or it can be a new option in the CLI node-discover-properties. I am fine whichever way community accepts it :)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_25c5795b","line":55,"in_reply_to":"7a8c0949_613d4ebb","updated":"2014-11-10 08:54:58.000000000","message":":)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_3b461c24","line":55,"in_reply_to":"7a8c0949_ba77833a","updated":"2014-11-06 15:09:36.000000000","message":"Discovery is a complicated topic already, let\u0027s not complicate it further :) While I\u0027m pretty sure we\u0027ll have kind of this one day, I\u0027m not convinced we have to put also these possibilities in one spec. Re question I raised, we finally had a consensus on the summit, please see my top comment for it.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"6ee386e4ac066395109776d7e4492a1c935df309","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_524a09ad","line":55,"in_reply_to":"7a8c0949_d5e27c9e","updated":"2014-11-04 19:42:41.000000000","message":"Nisha, I begin thought of this two-steps method because the issue Dmitry Tanasur\u0027s raised. And I think the benefit of the two-steps comparing to what we do today are:\n\na) Logically it\u0027s more clear.\n\nb) We can provide the automatically apply as in my previous statement. With the option of --discover in \"ironic node-create\" command. And yes, we should also support auto-apply in \u0027ironic node-discover-properties‘ commands with another operations (maybe True by default).\n\nc) With two steps, we still provide the flexibility, that admin can overwrite the value detected by driver. IMHO, flexibility is always good if it does not add to much complex and if it has good default options.\n\nd) It will resolve Dmitry Tanasur\u0027s issue clearly.\n\nI\u0027m not sure if we want to use the node-update to achive the discover. I think I care more about the RestAPI endpoint design.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_62ba10e3","line":55,"in_reply_to":"9aa7fdbe_1b8c5e7f","updated":"2014-10-30 14:13:36.000000000","message":"How do you propose to add it? should it be a new element to the node object? or should be one more element in the properties dictionary? I can add it either way.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"95c558510156cf09185b81be51d6d62b44500a13","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  1. Discovers the hardware properties."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":55,"context_line":"     automatically after the NICS are discovered with above step."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The use cases covered as part of this proposal are:"},{"line_number":58,"context_line":"----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_2fb1afe1","line":55,"in_reply_to":"9aa7fdbe_1b8c5e7f","updated":"2014-11-01 00:02:08.000000000","message":"IMHO, adding a flag in Node.extra to show the result of a command is something tricky. The best solution is something like task state, but we have no such support in Ironic yet.\n\n IMHO,discovering properties is two steps, one is discover the properties, the second is to apply/confirm the properties to the node, something like resize/confirm_resize. So is it possible to implement this as two steps also?\n\na) A new dict field added to the node Object, as \"discover_properties\". A special/reserved  key in this dict is the status of the discovering. It can be \"No-support, No-Discovering, Discovering, Discovered, Applying, Applied\". No-support means the hardware does not support self-discovering. No-Discovering means there is no request for discovering, mainly for legacy usage. Other status is quite straightforward. If the \u0027node-discover-properties\" is a sync result, it will become \"Discovered\", otherwise, it will be \"Discovering\".\n\nb) User discover the property with \u0027ironic node-discover-proerties \u003cUUID\u003e\n\nc) After the state becomes \u0027Discovered\u0027, end user can try to apply the discoveried properties to the node with \"ironic node-apply-properties \u003cUUID\u003e property-list\". User can select the properties to be applied. When the step started, the state becomes \u0027applying\u0027. And the operation will copy the properties from the discover_properties to the properties field. After this step, the special key will become \"Applied\". If user select the mac address in the property-list, it will create the corresponding port.  \n\nd\u003e For node-create, we change the action to be taken, so that it will always discover the property. The --discover option only specified if the the discover property will be applied/copied automatically to the \u0027properties\u0027 fields. Or, we can even add parameter to the --discover property to specify the properties to be applied, just like step c).\n\nI think the benifits of this solutions are:\na) It resolve the issue Dmitry raised.\n\nb) It makes the \u0027-discover\u0027 option in node-create more clearly.\n\nc) It give user a option to select the properties to be applied, i.e. it give user to an option to overwrite the auto-discover value.\n\nd) It has a very clearly state machine.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"95c558510156cf09185b81be51d6d62b44500a13","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_ef37a7ae","line":66,"updated":"2014-11-01 00:02:08.000000000","message":"I really don\u0027t like to combine the port creation with the properties discovery. The reason I\u0027m against your current proposal is, discovery is just to get information , while port creation create an ironic utility. Combine these two are confusing IMHO. Sometimes end user possibly don\u0027t want to create port for all Mac Address.\n\nOr, at least, we should have another parameter/option, like --auto-port, to distinguish them. Of course, we can state that --auto-port is valid only when --discover specified.\n\nIf we use the two-step method, then adding the mac address to the property list implies port creation.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_e591b153","line":66,"in_reply_to":"5a890539_f0eedeb3","updated":"2014-11-10 08:54:58.000000000","message":"Dmitry and yunhong-jiang, i will modify the spec as proposed and post the new patch.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"b0c0a095d65fe35f594fc850eabb91df9c29c332","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_c7861265","line":66,"in_reply_to":"7a8c0949_273b56d2","updated":"2014-11-06 22:02:03.000000000","message":"What in my mind the the API compatibility, especially this flag is to remove something, i.e. the port creation, from the response,(it will be easier API changes to add something). \n\nIMHO, this option is not complicated, thus we don\u0027t need another spec for such API change. If I missed some complexity, please let me know.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"a93824145336e7d08a04600c33f8a5caf8ac2260","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_9a956742","line":66,"in_reply_to":"7a8c0949_72c8e522","updated":"2014-11-05 07:07:28.000000000","message":"Ok I can do that if required.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"6ee386e4ac066395109776d7e4492a1c935df309","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_72c8e522","line":66,"in_reply_to":"7a8c0949_7502a83f","updated":"2014-11-04 19:42:41.000000000","message":"Thanks for giving the discussion history and it\u0027s really helpful.\n\nIf the two-steps are accepted, I agree that the port should be created automatically because we have give option to select the properties.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"619ce8660a1c5138e876b0d12d26d6f8b2039a2c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_273b56d2","line":66,"in_reply_to":"7a8c0949_81631adb","updated":"2014-11-06 21:46:42.000000000","message":"If we default to create ports, there\u0027s no problem adding later a flag changing the default behavior, right?","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_bb304ce9","line":66,"in_reply_to":"7a8c0949_9a956742","updated":"2014-11-06 15:09:36.000000000","message":"I don\u0027t see point in NOT creating ports during the discovery, though I\u0027m not against making it optional either, but please don\u0027t include it here. E.g. my discoverd does not have this option.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"6fa29d7d1868e15323cf01091867fe723f027896","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_81631adb","line":66,"in_reply_to":"7a8c0949_bb304ce9","updated":"2014-11-06 17:47:18.000000000","message":"So Dmitry, what do you mean \"don\u0027t include here\"? I think it should be part of this spec, and have this option from beginning. It will be more complex to add this later, rather than working this way from beginning.\n\nBut totally agree with your below point that the default value is \u0027to create port\u0027, and user can \"explicitly state that end user want to NOT create port\".","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"f4913cd4ce78c9dd7fd70855150e083f35dad1f1","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_f0eedeb3","line":66,"in_reply_to":"7a8c0949_bee4a9e1","updated":"2014-11-07 18:32:04.000000000","message":"Ok, I\u0027m not sure how complex it will be and I\u0027ll leave the decision to Nisha :)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b2b37e390674ce6c29ed2220b0167ac97383b428","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_bee4a9e1","line":66,"in_reply_to":"7a8c0949_c7861265","updated":"2014-11-07 13:43:00.000000000","message":"\u003e especially this flag is to remove something, i.e. the port creation, from the response\nthere\u0027s no response. you just call something and node is updated. and port creation either happens or not. that\u0027s an easy option (for OOB only btw), but it has a vague use-case and complicates (though only a bit) already complex spec.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"8472a53de13fffd2ef8940bbd8a8aa37293f6200","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  It creates the node with discovered properties populated in the node"},{"line_number":64,"context_line":"  properties and extra info if driver_info data is provided on the"},{"line_number":65,"context_line":"  node-create command line. It also creates/adds ports to the created node"},{"line_number":66,"context_line":"  with the MAC addresses returned in hardware properties."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_7502a83f","line":66,"in_reply_to":"7a8c0949_ef37a7ae","updated":"2014-11-01 16:43:19.000000000","message":"I have proposed to discover the properties requiredby scheduler, update the ironic node object with them and create the ports with the discovered mac addresses. So node object is also updated with current proposal. \n\nI had different option for port-creation, but after several rounds of review the reviewers agree to do it automatically when the properties are discovered. I can add the option for port-creation if suggested by other reviewers also.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":4573,"name":"yunhong-jiang","email":"yunhong.jiang@intel.com","username":"yunhong-jiang"},"change_message_id":"95c558510156cf09185b81be51d6d62b44500a13","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":71,"context_line":"  with the returned NIC MAC addresses."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":74,"context_line":"discovered. If a port already exists for a MAC address, it"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_cf52ebdc","line":71,"updated":"2014-11-01 00:02:08.000000000","message":"As stated above, I think we should at least have another option to explicitly state that end user want to create the port.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":71,"context_line":"  with the returned NIC MAC addresses."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":74,"context_line":"discovered. If a port already exists for a MAC address, it"}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_059f9d60","line":71,"in_reply_to":"7a8c0949_3b737cb2","updated":"2014-11-10 08:54:58.000000000","message":"yes.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"8472a53de13fffd2ef8940bbd8a8aa37293f6200","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":71,"context_line":"  with the returned NIC MAC addresses."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":74,"context_line":"discovered. If a port already exists for a MAC address, it"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_d5f99c4e","line":71,"in_reply_to":"7a8c0949_cf52ebdc","updated":"2014-11-01 16:43:19.000000000","message":"Ditto","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* ironic node-discover-properties \u003cUUID\u003e"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":71,"context_line":"  with the returned NIC MAC addresses."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":74,"context_line":"discovered. If a port already exists for a MAC address, it"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_3b737cb2","line":71,"in_reply_to":"7a8c0949_d5f99c4e","updated":"2014-11-06 15:09:36.000000000","message":"\"explicitly state that end user want to NOT create port\", because creating port is a sane default behavior for the majority of use cases.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ffc1546d5dbe36ba0d43407e86f82f4af9d44388","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"9aa7fdbe_bb3fd2b4","line":87,"updated":"2014-10-29 08:37:07.000000000","message":"That may not be always possible, e.g. PXE-based discovery is fully async process. It\u0027s not very convenient, but lets update properties and create ports inside this function, not return anything.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4672e199da67e38b1fb8012be68bb3f5a2431a93","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_00ef6888","line":87,"in_reply_to":"7a8c0949_002cc801","updated":"2014-10-31 17:23:33.000000000","message":"I meant to say about the 3rd party code which is maintained out of ironic (which you shared). When we put the code inside ironic, will you require to still maintain the 3rd part code?","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_1bdfa03c","line":87,"in_reply_to":"7a8c0949_00ef6888","updated":"2014-11-06 15:09:36.000000000","message":"yes. We don\u0027t really want to merge this service into Ironic, e.g. because we want it to be optional. So for generic IPMI driver we\u0027ll use this service as a backend. Please see the top comment for the final suggestion on this function, it\u0027s behavior and return value.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_658dc131","line":87,"in_reply_to":"7a8c0949_1bdfa03c","updated":"2014-11-10 08:54:58.000000000","message":"Ok.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"53baf98d4b57ac23b039f821dac9911b39f5141b","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_83ee1b8a","line":87,"in_reply_to":"7a8c0949_45bb5e0e","updated":"2014-10-30 17:15:45.000000000","message":"I looked at the 3rd party service which you have written.\n1.  BUt i was thinking will it be required once discovery is supported in ironic?\n2. I can choose to do it in management interface based on above.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13a7649a607bacc660bd8957033884a7c3b5b06a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_002cc801","line":87,"in_reply_to":"7a8c0949_83ee1b8a","updated":"2014-10-31 17:14:03.000000000","message":"What you mean by \"supported in ironic\"? To support it on non-DRAC/ILO hardware (i.e. generic IPMI), you\u0027ll need something like this service.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8581f777d3c3c813b7520535d7a26311707dbbae","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_45bb5e0e","line":87,"in_reply_to":"7a8c0949_c29e6456","updated":"2014-10-30 14:19:12.000000000","message":"I\u0027m just noting that in PXE discovery that I\u0027ve written (and I think it\u0027s an essential limitation of the approach itself) it\u0027s 3rdparty service that does an update after receiving data from the ramdisk.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"\"\"Get the hardware properties of a node."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param task: a task from TaskManager."},{"line_number":87,"context_line":"        :returns: a dict containing hardware information"},{"line_number":88,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_c29e6456","line":87,"in_reply_to":"9aa7fdbe_bb3fd2b4","updated":"2014-10-30 14:13:36.000000000","message":"I was initiating creation of ports from rpcapi instead of management interface i.e once properties are discovered then conductor initiates the port creation. If we have to do it in management interface then shouldn\u0027t it be a new function?","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new rpcapi is added discover_properties::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def discover_attributes(self, context, node_obj, discover, topic\u003dNone):"},{"line_number":95,"context_line":"        \"\"\"Discovers the node\u0027s attributes asynchronously."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        :param context: request context."}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_5b73e87f","line":94,"updated":"2014-11-06 15:09:36.000000000","message":"I think it should be called discover_hardware_properties too for the sake of consistency","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new rpcapi is added discover_properties::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def discover_attributes(self, context, node_obj, discover, topic\u003dNone):"},{"line_number":95,"context_line":"        \"\"\"Discovers the node\u0027s attributes asynchronously."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        :param context: request context."}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_0576bd3e","line":94,"in_reply_to":"7a8c0949_5b73e87f","updated":"2014-11-10 08:54:58.000000000","message":"Ok. I thought the management interface API name and rpc api names should not be same, hence i suggested different. Will make the change in the next patch.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        :param context: request context."},{"line_number":98,"context_line":"        :param node_obj: a node object."},{"line_number":99,"context_line":"        :param discover: Boolean."},{"line_number":100,"context_line":"        :param topic: RPC topic, Defaults to self.topic."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_db643824","line":99,"updated":"2014-11-06 15:09:36.000000000","message":"what is this value? I guess you no longer need it","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        :param context: request context."},{"line_number":98,"context_line":"        :param node_obj: a node object."},{"line_number":99,"context_line":"        :param discover: Boolean."},{"line_number":100,"context_line":"        :param topic: RPC topic, Defaults to self.topic."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_458fe523","line":99,"in_reply_to":"7a8c0949_db643824","updated":"2014-11-10 08:54:58.000000000","message":"Yes, now no longer needed... :) left while cleaning up the spec with previous approach. :)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    class NodeConsoleController(rest.RestController):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def put(self, node_uuid):"},{"line_number":110,"context_line":"        \"\"\"Discover the node properties and update the node object."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        :param node_uuid: UUID of a node."}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_fb09f4dd","line":109,"updated":"2014-11-06 15:09:36.000000000","message":"should be indented from class level","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    class NodeConsoleController(rest.RestController):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def put(self, node_uuid):"},{"line_number":110,"context_line":"        \"\"\"Discover the node properties and update the node object."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        :param node_uuid: UUID of a node."}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_8599cd70","line":109,"in_reply_to":"7a8c0949_fb09f4dd","updated":"2014-11-10 08:54:58.000000000","message":"ok.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ffc1546d5dbe36ba0d43407e86f82f4af9d44388","unresolved":false,"context_lines":[{"line_number":123,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":124,"context_line":"  to discover hardware properties. It saves the node object"},{"line_number":125,"context_line":"  with discovered properties. The thread creates the ports for"},{"line_number":126,"context_line":"  the discovered MAC addresses."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"9aa7fdbe_7b1f2a5c","line":126,"updated":"2014-10-29 08:37:07.000000000","message":"Will it lock the node? If so, it\u0027ll pose problems for PXE-based discovery, which requires that node is NOT locked.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8581f777d3c3c813b7520535d7a26311707dbbae","unresolved":false,"context_lines":[{"line_number":123,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":124,"context_line":"  to discover hardware properties. It saves the node object"},{"line_number":125,"context_line":"  with discovered properties. The thread creates the ports for"},{"line_number":126,"context_line":"  the discovered MAC addresses."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_e5952a89","line":126,"in_reply_to":"7a8c0949_22f2c89a","updated":"2014-10-30 14:19:12.000000000","message":"because it never returns to the caller and instead calls update from 3rdpary side (see e.g. https://github.com/Divius/ironic-discoverd). So locking would prevent this 3rdpary side from working.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"53baf98d4b57ac23b039f821dac9911b39f5141b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":124,"context_line":"  to discover hardware properties. It saves the node object"},{"line_number":125,"context_line":"  with discovered properties. The thread creates the ports for"},{"line_number":126,"context_line":"  the discovered MAC addresses."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_c39f4302","line":126,"in_reply_to":"7a8c0949_e5952a89","updated":"2014-10-30 17:15:45.000000000","message":"Thanks for link. BUt ditto question as above. Will it be required after node-properties discovery is supported in ironic?","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":124,"context_line":"  to discover hardware properties. It saves the node object"},{"line_number":125,"context_line":"  with discovered properties. The thread creates the ports for"},{"line_number":126,"context_line":"  the discovered MAC addresses."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_22f2c89a","line":126,"in_reply_to":"9aa7fdbe_7b1f2a5c","updated":"2014-10-30 14:13:36.000000000","message":"Yes as of now it locks the node. Could you point/explain me why PXE-based discovery doesn\u0027t require locking. Since node object has to be updated, it will require the lock. What do you say?","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"96168f0200e1b2cd012d95a3e44bfcebe007e5a6","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_112b6eec","line":130,"updated":"2014-10-29 23:27:24.000000000","message":"Let\u0027s change invetory data to hardware property data so that folks won\u0027t think this is the place to dump all inventory data.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_42efd4b0","line":130,"in_reply_to":"7a8c0949_112b6eec","updated":"2014-10-30 14:13:36.000000000","message":"Ok.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ffc1546d5dbe36ba0d43407e86f82f4af9d44388","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"},{"line_number":134,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"9aa7fdbe_db3576dc","line":131,"updated":"2014-10-29 08:37:07.000000000","message":"I don\u0027t see the reason to store anything except what is required and I think we agreed on it.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"},{"line_number":134,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_65e221d7","line":131,"in_reply_to":"7a8c0949_dbbb58e3","updated":"2014-11-10 08:54:58.000000000","message":"ok. I think it is proposed to even remove the ip adresses etc from the interfaces. for interfaces we will need to have two parameters name and mac address while discovering. SO it should also be populated in properties?","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"},{"line_number":134,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_dbbb58e3","line":131,"in_reply_to":"7a8c0949_e225200b","updated":"2014-11-06 15:09:36.000000000","message":"This is probably not needed - see the top comment.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"},{"line_number":134,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_82cc5c37","line":131,"in_reply_to":"7a8c0949_f1d7c2eb","updated":"2014-10-30 14:13:36.000000000","message":"Yes agreed with Wan-yen. Adding any other info to the properties field may be covered as part of other spec in which it suggests the reason to do so but it will be easier to do so here as it will be properties discovery for the node.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"96168f0200e1b2cd012d95a3e44bfcebe007e5a6","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"},{"line_number":134,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_f1d7c2eb","line":131,"in_reply_to":"9aa7fdbe_db3576dc","updated":"2014-10-29 23:27:24.000000000","message":"We don\u0027t store arbitary inventory info but hw properties that assist Nova scheduling can go here.  There will be a common set of hw properties (i.e., ncpus, disk and memory size, MAC addresses, cpu arch) required by Ironic.  However, we should allow vendors to discover extra hw properties that they plan to use for scheduling.  For instance, supported boot modes and server model.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Hardware properties structure:"},{"line_number":129,"context_line":"-----------------------------------------"},{"line_number":130,"context_line":"The inventory data would be structured as below. The discovered data will"},{"line_number":131,"context_line":"be stored in Node.properties."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"{"},{"line_number":134,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_e225200b","line":131,"in_reply_to":"9aa7fdbe_db3576dc","updated":"2014-10-30 14:13:36.000000000","message":"Yes correct. But if scheduler is enhanced then this may be enhanced as well.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"96168f0200e1b2cd012d95a3e44bfcebe007e5a6","unresolved":false,"context_lines":[{"line_number":172,"context_line":"In this, it requires the Nodes.post to be completely asynchronous."},{"line_number":173,"context_line":"This would be a compatibility break for node-create as it requires a"},{"line_number":174,"context_line":"node object to be returned back. On the other hand, if discovery is done"},{"line_number":175,"context_line":"synchronously then Nodes.post will become slow."},{"line_number":176,"context_line":"In this if Nodes.post still returns the node object without properties"},{"line_number":177,"context_line":"updated to the CLI and still do discovery in the background then Nodes.post"},{"line_number":178,"context_line":"becomes half synchronous and half asynchronous, then it will be wrong for REST"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_91dafee7","line":175,"updated":"2014-10-29 23:27:24.000000000","message":"Some drivers may be able to discover hw properties and return rather quickly some may not.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":172,"context_line":"In this, it requires the Nodes.post to be completely asynchronous."},{"line_number":173,"context_line":"This would be a compatibility break for node-create as it requires a"},{"line_number":174,"context_line":"node object to be returned back. On the other hand, if discovery is done"},{"line_number":175,"context_line":"synchronously then Nodes.post will become slow."},{"line_number":176,"context_line":"In this if Nodes.post still returns the node object without properties"},{"line_number":177,"context_line":"updated to the CLI and still do discovery in the background then Nodes.post"},{"line_number":178,"context_line":"becomes half synchronous and half asynchronous, then it will be wrong for REST"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_c272e4e4","line":175,"in_reply_to":"7a8c0949_91dafee7","updated":"2014-10-30 14:13:36.000000000","message":"Yes.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"96168f0200e1b2cd012d95a3e44bfcebe007e5a6","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  --discover             discover automatically"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"REST API impact"},{"line_number":209,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_5420849b","line":206,"updated":"2014-10-29 23:27:24.000000000","message":"It seems to me that alternatively we can add a --discover option to the ironic node-update.  Any reason to have a new CLI instead of adding --discover to ironic node-update?   Is ironic node-update synchronous?   If it works,  I would prefer adding --discover option to ironic node-update since users will have fewer CLIs to deal with and they can combine node update and hw property discovery in one CLI.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  --discover             discover automatically"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"REST API impact"},{"line_number":209,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_4290b4ec","line":206,"in_reply_to":"7a8c0949_5420849b","updated":"2014-10-30 14:13:36.000000000","message":"We dropped node-update because node-update requires \u003cop\u003e \u003ckey\u003dvalue\u003e as mandatory arguments to be provided even if user has to just discover the properties and need no updation in the node\u0027s already populated fields.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"a8027945d0b35cb010287edb580ae54cbc366e9b","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  --discover             discover automatically"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"REST API impact"},{"line_number":209,"context_line":"---------------"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_74466025","line":207,"updated":"2014-10-29 23:43:28.000000000","message":"Never mind about the above question/comment.  I saw Lucas\u0027s comment about ironic node-update is synchronous.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  --discover             discover automatically"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"REST API impact"},{"line_number":209,"context_line":"---------------"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_0274eccd","line":207,"in_reply_to":"7a8c0949_74466025","updated":"2014-10-30 14:13:36.000000000","message":":)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  If --discover option is specified on the CLI, then following additional"},{"line_number":222,"context_line":"  URL will be invoked as part of node-create."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/management"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"For node-discover-properties:"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_5b8a08c0","line":224,"updated":"2014-11-06 15:09:36.000000000","message":"IMO it should be \n\n POST /v1/nodes/{UUID}/discover","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  If --discover option is specified on the CLI, then following additional"},{"line_number":222,"context_line":"  URL will be invoked as part of node-create."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/management"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"For node-discover-properties:"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_a5ec09c9","line":224,"in_reply_to":"7a8c0949_5b8a08c0","updated":"2014-11-10 08:54:58.000000000","message":"OK","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* The URL for REST API will be like:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/management"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"RPC API impact"},{"line_number":235,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_fbc014e2","line":232,"updated":"2014-11-06 15:09:36.000000000","message":"ditto","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"* The URL for REST API will be like:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/management"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"RPC API impact"},{"line_number":235,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_05db1d1c","line":232,"in_reply_to":"7a8c0949_fbc014e2","updated":"2014-11-10 08:54:58.000000000","message":"OK.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"* A new rpcapi is added discover_properties::"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def discover_attributes(self, context, node_obj, discover, topic\u003dNone):"},{"line_number":240,"context_line":"        \"\"\"Discovers the node\u0027s attributes asynchronously."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        :param context: request context."}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_1bb88075","line":239,"updated":"2014-11-06 15:09:36.000000000","message":"ditto about naming","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"* A new rpcapi is added discover_properties::"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def discover_attributes(self, context, node_obj, discover, topic\u003dNone):"},{"line_number":240,"context_line":"        \"\"\"Discovers the node\u0027s attributes asynchronously."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        :param context: request context."}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_65094195","line":239,"in_reply_to":"7a8c0949_1bb88075","updated":"2014-11-10 08:54:58.000000000","message":"Ok. Will change in next patch.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"96168f0200e1b2cd012d95a3e44bfcebe007e5a6","unresolved":false,"context_lines":[{"line_number":297,"context_line":"or node-update."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"The users will have an option to discover the properties automatically"},{"line_number":300,"context_line":"with node-create required by the schedular."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"Scalability impact"},{"line_number":303,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_915d9e4b","line":300,"updated":"2014-10-29 23:27:24.000000000","message":"s/schedular/scheduler","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b2c7cfa7bf0e9a79af13bd3cea72196d46cd314c","unresolved":false,"context_lines":[{"line_number":297,"context_line":"or node-update."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"The users will have an option to discover the properties automatically"},{"line_number":300,"context_line":"with node-create required by the schedular."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"Scalability impact"},{"line_number":303,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_624a1085","line":300,"in_reply_to":"7a8c0949_915d9e4b","updated":"2014-10-30 14:13:36.000000000","message":"ok","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* REST API patches over Node.post and Node.patch."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"* Adding new rpcapi."},{"line_number":352,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_bb54cc21","line":349,"updated":"2014-11-06 15:09:36.000000000","message":"it\u0027s no longer suggested to change Node.patch, new endpoint is added instead","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* REST API patches over Node.post and Node.patch."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"* Adding new rpcapi."},{"line_number":352,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_25ef39b2","line":349,"in_reply_to":"7a8c0949_bb54cc21","updated":"2014-11-10 08:54:58.000000000","message":"Ok i will reword the sentence ...i didnt mean changes in Node.patch :). It will be a seperate end point.","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"08fd6ceaaac71c288267a190513c313962826351","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":367,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":368,"context_line":"No imapact."},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"Documentation Impact"},{"line_number":371,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":34,"id":"7a8c0949_dba278ad","line":368,"updated":"2014-11-06 15:09:36.000000000","message":"s/imapact/impact/","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4975071ae47672df1842ac45c8fcdf1fcf460131","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":367,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":368,"context_line":"No imapact."},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"Documentation Impact"},{"line_number":371,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":34,"id":"5a890539_452b65eb","line":368,"in_reply_to":"7a8c0949_dba278ad","updated":"2014-11-10 08:54:58.000000000","message":":)","commit_id":"108f9235105a9a2a6fef1c17ad444d6782a98f71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Blueprint URL:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/ironic/+spec/ironic-node-properties-discovery"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This proposal adds the ability to perform out-of-band node property"},{"line_number":15,"context_line":"discovery and automatically update node properties using"},{"line_number":16,"context_line":"node-discover-properties (new CLI) process."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_9fe803b6","line":14,"updated":"2014-11-12 09:06:52.000000000","message":"just for record: new API either should accommodate both OOB and in-band (via using 3rdparty service) or should be in vendor passthru","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Blueprint URL:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/ironic/+spec/ironic-node-properties-discovery"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This proposal adds the ability to perform out-of-band node property"},{"line_number":15,"context_line":"discovery and automatically update node properties using"},{"line_number":16,"context_line":"node-discover-properties (new CLI) process."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_1f4fb3be","line":14,"in_reply_to":"5a890539_9fe803b6","updated":"2014-11-12 10:02:33.000000000","message":"Ok i will update that the spec proposes to support for both in-band and OOB.","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":66,"context_line":"           as per the driver choice.."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        :param task: a task from TaskManager."},{"line_number":69,"context_line":"        :returns: a dict containing hardware information"},{"line_number":70,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_7fd7d723","line":69,"updated":"2014-11-12 09:06:52.000000000","message":"this call should not return anything, for in-band discovery it\u0027s just a call to 3rdpary service","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"           as per the driver choice.."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        :param task: a task from TaskManager."},{"line_number":69,"context_line":"        :returns: a dict containing hardware information"},{"line_number":70,"context_line":"        :raises: NotImplementedError if driver does not support the feature."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_3fee2fb5","line":69,"in_reply_to":"5a890539_7fd7d723","updated":"2014-11-12 10:02:33.000000000","message":"Ok.","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":104,"context_line":"* the rpcapi discover_hardware_properties() spawns a thread which"},{"line_number":105,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":106,"context_line":"  to discover hardware properties and creation of ports."},{"line_number":107,"context_line":"  It saves the node object with discovered properties."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Hardware properties structure:"},{"line_number":110,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_3fed4ff0","line":107,"updated":"2014-11-12 09:06:52.000000000","message":"\"It\" - who? rpcapi exits after spawning thread. so it is discover_hardware_properties() management function that will be updating object and creating port","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"* the rpcapi discover_hardware_properties() spawns a thread which"},{"line_number":105,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":106,"context_line":"  to discover hardware properties and creation of ports."},{"line_number":107,"context_line":"  It saves the node object with discovered properties."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Hardware properties structure:"},{"line_number":110,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_bf393f43","line":107,"in_reply_to":"5a890539_3fed4ff0","updated":"2014-11-12 10:02:33.000000000","message":"No I meant managment interface here. I will reword and update in next patch.","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":106,"context_line":"  to discover hardware properties and creation of ports."},{"line_number":107,"context_line":"  It saves the node object with discovered properties."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Hardware properties structure:"},{"line_number":110,"context_line":"------------------------------"},{"line_number":111,"context_line":"The properties would be structured as below. The discovered data will"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_ff902750","line":108,"updated":"2014-11-12 09:06:52.000000000","message":"also, node should be moved tp \"discovering\" state before discovery (always) and to \"init\" state afterwards (by the driver in case of OOB)","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":106,"context_line":"  to discover hardware properties and creation of ports."},{"line_number":107,"context_line":"  It saves the node object with discovered properties."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Hardware properties structure:"},{"line_number":110,"context_line":"------------------------------"},{"line_number":111,"context_line":"The properties would be structured as below. The discovered data will"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_9fb72386","line":108,"in_reply_to":"5a890539_ff902750","updated":"2014-11-12 10:02:33.000000000","message":"yes. explained later in the spec also. will add the stuff here also.","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Hardware properties structure:"},{"line_number":110,"context_line":"------------------------------"},{"line_number":111,"context_line":"The properties would be structured as below. The discovered data will"},{"line_number":112,"context_line":"be stored in Node.properties."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"{"},{"line_number":115,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_9f83a303","line":112,"updated":"2014-11-12 09:06:52.000000000","message":"that\u0027s not needed","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Hardware properties structure:"},{"line_number":110,"context_line":"------------------------------"},{"line_number":111,"context_line":"The properties would be structured as below. The discovered data will"},{"line_number":112,"context_line":"be stored in Node.properties."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"{"},{"line_number":115,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_1f59735a","line":112,"in_reply_to":"5a890539_9f83a303","updated":"2014-11-12 10:02:33.000000000","message":"its a more of information what all is necessary to discover. for nics, we need the name/label whatever differentiates each of the nics/mac addresses. Hence below is just a information of what all is in scope essential properties discovery.","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/discover"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* The new states will be introduced for the nodes:"},{"line_number":184,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":187,"context_line":"  target_provision_state to WAIT before invoking"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_dfa36b9c","line":184,"updated":"2014-11-12 09:06:52.000000000","message":"that\u0027s part of https://review.openstack.org/#/c/133828/","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4766e38819b7213b022918ad08bd5427d3c5df8a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/discover"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* The new states will be introduced for the nodes:"},{"line_number":184,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":187,"context_line":"  target_provision_state to WAIT before invoking"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_a4cbefa3","line":184,"in_reply_to":"5a890539_5f321b11","updated":"2014-11-12 11:02:44.000000000","message":"yes please","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/discover"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* The new states will be introduced for the nodes:"},{"line_number":184,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":187,"context_line":"  target_provision_state to WAIT before invoking"}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_5f321b11","line":184,"in_reply_to":"5a890539_dfa36b9c","updated":"2014-11-12 10:02:33.000000000","message":"Ok. SO this shall be dependent on the above spec?","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89d5380941b22ad44b4aae58aaf3325261a2a6de","unresolved":false,"context_lines":[{"line_number":184,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":187,"context_line":"  target_provision_state to WAIT before invoking"},{"line_number":188,"context_line":"  management interface. The management interface"},{"line_number":189,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":190,"context_line":"  to INIT and target_provision_state to DISCOVERED on success."}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_ffc5873d","line":187,"updated":"2014-11-12 09:06:52.000000000","message":"it\u0027s not target_provision_state, it will be a new flag and will be specified in https://review.openstack.org/#/c/133828/ (missing right now). also wait flag will be used only for in-band discovery, so you may skip it at all.","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aa93f5548c26776e98d07e05bcb93820d568a13a","unresolved":false,"context_lines":[{"line_number":184,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":187,"context_line":"  target_provision_state to WAIT before invoking"},{"line_number":188,"context_line":"  management interface. The management interface"},{"line_number":189,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":190,"context_line":"  to INIT and target_provision_state to DISCOVERED on success."}],"source_content_type":"text/x-rst","patch_set":35,"id":"5a890539_3f02af0b","line":187,"in_reply_to":"5a890539_ffc5873d","updated":"2014-11-12 10:02:33.000000000","message":"why even for oob, it will be waiting until properties are discovered whether async or sync? Am i misunderstanding anything?","commit_id":"40dc5bef906c2230852798c42ab458dba467ee61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0991f5ad0bd4e517aec20f58e340872f52e5551f","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  properties."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* The new states are to be used for the nodes:"},{"line_number":112,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":115,"context_line":"  target_provision_state to WAIT before invoking"}],"source_content_type":"text/x-rst","patch_set":36,"id":"5a890539_640667d0","line":112,"updated":"2014-11-12 11:09:48.000000000","message":"the new states are just DISCOVERING, INIT, WAIT is not a state, it\u0027s a new flag, see below for explanation.\n\nand yes, you should depend on https://review.openstack.org/#/c/133828/ for pulling all these","commit_id":"12a58021769b4218d041e36bb37a0fbea0c4befb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0991f5ad0bd4e517aec20f58e340872f52e5551f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"  target_provision_state to WAIT before invoking"},{"line_number":116,"context_line":"  management interface. The management interface"},{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to DISCOVERED on success."},{"line_number":119,"context_line":"  Upon failure, the provision_state and target_provision_state"},{"line_number":120,"context_line":"  are set to DISCOVERY_FAILED and the error is updated at the"},{"line_number":121,"context_line":"  last error."}],"source_content_type":"text/x-rst","patch_set":36,"id":"5a890539_041cc312","line":118,"updated":"2014-11-12 11:09:48.000000000","message":"\"target_provision_state to DISCOVERED on success\" \u003c- target_provision_state will be None, because no process is going on. DISCOVERED is completely replaced by INIT now (and sorry for the confusion)","commit_id":"12a58021769b4218d041e36bb37a0fbea0c4befb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0991f5ad0bd4e517aec20f58e340872f52e5551f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to DISCOVERED on success."},{"line_number":119,"context_line":"  Upon failure, the provision_state and target_provision_state"},{"line_number":120,"context_line":"  are set to DISCOVERY_FAILED and the error is updated at the"},{"line_number":121,"context_line":"  last error."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Hardware properties to be discovered:"}],"source_content_type":"text/x-rst","patch_set":36,"id":"5a890539_64d4a720","line":120,"updated":"2014-11-12 11:09:48.000000000","message":"again,  target_provision_state will be None, it\u0027s only set for ongoing processes","commit_id":"12a58021769b4218d041e36bb37a0fbea0c4befb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0991f5ad0bd4e517aec20f58e340872f52e5551f","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Hardware properties to be discovered:"},{"line_number":124,"context_line":"-------------------------------------"},{"line_number":125,"context_line":"The properties would be structured as below. The discovered data will"},{"line_number":126,"context_line":"be stored in Node.properties."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"{"},{"line_number":129,"context_line":"    \"interfaces\" : [{"}],"source_content_type":"text/x-rst","patch_set":36,"id":"5a890539_24c9bf78","line":126,"updated":"2014-11-12 11:09:48.000000000","message":"I understand your intention, but it reads like that\u0027s how it will be stored in Node.properties. However, \u0027interfaces\u0027 field is not stored in Node.properites. Could you clarify somehow please?","commit_id":"12a58021769b4218d041e36bb37a0fbea0c4befb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0991f5ad0bd4e517aec20f58e340872f52e5551f","unresolved":false,"context_lines":[{"line_number":195,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/discover"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* The new states will be introduced for the nodes:"},{"line_number":198,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":201,"context_line":"  target_provision_state to WAIT before invoking"}],"source_content_type":"text/x-rst","patch_set":36,"id":"5a890539_84a513b7","line":198,"updated":"2014-11-12 11:09:48.000000000","message":"see above and below","commit_id":"12a58021769b4218d041e36bb37a0fbea0c4befb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0991f5ad0bd4e517aec20f58e340872f52e5551f","unresolved":false,"context_lines":[{"line_number":198,"context_line":"  DISCOVERING, DISCOVERED, DISCOVERY_FAILED, INIT, WAIT."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":201,"context_line":"  target_provision_state to WAIT before invoking"},{"line_number":202,"context_line":"  management interface. The management interface"},{"line_number":203,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":204,"context_line":"  to INIT and target_provision_state to DISCOVERED on success."}],"source_content_type":"text/x-rst","patch_set":36,"id":"5a890539_84ba73be","line":201,"updated":"2014-11-12 11:09:48.000000000","message":"WAIT is not a state at all, target_provision_state will be probably INIT here. target_provision_state is what state we\u0027re hoping to reach after discovery has ended.\n\nRe WAIT. It\u0027s a new flag that is telling you \"right now Ironic is waiting for 3rd party to call back and does nothing\". It\u0027s a bit vague, but this flag does not apply to OOB, because for OOB case Ironic _does_ something: it\u0027s exchanging requests with the BMC. So WAIT is only for IB case, where we call discoverd and stop.\n\nAgain, WAIT is not a state, it will be a new field in the database.","commit_id":"12a58021769b4218d041e36bb37a0fbea0c4befb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3120f85470caaee2ff450d0b214192f410346c45","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Disk Size"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* CPUs"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* NIC(s) MAC address"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_c82d4e48","line":32,"updated":"2014-11-13 09:10:53.000000000","message":"* CPU count and architecture","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6ac36aa640c83aa6b0b7cd1963b709770665fa75","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":63,"context_line":"  added as part of ManagementInterface::"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":66,"context_line":"        \"\"\"Get the hardware properties of a node asynchronously/synchronously"},{"line_number":67,"context_line":"           as per the driver choice.."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_c89c6ec3","line":65,"updated":"2014-11-13 09:22:34.000000000","message":"Can we pass a flag to indicate desired mode synchronous/ asynchronous operation? A driver may be capable of supporting  both modes.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f16c2090c5f2e383172ee11b1555e71a567d7a0d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":63,"context_line":"  added as part of ManagementInterface::"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":66,"context_line":"        \"\"\"Get the hardware properties of a node asynchronously/synchronously"},{"line_number":67,"context_line":"           as per the driver choice.."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_c6453fb4","line":65,"in_reply_to":"5a890539_480dde3d","updated":"2014-11-13 10:12:58.000000000","message":"Thanks for the clarification. But for OOB drivers, they may waish to have this as synchronous operation.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5bddf47bea928616c81ed1bf360ac0eb92f95b9f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":63,"context_line":"  added as part of ManagementInterface::"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":66,"context_line":"        \"\"\"Get the hardware properties of a node asynchronously/synchronously"},{"line_number":67,"context_line":"           as per the driver choice.."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_abde330f","line":65,"in_reply_to":"5a890539_c6453fb4","updated":"2014-11-13 13:41:43.000000000","message":"synchronous in the sense of user waiting for the result? it has too high performance impact, so sorry but no.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be677239960815c2d87fad37108e5a0c73d35217","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":63,"context_line":"  added as part of ManagementInterface::"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":66,"context_line":"        \"\"\"Get the hardware properties of a node asynchronously/synchronously"},{"line_number":67,"context_line":"           as per the driver choice.."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_480dde3d","line":65,"in_reply_to":"5a890539_c89c6ec3","updated":"2014-11-13 09:30:16.000000000","message":"I think there\u0027s a confusion here. Maybe we should just delete \"asynchronously/synchronously\" from the docstring, because from Ironic point of view discovery is always async (i.e. either happens in a separate thread or in a separate service).\n\nI guess here by asynchronously Nisha means calling to discoverd or another 3rdparty service. I suggest dropping the confusing part and leaving:\n\n Introspect and update the hardware properties of a node.\n\n(\"as per the driver choice\" also sounds redundant to me)","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3120f85470caaee2ff450d0b214192f410346c45","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  added as part of ManagementInterface::"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def discover_hardware_properties(self, task):"},{"line_number":66,"context_line":"        \"\"\"Get the hardware properties of a node asynchronously/synchronously"},{"line_number":67,"context_line":"           as per the driver choice.."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        :param task: a task from TaskManager."}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_a8ff22a9","line":66,"updated":"2014-11-13 09:10:53.000000000","message":"s/Get/Update/","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6ac36aa640c83aa6b0b7cd1963b709770665fa75","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."},{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Hardware properties to be discovered:"},{"line_number":123,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_48215e4c","line":120,"updated":"2014-11-13 09:22:34.000000000","message":"Will the node moved into maintenance at DISCOVRYFAIL state?","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5bddf47bea928616c81ed1bf360ac0eb92f95b9f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."},{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Hardware properties to be discovered:"},{"line_number":123,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_8b45f7b4","line":120,"in_reply_to":"5a890539_2b032c74","updated":"2014-11-13 13:41:43.000000000","message":"My intuition is all-or-nothing, but that may be only me. Anyway, if we fail to discover at least something, the node can\u0027t become AVAILABLE.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be677239960815c2d87fad37108e5a0c73d35217","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."},{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Hardware properties to be discovered:"},{"line_number":123,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_48b15e8e","line":120,"in_reply_to":"5a890539_48215e4c","updated":"2014-11-13 09:30:16.000000000","message":"no, it\u0027s not a fatal failure, that can be only recovered manually","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f16c2090c5f2e383172ee11b1555e71a567d7a0d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."},{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Hardware properties to be discovered:"},{"line_number":123,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_2b032c74","line":120,"in_reply_to":"5a890539_48b15e8e","updated":"2014-11-13 10:12:58.000000000","message":"Thanks for the reply.\nWill this API update node with whatever it could discover? Or no update done to the node if the  API fails?","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6ac36aa640c83aa6b0b7cd1963b709770665fa75","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":137,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":138,"context_line":"hence will be updated in Node.properties field."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Alternatives"},{"line_number":141,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_c8a2aead","line":138,"updated":"2014-11-13 09:22:34.000000000","message":"What will happen if the node had previously populated properties manually or prior run of discovery. i suppose it would get overwritten.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5bddf47bea928616c81ed1bf360ac0eb92f95b9f","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":137,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":138,"context_line":"hence will be updated in Node.properties field."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Alternatives"},{"line_number":141,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_0b8827e6","line":138,"in_reply_to":"5a890539_6b21b4b3","updated":"2014-11-13 13:41:43.000000000","message":"I have no strong opinion on this. UI folks tend to prefer having discoverd NOT overwrite things. That could be a flag.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f16c2090c5f2e383172ee11b1555e71a567d7a0d","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":137,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":138,"context_line":"hence will be updated in Node.properties field."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Alternatives"},{"line_number":141,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_6b21b4b3","line":138,"in_reply_to":"5a890539_c8646e24","updated":"2014-11-13 10:12:58.000000000","message":"If it does not overwrite, then upon hardware refresh (addition/deletion) one will not be update node properties using this API.\n\nI suppose, discover API cannot know if the existing properties were populated through API call or manual step.\n\nThis could be one of the reason to let it overwrite node properties.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be677239960815c2d87fad37108e5a0c73d35217","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":137,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":138,"context_line":"hence will be updated in Node.properties field."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Alternatives"},{"line_number":141,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_c8646e24","line":138,"in_reply_to":"5a890539_c8a2aead","updated":"2014-11-13 09:30:16.000000000","message":"good thing to clarify. for reference: discoverd currently does not override existing properties and I think it\u0027s a sane behavior, but we need to discuss it,","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6ac36aa640c83aa6b0b7cd1963b709770665fa75","unresolved":false,"context_lines":[{"line_number":174,"context_line":"The node-discover-properties CLI need to be defined."},{"line_number":175,"context_line":"The synopsis will look like:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"REST API impact"},{"line_number":180,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_e8168aa6","line":177,"updated":"2014-11-13 09:22:34.000000000","message":"Can you provide the o/p example of this CLI? Normally it would be similar to node-show o/p. But in the case of discover, ports also gets auto-created. How node properties and ports would be accomodated in the o/p.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5bddf47bea928616c81ed1bf360ac0eb92f95b9f","unresolved":false,"context_lines":[{"line_number":174,"context_line":"The node-discover-properties CLI need to be defined."},{"line_number":175,"context_line":"The synopsis will look like:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"REST API impact"},{"line_number":180,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_ab61d33a","line":177,"in_reply_to":"5a890539_265c437e","updated":"2014-11-13 13:41:43.000000000","message":"That was a confusion. From the user point of view operation is always async.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f16c2090c5f2e383172ee11b1555e71a567d7a0d","unresolved":false,"context_lines":[{"line_number":174,"context_line":"The node-discover-properties CLI need to be defined."},{"line_number":175,"context_line":"The synopsis will look like:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"REST API impact"},{"line_number":180,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_265c437e","line":177,"in_reply_to":"5a890539_8b1ee061","updated":"2014-11-13 10:12:58.000000000","message":"Ok. But since the driver has choice of implementing this as synchronous or asynchronus operation. User experience with this CLI would differ based on driver implementation.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be677239960815c2d87fad37108e5a0c73d35217","unresolved":false,"context_lines":[{"line_number":174,"context_line":"The node-discover-properties CLI need to be defined."},{"line_number":175,"context_line":"The synopsis will look like:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"REST API impact"},{"line_number":180,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_8b1ee061","line":177,"in_reply_to":"5a890539_e8168aa6","updated":"2014-11-13 09:30:16.000000000","message":"\u003e Normally it would be similar to node-show o/p\n\nNot sure what you mean by that, this CLI will not output anything to a user.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6ac36aa640c83aa6b0b7cd1963b709770665fa75","unresolved":false,"context_lines":[{"line_number":218,"context_line":"Driver API impact"},{"line_number":219,"context_line":"-----------------"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"It will add new abstract method discover_hardware_properties()"},{"line_number":222,"context_line":"to the base.ManagementInterface."},{"line_number":223,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_884fc6bc","line":221,"updated":"2014-11-13 09:22:34.000000000","message":"Better to clarify that it is not manadatory for all drivers to implement this interface as it will have base implementation.of emitting error.","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be677239960815c2d87fad37108e5a0c73d35217","unresolved":false,"context_lines":[{"line_number":218,"context_line":"Driver API impact"},{"line_number":219,"context_line":"-----------------"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"It will add new abstract method discover_hardware_properties()"},{"line_number":222,"context_line":"to the base.ManagementInterface."},{"line_number":223,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"5a890539_c84b8e85","line":221,"in_reply_to":"5a890539_884fc6bc","updated":"2014-11-13 09:30:16.000000000","message":"+1","commit_id":"6bb2099757b7b6fd65be2d1959905750cd6305b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ec219655fd06f4520741d0e39b6720354e8c83fc","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":55,"context_line":"  with the returned NIC MAC addresses."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_7115a79a","line":57,"updated":"2014-11-18 09:21:11.000000000","message":"Oh, I remembered an important thing, that bit me hard with discoverd. You should not actually create ports for all MAC addresses. You should create ports for MAC addresses that can PXE-boot. For discoverd I use NIC\u0027s that got IP address during ramdisk boot. Any ideas how to solve it with OOB?","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"727fc3ece026da436bea128b9b4519939ef32ebb","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  It discovers the hardware properties for the node and recreate the ports"},{"line_number":55,"context_line":"  with the returned NIC MAC addresses."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_2fe8f815","line":57,"in_reply_to":"5a890539_7115a79a","updated":"2014-11-18 22:02:58.000000000","message":"This was possible if we could read the firmware settings. BUt as of now i dont see any thing possible which can be used to discriminate between PXE and non-PXE boot mac addresses. This is just a setting on a hardware and a NIC can be enabled/disabled for netboot manually.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"fc1be8db76b3bd4f2f97e5118ff1837abcea7b20","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_af1fe36a","line":59,"updated":"2014-11-14 23:57:06.000000000","message":"How with this change handle the case where an operator replaces a NIC. so I known address is removed and a new address is added.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"81ba91a31beedd263caf5e1bbbc63cb7c5476eb2","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_295afd82","line":59,"in_reply_to":"5a890539_0341b0a8","updated":"2014-11-17 07:01:25.000000000","message":"If user needs to do these tings manually, would mean the discovery is semi-automatic. Can user be informed about the stale ports post discovery?","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"727fc3ece026da436bea128b9b4519939ef32ebb","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_cfbf74fb","line":59,"in_reply_to":"5a890539_295afd82","updated":"2014-11-18 22:02:58.000000000","message":"I agree. I will delete the ports for the deleted mac-addresses. But the user has to still manually delete the neutron ports for those deleted ports as ironic can manage the  ports which belong to ironic.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"69ef8d8162d188d2d0e09a36e408d0e05248bd76","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_0341b0a8","line":59,"in_reply_to":"5a890539_af1fe36a","updated":"2014-11-15 08:39:14.000000000","message":"The newly added port can/will be updated when the NIC is replaced. But not sure if we should really do the port deletion in this. I think it should be done manually as it will require neutron ports also to be deleted.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"424b613c2b5c98a28e37c72362f5f9df7be07473","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_5ee1e6fc","line":122,"updated":"2014-11-14 13:14:17.000000000","message":"s/DISOVERYFAIL/DISCOVERYFAIL/","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"69ef8d8162d188d2d0e09a36e408d0e05248bd76","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_8314c0a0","line":122,"in_reply_to":"5a890539_5ee1e6fc","updated":"2014-11-15 08:39:14.000000000","message":":) OK.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"424b613c2b5c98a28e37c72362f5f9df7be07473","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":129,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Hardware properties to be discovered:"},{"line_number":132,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_1ec2fe58","line":129,"updated":"2014-11-14 13:14:17.000000000","message":"I still have doubts about this, but let\u0027s leave it for other reviewers","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"fc1be8db76b3bd4f2f97e5118ff1837abcea7b20","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":129,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Hardware properties to be discovered:"},{"line_number":132,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_52e54836","line":129,"in_reply_to":"5a890539_1ec2fe58","updated":"2014-11-14 23:57:06.000000000","message":"I can understand Dmitry\u0027s doubts, if a node has properties set and the discovered properties differ has there been a hardware failure that needs to be looked at?","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"81ba91a31beedd263caf5e1bbbc63cb7c5476eb2","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":129,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Hardware properties to be discovered:"},{"line_number":132,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_c9dfb9d4","line":129,"in_reply_to":"5a890539_52e54836","updated":"2014-11-17 07:01:25.000000000","message":"Won\u0027t non-discovery of failed hardware lead to \u0027DISCOVERYFAIL\u0027? If no, then even during first discovery we may skip the failed hardware and pass the discovery of the node with reduced hardware capabilities.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"727fc3ece026da436bea128b9b4519939ef32ebb","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":129,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Hardware properties to be discovered:"},{"line_number":132,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_efc6f067","line":129,"in_reply_to":"5a890539_c9dfb9d4","updated":"2014-11-18 22:02:58.000000000","message":"How do you differentiate between hardware failure and the hardware added/deleted?\n\nIt will mark the provision_state as DISCOVERYFAIL if there is hardware failure.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"fc1be8db76b3bd4f2f97e5118ff1837abcea7b20","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":208,"context_line":"  to INIT and target_provision_state to None on success."},{"line_number":209,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":210,"context_line":"  and the error is updated at the last error."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":213,"context_line":"  even if one of the properties (scheduler required properties) could"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_d25698cd","line":210,"updated":"2014-11-14 23:57:06.000000000","message":"is the node also placed in maintenance mode upon failure like is purposed in the zapping nodes spec?","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"69ef8d8162d188d2d0e09a36e408d0e05248bd76","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":208,"context_line":"  to INIT and target_provision_state to None on success."},{"line_number":209,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":210,"context_line":"  and the error is updated at the last error."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":213,"context_line":"  even if one of the properties (scheduler required properties) could"}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_63727412","line":210,"in_reply_to":"5a890539_d25698cd","updated":"2014-11-15 08:39:14.000000000","message":"I dont think we require to put in maintenence mode as state is set to Failure. anyway i dont have any strong opinion on this. What is your opinion ?","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"fc1be8db76b3bd4f2f97e5118ff1837abcea7b20","unresolved":false,"context_lines":[{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Dependencies"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_7215e4e3","line":320,"updated":"2014-11-14 23:57:06.000000000","message":"would it be worth adding to node.extra a last discovered tag with a date time stamp? i\u0027m not sure.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ec219655fd06f4520741d0e39b6720354e8c83fc","unresolved":false,"context_lines":[{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Dependencies"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_f16fd728","line":320,"in_reply_to":"5a890539_434c98c8","updated":"2014-11-18 09:21:11.000000000","message":"+1 to having last discovered tag","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"81ba91a31beedd263caf5e1bbbc63cb7c5476eb2","unresolved":false,"context_lines":[{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Dependencies"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_c98df9d4","line":320,"in_reply_to":"5a890539_434c98c8","updated":"2014-11-17 07:01:25.000000000","message":"I think it would be useful to have such info to know about the last updation through discovery. This may be useful in case of reduced hardware getting listed due to hardware failures.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"69ef8d8162d188d2d0e09a36e408d0e05248bd76","unresolved":false,"context_lines":[{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Dependencies"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_434c98c8","line":320,"in_reply_to":"5a890539_7215e4e3","updated":"2014-11-15 08:39:14.000000000","message":"It can be done but i am not sure if it will be really helpful","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"727fc3ece026da436bea128b9b4519939ef32ebb","unresolved":false,"context_lines":[{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Dependencies"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":39,"id":"5a890539_cf77743a","line":320,"in_reply_to":"5a890539_f16fd728","updated":"2014-11-18 22:02:58.000000000","message":"Ok. WIll add this in spec.","commit_id":"e6e475cd2fd264e682a0c469720e4c305fcd7812"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Today, Ironic is unable to automatically detect node properties"},{"line_number":23,"context_line":"when issuing \u0027node-create\u0027 or \u0027node-update\u0027 (for already"},{"line_number":24,"context_line":"registered and discovered node)."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Some of the properties which may be of interest:"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_73301d08","line":24,"updated":"2014-11-19 11:06:36.000000000","message":"This is part of the Alternative proposal to have it in the node-create/update","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Today, Ironic is unable to automatically detect node properties"},{"line_number":23,"context_line":"when issuing \u0027node-create\u0027 or \u0027node-update\u0027 (for already"},{"line_number":24,"context_line":"registered and discovered node)."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Some of the properties which may be of interest:"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_2eda9ae9","line":24,"in_reply_to":"5a890539_73301d08","updated":"2014-11-19 18:03:00.000000000","message":"Ok. Will refame the sentence.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The proposal is to introduce a new CLI (node-discover-properties)."},{"line_number":42,"context_line":"It will :"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"1. Discovers the hardware properties."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_f3f7add2","line":42,"updated":"2014-11-19 11:06:36.000000000","message":"I\u0027d rather talk about the API here, the CLI just mimics what is in the API and the CLI leaves in a different code repository. There\u0027s a section about the CLI in the spec (\"Ironic CLI impact\")","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The proposal is to introduce a new CLI (node-discover-properties)."},{"line_number":42,"context_line":"It will :"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"1. Discovers the hardware properties."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_ae94cae8","line":42,"in_reply_to":"5a890539_f3f7add2","updated":"2014-11-19 18:03:00.000000000","message":"Ok. But there is section on REST API also. I have covered the APIs there.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_d8480e8a","line":59,"updated":"2014-11-19 11:06:36.000000000","message":"isn\u0027t this block (starting at \"The use cases covered as part\" ...) just duplicated with the first paragraph? They say exactly the same thing, discover properties and ports.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The spec proposes to create port for all the MAC addresses"},{"line_number":58,"context_line":"discovered. If a port already exists for a MAC address, it"},{"line_number":59,"context_line":"will not create a new port for that MAC address."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_4e7366e7","line":59,"in_reply_to":"5a890539_d8480e8a","updated":"2014-11-19 18:03:00.000000000","message":"Ok will remove.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":65,"context_line":"  added as part of ManagementInterface::"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_93082993","line":63,"updated":"2014-11-19 11:06:36.000000000","message":"I don\u0027t mind much but I don\u0027t see why we need to add blocks of code here, it\u0027s not a code review, and the idea is that people that also do not code should be able to review specs as well (like operators). Specs is more a macro idea, saying something like may be enough:\n\n A new RPC method called `discover_hardware_properties` is going to be add. The method will be responsible for ...","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"New functions proposed to be added under ironic tree:"},{"line_number":62,"context_line":"-----------------------------------------------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* To support node properties discovery, 1 new abstract function will be"},{"line_number":65,"context_line":"  added as part of ManagementInterface::"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_6e574227","line":63,"in_reply_to":"5a890539_93082993","updated":"2014-11-19 18:03:00.000000000","message":"Ok. Will reword like that.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    class NodeStatesController(rest.RestController):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        def discover(self, node_uuid):"},{"line_number":93,"context_line":"            \"\"\"Discover the node properties and update the node object."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            :param node_uuid: UUID of a node."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_f3240d10","line":92,"updated":"2014-11-19 11:06:36.000000000","message":"Ditto here, instead of showing an implementation of the API side, we should show how it will look like outside coding, e.g\n\nA new API endpoint  /v1/nodes/\u003cuuid\u003e/discover is going to be added to expose ...","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    class NodeStatesController(rest.RestController):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        def discover(self, node_uuid):"},{"line_number":93,"context_line":"            \"\"\"Discover the node properties and update the node object."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            :param node_uuid: UUID of a node."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_ce3596f8","line":92,"in_reply_to":"5a890539_f3240d10","updated":"2014-11-19 18:03:00.000000000","message":"OK.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":100,"context_line":"---------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* node-discover-properties calls rpcapi discover_hardware_properties()"},{"line_number":103,"context_line":"  to discover the hardware attributes."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* the rpcapi discover_hardware_properties() spawns a thread which"},{"line_number":106,"context_line":"  calls discover_hardware_properties() management function"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_1821b6b4","line":103,"updated":"2014-11-19 11:06:36.000000000","message":"By \"node-discover-properties\" you mean the CLI command? If so it should call the API (v1/nodes/\u003cuuid\u003e/discover) not the RPC method","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":100,"context_line":"---------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* node-discover-properties calls rpcapi discover_hardware_properties()"},{"line_number":103,"context_line":"  to discover the hardware attributes."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* the rpcapi discover_hardware_properties() spawns a thread which"},{"line_number":106,"context_line":"  calls discover_hardware_properties() management function"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_ae176a53","line":103,"in_reply_to":"5a890539_1821b6b4","updated":"2014-11-19 18:03:00.000000000","message":"Yes. Correct. I meant it to be CLI. Thanks for pointing this out.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":105,"context_line":"* the rpcapi discover_hardware_properties() spawns a thread which"},{"line_number":106,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":107,"context_line":"  to discover hardware properties and creation of ports."},{"line_number":108,"context_line":"  The management interface saves the node object with discovered"},{"line_number":109,"context_line":"  properties."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* The new states are to be used for the nodes:"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_9362e9ab","line":108,"updated":"2014-11-19 11:06:36.000000000","message":"maybe worth mentioning that the discovered properties are going to be stored at the \u0027properties\u0027 attribute of a node","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":105,"context_line":"* the rpcapi discover_hardware_properties() spawns a thread which"},{"line_number":106,"context_line":"  calls discover_hardware_properties() management function"},{"line_number":107,"context_line":"  to discover hardware properties and creation of ports."},{"line_number":108,"context_line":"  The management interface saves the node object with discovered"},{"line_number":109,"context_line":"  properties."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* The new states are to be used for the nodes:"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_8e02ae09","line":108,"in_reply_to":"5a890539_9362e9ab","updated":"2014-11-19 18:03:00.000000000","message":"Ok.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2d9dae1bf06d1ea2db8f48a639ebbfd33be04712","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  DISCOVERING, DISCOVERYFAIL, INIT."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":115,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":116,"context_line":"  management interface. The management interface"},{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_986206ac","line":115,"updated":"2014-11-19 10:20:16.000000000","message":"IMO target_provision_state will be INIT - that\u0027s what we expect to happen. wait_callback is replaced by wait flag on node and it not required for OOB.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  DISCOVERING, DISCOVERYFAIL, INIT."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":115,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":116,"context_line":"  management interface. The management interface"},{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_8947084b","line":115,"in_reply_to":"5a890539_739addc6","updated":"2014-11-19 18:03:00.000000000","message":"I am still not clear why the node shall be set to INIT state in the starting of discovery. As i understood so far, the INIT is set after discovery is successful. Correct me if i am wrong.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  DISCOVERING, DISCOVERYFAIL, INIT."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":115,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":116,"context_line":"  management interface. The management interface"},{"line_number":117,"context_line":"  discover_hardware_properties() updates the provision_state"},{"line_number":118,"context_line":"  to INIT and target_provision_state to None on success."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_739addc6","line":115,"in_reply_to":"5a890539_986206ac","updated":"2014-11-19 11:06:36.000000000","message":"Yeah, there\u0027s a discussion going on whether the ENROLL state is necessary, if not nodes will start on INIT already and the target_provision_state will probably be DISCOVERED (See the comments on the machine state spec). But it\u0027s in the air still.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2d9dae1bf06d1ea2db8f48a639ebbfd33be04712","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_b825025e","line":122,"updated":"2014-11-19 10:20:16.000000000","message":"s/target_provision state/provision state/","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_d3a9d1e0","line":122,"in_reply_to":"5a890539_b825025e","updated":"2014-11-19 11:06:36.000000000","message":"+1","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  Upon failure, the provision_state is set to DISCOVERYFAIL"},{"line_number":120,"context_line":"  and the error is updated at the last error."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_496440e5","line":122,"in_reply_to":"5a890539_b825025e","updated":"2014-11-19 18:03:00.000000000","message":"Ok.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2d9dae1bf06d1ea2db8f48a639ebbfd33be04712","unresolved":false,"context_lines":[{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_78b9daeb","line":125,"updated":"2014-11-19 10:20:16.000000000","message":"I disagree. Ideally failed operation should not affect a node.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_93866964","line":125,"in_reply_to":"5a890539_78b9daeb","updated":"2014-11-19 11:06:36.000000000","message":"+1\n\nThis partially failure is confused. You can think of it as a transaction, you only save() the node if all the properties where discovered.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_29953488","line":125,"in_reply_to":"5a890539_78b9daeb","updated":"2014-11-19 18:03:00.000000000","message":"But if say out of cpus, memory, disks it is not able to discover one of them which are must for scheduling,then can we mark it as success and state to INIT(or whatever state for discovery sucessful ..)","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":122,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":123,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":124,"context_line":"  not be discovered. The rest of the discovered properties would be"},{"line_number":125,"context_line":"  updated in the node."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_c93bd09a","line":125,"in_reply_to":"5a890539_93866964","updated":"2014-11-19 18:03:00.000000000","message":"Ok. You mean it should be either all or none.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2d9dae1bf06d1ea2db8f48a639ebbfd33be04712","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":129,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Hardware properties to be discovered:"},{"line_number":132,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_389e7264","line":129,"updated":"2014-11-19 10:20:16.000000000","message":"Does it mean it will delete the existing ports? Otherwise, it\u0027s not complete. That\u0027s why I\u0027m feeling somewhat uncertain about overwriting data.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":128,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":129,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Hardware properties to be discovered:"},{"line_number":132,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_2971b477","line":129,"in_reply_to":"5a890539_389e7264","updated":"2014-11-19 18:03:00.000000000","message":"Yes. It will delete the existing ports too whose mac address no longer exist.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* The URL for REST API will be like:"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/discover"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"* The new states are to be used for the nodes:"},{"line_number":202,"context_line":"  DISCOVERING, DISCOVERYFAIL, INIT."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_531c01c2","line":199,"updated":"2014-11-19 11:06:36.000000000","message":"Will it return HTTP 202 (Accepted)? When not implemented by a driver what it will return? Which HTTP code?\n\nThe HTTP Location HEADER will point to /v1/nodes/\u003cuuid\u003e/states ? So users can track the progress of the discover?","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* The URL for REST API will be like:"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  PUT /v1/nodes/\u003cnode_uuid\u003e/discover"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"* The new states are to be used for the nodes:"},{"line_number":202,"context_line":"  DISCOVERING, DISCOVERYFAIL, INIT."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_29e61417","line":199,"in_reply_to":"5a890539_531c01c2","updated":"2014-11-19 18:03:00.000000000","message":"the return status will be 202 as it is asynch.\nI didnt get second comment though.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":274,"context_line":"------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"None. As the rpcapi will be asynchronous in nature, the current"},{"line_number":277,"context_line":"node-create will see no impact."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Other deployer impact"},{"line_number":280,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_332e95a6","line":277,"updated":"2014-11-19 11:06:36.000000000","message":"This is part of the Alternative proposal to have it in the node-create","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":274,"context_line":"------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"None. As the rpcapi will be asynchronous in nature, the current"},{"line_number":277,"context_line":"node-create will see no impact."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Other deployer impact"},{"line_number":280,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_89ed48f2","line":277,"in_reply_to":"5a890539_332e95a6","updated":"2014-11-19 18:03:00.000000000","message":":) will update the section.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":307,"context_line":"  hardware properties for already registered node.(ironic-client"},{"line_number":308,"context_line":"  changes)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"* Introducing new states as stated above."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* The REST API NodeStatesController.provision to check for the"},{"line_number":313,"context_line":"  provision_state to be as INIT before starting deploy."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_1308b92c","line":310,"updated":"2014-11-19 11:06:36.000000000","message":"This is going to be done by another spec https://review.openstack.org/#/c/133828/","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":307,"context_line":"  hardware properties for already registered node.(ironic-client"},{"line_number":308,"context_line":"  changes)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"* Introducing new states as stated above."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* The REST API NodeStatesController.provision to check for the"},{"line_number":313,"context_line":"  provision_state to be as INIT before starting deploy."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_69c73c65","line":310,"in_reply_to":"5a890539_1308b92c","updated":"2014-11-19 18:03:00.000000000","message":"Yes. Oh this stmt is not removed. I already placed my spec as dependent spec on the states spec. WIll remove the stmt.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":310,"context_line":"* Introducing new states as stated above."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* The REST API NodeStatesController.provision to check for the"},{"line_number":313,"context_line":"  provision_state to be as INIT before starting deploy."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":316,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_8e039c0c","line":313,"updated":"2014-11-19 11:06:36.000000000","message":"?","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":310,"context_line":"* Introducing new states as stated above."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* The REST API NodeStatesController.provision to check for the"},{"line_number":313,"context_line":"  provision_state to be as INIT before starting deploy."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":316,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_099eb856","line":313,"in_reply_to":"5a890539_8e039c0c","updated":"2014-11-19 18:03:00.000000000","message":"Oh i think this section is not updated with review comments and dicussion. Will remove this. Initially i thought deploy needs to check if state is INIT or not before starting deploy. But that is not required as i saw states spec and i had discussion with you/Dmitry on IRC.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":312,"context_line":"* The REST API NodeStatesController.provision to check for the"},{"line_number":313,"context_line":"  provision_state to be as INIT before starting deploy."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_6e2590ad","line":315,"updated":"2014-11-19 11:06:36.000000000","message":"?","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":312,"context_line":"* The REST API NodeStatesController.provision to check for the"},{"line_number":313,"context_line":"  provision_state to be as INIT before starting deploy."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_49c6004b","line":315,"in_reply_to":"5a890539_6e2590ad","updated":"2014-11-19 18:03:00.000000000","message":"will reword it.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_ce24c4b1","line":317,"updated":"2014-11-19 11:06:36.000000000","message":"new method to the rpcapi","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"* Adding new hardware functionalities to base.ManagementInterface."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_89a9c87d","line":317,"in_reply_to":"5a890539_ce24c4b1","updated":"2014-11-19 18:03:00.000000000","message":"ok.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"* The node.extra will be updated with the last discovered time"},{"line_number":322,"context_line":"  as `last_discovered`."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_6e4cb077","line":319,"updated":"2014-11-19 11:06:36.000000000","message":"not needed","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* Adding new rpcapi."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"* The node.extra will be updated with the last discovered time"},{"line_number":322,"context_line":"  as `last_discovered`."}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_e9e6cce7","line":319,"in_reply_to":"5a890539_6e4cb077","updated":"2014-11-19 18:03:00.000000000","message":"k","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"* The node.extra will be updated with the last discovered time"},{"line_number":322,"context_line":"  as `last_discovered`."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Dependencies"},{"line_number":325,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_8e51dc10","line":322,"updated":"2014-11-19 11:06:36.000000000","message":"It\u0027s not mentioned anywhere else. We already have a updated_at field, that could be used instead","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":319,"context_line":"* Conductor Manager need to define the method similar to rpcapi."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"* The node.extra will be updated with the last discovered time"},{"line_number":322,"context_line":"  as `last_discovered`."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Dependencies"},{"line_number":325,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_a95f6474","line":322,"in_reply_to":"5a890539_8e51dc10","updated":"2014-11-19 18:03:00.000000000","message":"As i understand we want to seperate the discovery from node-update. The updated_at is more related to node-update rather than discovery. i can use that field but it will not be able to differentiate between whether node is updated as part of user initiated node-updated or as part of discovery.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4668885fc38aaa23ad5ef013068a11a709803674","unresolved":false,"context_lines":[{"line_number":339,"context_line":"Documentation Impact"},{"line_number":340,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"None."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"References"},{"line_number":345,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_ce7204ad","line":342,"updated":"2014-11-19 11:06:36.000000000","message":"We should document how discover can be triggered and all, that would be nice","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d0d444366921c9e2f8ddc2f83a5b351a60e73bcd","unresolved":false,"context_lines":[{"line_number":339,"context_line":"Documentation Impact"},{"line_number":340,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"None."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"References"},{"line_number":345,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":40,"id":"5a890539_c964b04b","line":342,"in_reply_to":"5a890539_ce7204ad","updated":"2014-11-19 18:03:00.000000000","message":"ok.","commit_id":"fc2ade61240f6ce75b24520006ab6221fe37008f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e9acdeb6c79575fc10345545178394e015119a24","unresolved":false,"context_lines":[{"line_number":47,"context_line":"   that MAC address. It will take care of adding as well as deleting"},{"line_number":48,"context_line":"   of the ports for the NIC changes. Ideally the ports shall be created"},{"line_number":49,"context_line":"   for PXE enabled mac addresses, however it is each driver responsibility"},{"line_number":50,"context_line":"   to get list of pxe enabled mac addresses from the hardware."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Following would be done to achieve properties discovery:"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_946e2ac8","line":50,"updated":"2014-11-20 09:33:51.000000000","message":"Well ok, let\u0027s leave it like that.","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e9acdeb6c79575fc10345545178394e015119a24","unresolved":false,"context_lines":[{"line_number":145,"context_line":"  Refer to https://review.openstack.org/#/c/133828 for more"},{"line_number":146,"context_line":"  details on each state."},{"line_number":147,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":148,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":149,"context_line":"  management interface."},{"line_number":150,"context_line":"  Upon success, the target_provision_state is set to INIT."},{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_14b95a2e","line":148,"updated":"2014-11-20 09:33:51.000000000","message":"\"target_provision_state to wait_callback\", there\u0027ll be no wait_callback state, target state will probably be INIT","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"441d80e53cbf7efb5991c7f36d7b705d2daf3eb2","unresolved":false,"context_lines":[{"line_number":145,"context_line":"  Refer to https://review.openstack.org/#/c/133828 for more"},{"line_number":146,"context_line":"  details on each state."},{"line_number":147,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":148,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":149,"context_line":"  management interface."},{"line_number":150,"context_line":"  Upon success, the target_provision_state is set to INIT."},{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_1a4b415a","line":148,"in_reply_to":"5a890539_14b95a2e","updated":"2014-11-20 10:31:50.000000000","message":"will update in next patch as discussed on IRC.","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e9acdeb6c79575fc10345545178394e015119a24","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":148,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":149,"context_line":"  management interface."},{"line_number":150,"context_line":"  Upon success, the target_provision_state is set to INIT."},{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"},{"line_number":152,"context_line":"  and the error is updated at the last error."},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_34b49634","line":150,"updated":"2014-11-20 09:33:51.000000000","message":"s/target_provision_state/provision_state/","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"441d80e53cbf7efb5991c7f36d7b705d2daf3eb2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  The provision_state is set to DISCOVERING and"},{"line_number":148,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":149,"context_line":"  management interface."},{"line_number":150,"context_line":"  Upon success, the target_provision_state is set to INIT."},{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"},{"line_number":152,"context_line":"  and the error is updated at the last error."},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_3a463d50","line":150,"in_reply_to":"5a890539_34b49634","updated":"2014-11-20 10:31:50.000000000","message":"ditto","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e9acdeb6c79575fc10345545178394e015119a24","unresolved":false,"context_lines":[{"line_number":148,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":149,"context_line":"  management interface."},{"line_number":150,"context_line":"  Upon success, the target_provision_state is set to INIT."},{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"},{"line_number":152,"context_line":"  and the error is updated at the last error."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_54820253","line":151,"updated":"2014-11-20 09:33:51.000000000","message":"ditto","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"441d80e53cbf7efb5991c7f36d7b705d2daf3eb2","unresolved":false,"context_lines":[{"line_number":148,"context_line":"  target_provision_state to wait_callback before invoking"},{"line_number":149,"context_line":"  management interface."},{"line_number":150,"context_line":"  Upon success, the target_provision_state is set to INIT."},{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"},{"line_number":152,"context_line":"  and the error is updated at the last error."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_5a74e99b","line":151,"in_reply_to":"5a890539_54820253","updated":"2014-11-20 10:31:50.000000000","message":"ditto","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e9acdeb6c79575fc10345545178394e015119a24","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"},{"line_number":152,"context_line":"  and the error is updated at the last error."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":155,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":156,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":157,"context_line":"  So its either all or none."}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_b47fa665","line":154,"updated":"2014-11-20 09:33:51.000000000","message":"ditto","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"441d80e53cbf7efb5991c7f36d7b705d2daf3eb2","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  Upon failure, the target_provision_state is set to DISCOVERYFAIL"},{"line_number":152,"context_line":"  and the error is updated at the last error."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":155,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":156,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":157,"context_line":"  So its either all or none."}],"source_content_type":"text/x-rst","patch_set":41,"id":"5a890539_7a77e59f","line":154,"in_reply_to":"5a890539_b47fa665","updated":"2014-11-20 10:31:50.000000000","message":"ditto","commit_id":"8e6a2612b2d4c70d308f06cffc08dad8fadee736"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f4eddebcb577bfd9737e9ae678b79cbed7f91ab9","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  * Response body is empty if successful."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"  * When discovery done, Puts a node.provision_state as INIT"},{"line_number":145,"context_line":"    and node.target_provision_state as None."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* The possible new states are:"}],"source_content_type":"text/x-rst","patch_set":42,"id":"5a890539_221b6f1d","line":144,"updated":"2014-11-20 13:08:57.000000000","message":"nit: s/discovery done/discovery is finished/\n\nnit2: s/Puts/puts/","commit_id":"70560ccd3ef35d516f9adcd504238a01fd2652ec"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f4eddebcb577bfd9737e9ae678b79cbed7f91ab9","unresolved":false,"context_lines":[{"line_number":165,"context_line":"  node.target_provision_state \u003d None"},{"line_number":166,"context_line":"  And the error is updated at the last error."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  The target_provision state will be marked as DISOVERYFAIL"},{"line_number":169,"context_line":"  even if one of the properties (scheduler required properties) could"},{"line_number":170,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":171,"context_line":"  So its either all or none."}],"source_content_type":"text/x-rst","patch_set":42,"id":"5a890539_82d34337","line":168,"updated":"2014-11-20 13:08:57.000000000","message":"s/target_provision state/provision state/","commit_id":"70560ccd3ef35d516f9adcd504238a01fd2652ec"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":48,"context_line":"   of the ports for the NIC changes. Ideally the ports shall be created"},{"line_number":49,"context_line":"   for PXE enabled mac addresses, however it is each driver responsibility"},{"line_number":50,"context_line":"   to get list of pxe enabled mac addresses from the hardware."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Following would be done to achieve properties discovery:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A new endpoint will be introduced for discovery as"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_c9ec7df6","line":51,"updated":"2014-11-20 20:51:18.000000000","message":"What happens to ports that were previosly associated with the Node, which the discovery does not identify as present on the node any longer? Will they be deleted? orphaned? or left on the node anyway?","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ec49d8d2fa52090542d7146276bba9f150ba7ec2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"   of the ports for the NIC changes. Ideally the ports shall be created"},{"line_number":49,"context_line":"   for PXE enabled mac addresses, however it is each driver responsibility"},{"line_number":50,"context_line":"   to get list of pxe enabled mac addresses from the hardware."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Following would be done to achieve properties discovery:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A new endpoint will be introduced for discovery as"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_b255dac7","line":51,"in_reply_to":"5a890539_c9ec7df6","updated":"2014-11-20 22:19:17.000000000","message":"If the NIC are no longer associated to the node, the related ports will be deleted.","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    * 404 if the node with \u003cuuid\u003e does not exist."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/discover"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_e9ba19e0","line":136,"updated":"2014-11-20 20:51:18.000000000","message":"Missing 409 CONFLICT if the Node is in a state which can not transition to DISCOVERING","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ec49d8d2fa52090542d7146276bba9f150ba7ec2","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    * 404 if the node with \u003cuuid\u003e does not exist."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/discover"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_ecd06755","line":136,"in_reply_to":"5a890539_e9ba19e0","updated":"2014-11-20 22:19:17.000000000","message":"Ok. Will add.","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  The provision state will be marked as DISOVERYFAIL even if one"},{"line_number":169,"context_line":"  of the properties (scheduler required properties) could"},{"line_number":170,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":171,"context_line":"  So its either all or none."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":174,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_09be85d4","line":171,"updated":"2014-11-20 20:51:18.000000000","message":"++","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":175,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* The node.extra will be updated with `last_discovered` time so"},{"line_number":178,"context_line":"  as to know last invocation of discovery APIs."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"RPC API impact"},{"line_number":181,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_29b501ee","line":178,"updated":"2014-11-20 20:51:18.000000000","message":"This is fine for now, but we may want to formalize this in an actual db field (rather than the extras JSON)","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ec49d8d2fa52090542d7146276bba9f150ba7ec2","unresolved":false,"context_lines":[{"line_number":175,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* The node.extra will be updated with `last_discovered` time so"},{"line_number":178,"context_line":"  as to know last invocation of discovery APIs."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"RPC API impact"},{"line_number":181,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_acbe5ffd","line":178,"in_reply_to":"5a890539_29b501ee","updated":"2014-11-20 22:19:17.000000000","message":"I can do that actually. I will propose it as new element in node table.","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":180,"context_line":"RPC API impact"},{"line_number":181,"context_line":"--------------"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* A new rpcapi method discover_hardware_properties() will be added."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Driver API impact"},{"line_number":186,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_49b88de5","line":183,"updated":"2014-11-20 20:51:18.000000000","message":"missing detail here -- this should be a synchronous call to the conductor, to start the work, as with other calls it should create a worker thread to perform the task.\n\nThis will allow the API service to receive acknowledgement from the conductor that the work began (so it returns 202 to client) or a failure (so it returns failure to client).","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ec49d8d2fa52090542d7146276bba9f150ba7ec2","unresolved":false,"context_lines":[{"line_number":180,"context_line":"RPC API impact"},{"line_number":181,"context_line":"--------------"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* A new rpcapi method discover_hardware_properties() will be added."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Driver API impact"},{"line_number":186,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_0c6213ad","line":183,"in_reply_to":"5a890539_49b88de5","updated":"2014-11-20 22:19:17.000000000","message":"I actually removed the details as Lucas suggested. It were there.(atleast some part of your comment was there).","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":185,"context_line":"Driver API impact"},{"line_number":186,"context_line":"-----------------"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"It will add new abstract method discover_hardware_properties()"},{"line_number":189,"context_line":"to the base.ManagementInterface."},{"line_number":190,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":191,"context_line":"A driver may choose to implement the management interface."}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_69ce2985","line":188,"updated":"2014-11-20 20:51:18.000000000","message":"This should not be an abstract class -- if it is, it will require all drivers to implement it immediately.\n\nThis should be a realized class, whose default implementation is to raise NotImplementedError","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ec49d8d2fa52090542d7146276bba9f150ba7ec2","unresolved":false,"context_lines":[{"line_number":185,"context_line":"Driver API impact"},{"line_number":186,"context_line":"-----------------"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"It will add new abstract method discover_hardware_properties()"},{"line_number":189,"context_line":"to the base.ManagementInterface."},{"line_number":190,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":191,"context_line":"A driver may choose to implement the management interface."}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_8c6d239c","line":188,"in_reply_to":"5a890539_69ce2985","updated":"2014-11-20 22:19:17.000000000","message":"Ok.","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"67ef1fe011ed2345cbd9c70471b95620ae0c2c90","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"* The node.extra will be updated with the last discovered time"},{"line_number":264,"context_line":"  as `last_discovered`."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Dependencies"},{"line_number":267,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_89c9957b","line":265,"updated":"2014-11-20 20:51:18.000000000","message":"This should include a reference implementation in the iLO driver. That doesn\u0027t need another spec, in my opinion, just add it as a work item here.","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ec49d8d2fa52090542d7146276bba9f150ba7ec2","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"* The node.extra will be updated with the last discovered time"},{"line_number":264,"context_line":"  as `last_discovered`."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Dependencies"},{"line_number":267,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":43,"id":"5a890539_2cac2fa0","line":265,"in_reply_to":"5a890539_89c9957b","updated":"2014-11-20 22:19:17.000000000","message":"Ok. the ilo spec is already dependent on this spec. I will just then add it here. and abandon the ilo one.","commit_id":"c9b662a379e97a079dbc5033d59852406ea1399d"},{"author":{"_account_id":114,"name":"Victor Lowther","email":"victor.lowther@gmail.com","username":"victor-lowther"},"change_message_id":"099ceef603f32542c83c7ac307c83619bf3cf412","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"  * Puts a node.provision_state as DISCOVERING."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.target_provision_state as INIT."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Method type: PUT"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":46,"id":"5a890539_21499b8e","line":128,"updated":"2014-12-01 17:16:57.000000000","message":"My primary concern here is how this interacts with hardware config changes that may happen as part of ZAPPING, which can change memory size (due to enabling memory hotspares and/or various redundancy schemes), disk size (due to RAID size), cpu cores and arch (via cpu-oriented BIOS settings), and nic ports/MAC address mappings (by disabling/enabling physical ports and partitioning those ports).","commit_id":"4b5f0d8c79a49e693a9ba3f3ab7d7f1580b5c8d1"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"2fb54366780d9d345ba5a85559b6c9e90cff2b4c","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"  * Puts a node.provision_state as DISCOVERING."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.target_provision_state as INIT."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Method type: PUT"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":46,"id":"5a890539_1a479778","line":128,"in_reply_to":"5a890539_21499b8e","updated":"2014-12-02 04:13:36.000000000","message":"I believe in case of any hardware/config changes for scheduling properties, discovery needs to be executed again just before making it to available to Nova. That said it should be done after zapping and before AVAILABLE. At that point the discovery gets the latest and correct introspected values.\n\nSince for config changes, hardware properties needs to be discovered before zapping, hence discovery needs to be done two times in the lifecycle of the hardware.\n\n1. ENROLL -\u003e INIT -\u003e DISCOVERING -\u003e INIT\n\n2. INIT -\u003e ZAPPING -\u003e DISCOVERING -\u003e AVAILABLE\n\nThe above state transition is just reflecting that when discovery shall be done.","commit_id":"4b5f0d8c79a49e693a9ba3f3ab7d7f1580b5c8d1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"610733bd1ee1703c7ff649023810c44b34b89ec7","unresolved":false,"context_lines":[{"line_number":244,"context_line":"Other deployer impact"},{"line_number":245,"context_line":"---------------------"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"None."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"Developer impact"},{"line_number":250,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":46,"id":"5a890539_55db0e21","line":247,"updated":"2014-11-27 08:46:47.000000000","message":"new configuration option should be mentioned here.","commit_id":"4b5f0d8c79a49e693a9ba3f3ab7d7f1580b5c8d1"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"2fb54366780d9d345ba5a85559b6c9e90cff2b4c","unresolved":false,"context_lines":[{"line_number":244,"context_line":"Other deployer impact"},{"line_number":245,"context_line":"---------------------"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"None."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"Developer impact"},{"line_number":250,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":46,"id":"5a890539_5ad59fb5","line":247,"in_reply_to":"5a890539_55db0e21","updated":"2014-12-02 04:13:36.000000000","message":"I didnt get Dmitry. Waht are you referring to here?","commit_id":"4b5f0d8c79a49e693a9ba3f3ab7d7f1580b5c8d1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* A new endpoint will be introduced for discovery as"},{"line_number":57,"context_line":"  /v1/nodes/\u003cuuid\u003e/introspect"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Introduce a new CLI node-discover-properties"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Hardware properties to be discovered:"}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_a35f3774","line":59,"updated":"2014-12-02 10:04:17.000000000","message":"I suggest s/node-discover-properties/node-introspect/","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-discover-properties CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-discover-properties \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_434e93c3","line":119,"updated":"2014-12-02 10:04:17.000000000","message":"ditto","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to DISCOVERING"},{"line_number":143,"context_line":"      state."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/introspect"}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_634d4fc4","line":142,"updated":"2014-12-02 10:04:17.000000000","message":"s/DISCOVER/INTROSPECT/","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":158,"context_line":"  details on each state."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  Initial state :"},{"line_number":161,"context_line":"  node.provision_state \u003d DISCOVERING"},{"line_number":162,"context_line":"  node.target_provision_state \u003d INIT"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  On Success:"}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_a3c65714","line":161,"updated":"2014-12-02 10:04:17.000000000","message":"ditto","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  On Failure:"},{"line_number":170,"context_line":"  Final State:"},{"line_number":171,"context_line":"  node.provision_state \u003d DISCOVERYFAIL"},{"line_number":172,"context_line":"  node.target_provision_state \u003d None"},{"line_number":173,"context_line":"  And the error is updated at the last error."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_83df9bd5","line":171,"updated":"2014-12-02 10:04:17.000000000","message":"ditto","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":172,"context_line":"  node.target_provision_state \u003d None"},{"line_number":173,"context_line":"  And the error is updated at the last error."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  The provision state will be marked as DISOVERYFAIL even if one"},{"line_number":176,"context_line":"  of the properties (scheduler required properties) could"},{"line_number":177,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":178,"context_line":"  So its either all or none."}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_03ebab78","line":175,"updated":"2014-12-02 10:04:17.000000000","message":"ditto","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":182,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* Implement timeouts for discovery. There should be a periodic task in the"},{"line_number":185,"context_line":"  conductor, checking that every mapped node is not in DISCOVERING state for"},{"line_number":186,"context_line":"  more then ``introspection_timeout``. This will be added as a config"},{"line_number":187,"context_line":"  option in /etc/ironic/ironic.conf."},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_83f6bb5b","line":185,"updated":"2014-12-02 10:04:17.000000000","message":"ditto","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":209,"context_line":"-----------------"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"It will add new interface IntrospectionInterface with"},{"line_number":212,"context_line":"the method introspect_hardware()."},{"line_number":213,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":214,"context_line":"A driver may choose to implement the Introspection interface."},{"line_number":215,"context_line":""}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_23afc72c","line":212,"updated":"2014-12-02 10:04:17.000000000","message":"would be nice to see a class definition here","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":249,"context_line":"Other deployer impact"},{"line_number":250,"context_line":"---------------------"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"None."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"Developer impact"},{"line_number":255,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_e36cdf0a","line":252,"updated":"2014-12-02 10:04:17.000000000","message":"introspection_timeout option should be mention here","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1efedeb6ca1ed1698226b0a4880bb3c651be1433","unresolved":false,"context_lines":[{"line_number":254,"context_line":"Developer impact"},{"line_number":255,"context_line":"----------------"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"The drivers who need to implement base.ManagementInterface(),"},{"line_number":258,"context_line":"may decide to implement/define the abstract methods added by this"},{"line_number":259,"context_line":"proposal."},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":47,"id":"5a890539_63a9cf23","line":257,"updated":"2014-12-02 10:04:17.000000000","message":"IntrospectionInterface","commit_id":"12bf6872d1d0b3d4e93770925ad8710683ea4899"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Puts a node.target_provision_state as INIT."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  * Method type: PUT"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_e3cb061c","line":130,"updated":"2014-12-10 15:37:29.000000000","message":"I think INIT should be ENROLL.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Puts a node.target_provision_state as INIT."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  * Method type: PUT"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_29f96f80","line":130,"in_reply_to":"3a961159_e3cb061c","updated":"2014-12-10 16:10:15.000000000","message":"I guess target_provision_state should be MANAGED.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"  * Response body is empty if successful."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  * When inspection is finished, puts node.provision_state as INIT"},{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_83e6c2b2","line":151,"updated":"2014-12-10 15:37:29.000000000","message":"ditio","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"  * Response body is empty if successful."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  * When inspection is finished, puts node.provision_state as INIT"},{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_a92c7f03","line":151,"in_reply_to":"3a961159_83e6c2b2","updated":"2014-12-10 16:10:15.000000000","message":"Should be MANAGED I guess.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, INIT."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer to https://review.openstack.org/#/c/133828 for more"},{"line_number":158,"context_line":"  details on each state."}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_638556ac","line":155,"updated":"2014-12-10 15:37:29.000000000","message":"ditio","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, INIT."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer to https://review.openstack.org/#/c/133828 for more"},{"line_number":158,"context_line":"  details on each state."}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_093af335","line":155,"in_reply_to":"3a961159_638556ac","updated":"2014-12-10 16:10:15.000000000","message":"Should be MANAGED I guess.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, INIT."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer to https://review.openstack.org/#/c/133828 for more"},{"line_number":158,"context_line":"  details on each state."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  Initial state :"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_c3644a24","line":157,"updated":"2014-12-10 15:37:29.000000000","message":"new state machine has landed please refer to the final version: https://github.com/openstack/ironic-specs/blob/master/specs/kilo/new-ironic-state-machine.rst","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, INIT."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer to https://review.openstack.org/#/c/133828 for more"},{"line_number":158,"context_line":"  details on each state."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  Initial state :"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_c9162ba7","line":157,"in_reply_to":"3a961159_c3644a24","updated":"2014-12-10 16:10:15.000000000","message":"Done","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  Initial state :"},{"line_number":161,"context_line":"  node.provision_state \u003d INSPECTING"},{"line_number":162,"context_line":"  node.target_provision_state \u003d INIT"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  On Success:"},{"line_number":165,"context_line":"  Final State :"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_23726ee5","line":162,"updated":"2014-12-10 15:37:29.000000000","message":"s/INIT/ENROLL","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  Initial state :"},{"line_number":161,"context_line":"  node.provision_state \u003d INSPECTING"},{"line_number":162,"context_line":"  node.target_provision_state \u003d INIT"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  On Success:"},{"line_number":165,"context_line":"  Final State :"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_6921b7fa","line":162,"in_reply_to":"3a961159_23726ee5","updated":"2014-12-10 16:10:15.000000000","message":"I guess MANAGED.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  On Success:"},{"line_number":165,"context_line":"  Final State :"},{"line_number":166,"context_line":"  node.provision_state \u003d INIT"},{"line_number":167,"context_line":"  node.target_provision_state \u003d None"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  On Failure:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_c34b6a85","line":166,"updated":"2014-12-10 15:37:29.000000000","message":"Ditio","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  On Success:"},{"line_number":165,"context_line":"  Final State :"},{"line_number":166,"context_line":"  node.provision_state \u003d INIT"},{"line_number":167,"context_line":"  node.target_provision_state \u003d None"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  On Failure:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_a97abfee","line":166,"in_reply_to":"3a961159_c34b6a85","updated":"2014-12-10 16:10:15.000000000","message":"I guess MANAGED.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a3eb77b5215406d9c9afe49a4fafe8242c7acf83","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"* Add a new element `last_inspected` to the `nodes` table."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"* Add a new element `inspection_started_at` to the `nodes` table."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* The node.last_inspected  will be updated with the last discovered time."},{"line_number":302,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_8eb50933","line":299,"updated":"2014-12-10 15:37:29.000000000","message":"may be worth calling out: that the current node-show will need to be updated to add the new fields.","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"43d3e598ee5dab2a5a99cd49275a726baf7ee7e5","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"* Add a new element `last_inspected` to the `nodes` table."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"* Add a new element `inspection_started_at` to the `nodes` table."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* The node.last_inspected  will be updated with the last discovered time."},{"line_number":302,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a961159_c9c0ebe2","line":299,"in_reply_to":"3a961159_8eb50933","updated":"2014-12-10 16:10:15.000000000","message":"Done","commit_id":"b310924c3b0b2086f49c57980e4b570b4559658f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":107,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* last_inspected"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* inspection_started_at"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_64c9d977","line":109,"updated":"2014-12-10 17:35:07.000000000","message":"what is the value for this? The date/time of the most recent inspection? Of the most recent inspection where something was changed? Is it the start or end time of the inspection?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":107,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* last_inspected"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* inspection_started_at"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_55bf25fb","line":109,"in_reply_to":"3a961159_64c9d977","updated":"2014-12-11 20:12:56.000000000","message":"It is end time of inspection (the most recent inspection)","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* last_inspected"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* inspection_started_at"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Ironic CLI impact"},{"line_number":114,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_849b2571","line":111,"updated":"2014-12-10 17:35:07.000000000","message":"what is the value for this? Is it only set when an inspection is happening, and does it get cleared after the inspection is finished? Or is it always set the start time of the most recent inspection, even if that inspection finished?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"14e264a7b40019ba50df4cf472725a49ffd3cc29","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* last_inspected"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* inspection_started_at"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Ironic CLI impact"},{"line_number":114,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_9d3b48d0","line":111,"in_reply_to":"3a961159_15fafdbc","updated":"2014-12-11 20:50:58.000000000","message":"Means to say  that the time when the inspection is started is stored in this. The value is not flushed as it is required for calculation timeout at conductor level.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* last_inspected"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* inspection_started_at"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Ironic CLI impact"},{"line_number":114,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_15fafdbc","line":111,"in_reply_to":"3a961159_849b2571","updated":"2014-12-11 20:12:56.000000000","message":"It will be set even when inspection is finished because this is required to calculate the discovery time out, the amount of time for which conductor shall poll/allow discovery to happen.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_44785d2b","line":119,"updated":"2014-12-10 17:35:07.000000000","message":"I seem to recall that someone asked at the summit, for some sort of --dryrun flag, to see what the inspection would find, but not to apply that information to the node.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3640854d08f85262613ee7d5fc237a96fb824861","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_66f0d6fe","line":119,"in_reply_to":"3a961159_03746434","updated":"2014-12-11 16:48:13.000000000","message":"\u003e it would return that it had inspected/what it would change. So no need to store any information. \n\nasync call can\u0027t return anything (especially in discoverd case)","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8a7738c914a24fa7c0b3c102aecfa62a4541eb14","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_952d0d49","line":119,"in_reply_to":"3a961159_44785d2b","updated":"2014-12-10 18:43:06.000000000","message":"I also highly suggest to postpone it. This can be done later and it requires even more agreements on e.g. where to store the information. And more logic to put into discoverd :)","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_d5deb53e","line":119,"in_reply_to":"3a961159_44785d2b","updated":"2014-12-11 20:12:56.000000000","message":"not sure if we should really do seperate apply from it.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"5670081e064925768b6176491a52b689aa83b351","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_95d42d21","line":119,"in_reply_to":"3a961159_44785d2b","updated":"2014-12-10 18:40:30.000000000","message":"oh thank you ruby for remembering this.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c8b6019e53f36f84d3d64d2491c96f7ab9495e3a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_c9b0bd45","line":119,"in_reply_to":"3a961159_66f0d6fe","updated":"2014-12-11 17:08:51.000000000","message":"ohhh, it is an async call. I looked quickly and the only place where that is explicitly mentioned is in the \u0027RPC API impact\u0027 section and yeah, I skimmed that part. Maybe mention in the REST API impact section, that this is an async call?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4f51d79195cd43c591fff0435f720c917dd8b1a0","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The node-inspect CLI need to be defined."},{"line_number":117,"context_line":"The synopsis will look like:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"usage: ironic node-inspect \u003cUUID\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_03746434","line":119,"in_reply_to":"3a961159_952d0d49","updated":"2014-12-11 16:36:24.000000000","message":"for the record - I don\u0027t recall who asked for the \u0027dryrun\u0027 option; I am being a messenger here :-) I was envisioning that it would return that it had inspected/what it would change. So no need to store any information. (Of course, that means that a subsequent \u0027inspect\u0027 could result in something different but the user could explicitly invoke the API to make those changes themselves I guess.)\n\non IRC [1], around 2014-12-10T18:49:55, devananda was opposed to it because we don\u0027t have --dryrun for any other API. I think the difference (if I understand it), is that someone is issuing an \u0027inspect\u0027 and that will cause some properties to change w/o the user being able to ack that yes, they want those changes. Our other CLI allows the user to explicitly specify what is being changed.\n\nSo yeah, maybe it is outside the scope of this spec :-)\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-ironic/%23openstack-ironic.2014-12-10.log","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da00eed01e3d1e5a3de86b68323afef837b0d854","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"One new endpoint will be added, with one method:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_d542350f","line":126,"updated":"2014-12-10 18:36:07.000000000","message":"what is the BODY of the PUT request?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"One new endpoint will be added, with one method:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_078e29d0","line":126,"in_reply_to":"3a961159_d542350f","updated":"2014-12-11 20:12:56.000000000","message":"nothing is passed as an argument to the Since the PUT request in the API. Since the PATCH request need an arguement to be passed, empty dictionary is passed.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da00eed01e3d1e5a3de86b68323afef837b0d854","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Puts a node.target_provision_state as MANAGED."},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_f5457117","line":128,"updated":"2014-12-10 18:36:07.000000000","message":"nit: this changes the provision_state to INSPECTING","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Puts a node.target_provision_state as MANAGED."},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_af15314a","line":128,"in_reply_to":"3a961159_f5457117","updated":"2014-12-11 20:12:56.000000000","message":"ok","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da00eed01e3d1e5a3de86b68323afef837b0d854","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Puts a node.target_provision_state as MANAGED."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  * Method type: PUT"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_154cbd41","line":130,"updated":"2014-12-10 18:36:07.000000000","message":"nit: this changes the target_provision_state to MANAGED","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  * Puts a node.provision_state as INSPECTING."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Puts a node.target_provision_state as MANAGED."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  * Method type: PUT"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_0f048516","line":130,"in_reply_to":"3a961159_154cbd41","updated":"2014-12-11 20:12:56.000000000","message":"ok","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da00eed01e3d1e5a3de86b68323afef837b0d854","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to INSPECTING"},{"line_number":143,"context_line":"      state."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"  * URL parameters: None."},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_3547f91e","line":145,"updated":"2014-12-10 18:36:07.000000000","message":"I wonder whether this should be a separate sub-resource or not. \n\nOn the one hand, having multiple end-points which all change the /v1/nodes/\u003cuuid\u003e/states/provision resource is confusing and not ideal.\n\nOn the other hand, this allows for easy policy control -- we can limit what users are able to initiate introspection more easily if it is a separate resource.\n\nI\u0027d like to hear other\u0027s points of view on this.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8a7738c914a24fa7c0b3c102aecfa62a4541eb14","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to INSPECTING"},{"line_number":143,"context_line":"      state."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"  * URL parameters: None."},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_b5d76922","line":145,"in_reply_to":"3a961159_3547f91e","updated":"2014-12-10 18:43:06.000000000","message":"I\u0027d prefer separate things. From the user point of view changing  /v1/nodes/\u003cuuid\u003e/states/provision maybe even more confusing (at least it was for me at first) and probably exposes too much about our internal affairs.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da00eed01e3d1e5a3de86b68323afef837b0d854","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, MANAGED."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer [1] for more details on each state."},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_555645d3","line":155,"updated":"2014-12-10 18:36:07.000000000","message":"Agree with Ruby\u0027s comment here -- should be INSPECTFAIL.\n\nAlso, this should list INSPECTED state, as per the new state machine spec.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, MANAGED."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer [1] for more details on each state."},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_04ec95c6","line":155,"updated":"2014-12-10 17:35:07.000000000","message":"and INSPECTED?\n\nShould it be INSPECTFAIL (vs INSPECTIONFAIL), based on that state machine spec.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, MANAGED."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer [1] for more details on each state."},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_d5b5d5ee","line":155,"in_reply_to":"3a961159_04ec95c6","updated":"2014-12-11 20:12:56.000000000","message":"ok","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    and node.target_provision_state as None."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* The possible new states are:"},{"line_number":155,"context_line":"  INSPECTING, INSPECTIONFAIL, MANAGED."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  Refer [1] for more details on each state."},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_7a2dc594","line":155,"in_reply_to":"3a961159_555645d3","updated":"2014-12-11 20:12:56.000000000","message":"ok","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  The provision state will be marked as INSPECTIONFAIL even if one"},{"line_number":175,"context_line":"  of the properties (scheduler required properties) could"},{"line_number":176,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":177,"context_line":"  So its either all or none."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_644ab9c6","line":177,"updated":"2014-12-10 17:35:07.000000000","message":"This isn\u0027t clear to me. Do you mean that it will fail if all the required properties aren\u0027t discovered (even if they were specified manually via the user setting node.properties?)\n\nAnd do you mean that if it fails, none of the properties will be updated, even if some of them had been discovered?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4f51d79195cd43c591fff0435f720c917dd8b1a0","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  The provision state will be marked as INSPECTIONFAIL even if one"},{"line_number":175,"context_line":"  of the properties (scheduler required properties) could"},{"line_number":176,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":177,"context_line":"  So its either all or none."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_c36edc2e","line":177,"in_reply_to":"3a961159_55a0059f","updated":"2014-12-11 16:36:24.000000000","message":"Ok, thanks for clarifying; that\u0027s the behaviour I expected. I interpreted the text differently. How about something like \u0027... INSPECTIONFAIL if any of the (scheduler-required) properties could not be inspected. In this case, no properties will be updated.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8a7738c914a24fa7c0b3c102aecfa62a4541eb14","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  The provision state will be marked as INSPECTIONFAIL even if one"},{"line_number":175,"context_line":"  of the properties (scheduler required properties) could"},{"line_number":176,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":177,"context_line":"  So its either all or none."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_55a0059f","line":177,"in_reply_to":"3a961159_644ab9c6","updated":"2014-12-10 18:43:06.000000000","message":"It was suggested by me originally and yes I meant: do not modify anything, if you fail to introspect (I caught you using term discovery! :-P ). I think transaction-alike behavior is preferred, wdyt?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  The provision state will be marked as INSPECTIONFAIL even if one"},{"line_number":175,"context_line":"  of the properties (scheduler required properties) could"},{"line_number":176,"context_line":"  not be discovered and none of the properties are updated."},{"line_number":177,"context_line":"  So its either all or none."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_f0ebbfad","line":177,"in_reply_to":"3a961159_644ab9c6","updated":"2014-12-11 20:12:56.000000000","message":"Yes it fails even for a single property. It saves the data only if al the ma ndatory scheder properties are discovered.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":177,"context_line":"  So its either all or none."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_e484e9d5","line":180,"updated":"2014-12-10 17:35:07.000000000","message":"this is a nit, since we\u0027re trying to avoid using \u0027discovery\u0027 for hardware capabilities of a node, maybe s/discovery APIs/an inspect API call/.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":177,"context_line":"  So its either all or none."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_50dc9312","line":180,"in_reply_to":"3a961159_e484e9d5","updated":"2014-12-11 20:12:56.000000000","message":";) ok.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"},{"line_number":184,"context_line":"  conductor, checking that every mapped node is not in INSPECTING state for"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_04ed758b","line":181,"updated":"2014-12-10 17:35:07.000000000","message":"And we\u0027re fine with something \u0027failing\u0027 in the hardware (how would we know) that may cause a discrepancy/change between property values?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"},{"line_number":184,"context_line":"  conductor, checking that every mapped node is not in INSPECTING state for"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_af29b138","line":181,"in_reply_to":"3a961159_04ed758b","updated":"2014-12-11 20:12:56.000000000","message":"IMO, yes we should be ok. But it will be better to get others opinions.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8a7738c914a24fa7c0b3c102aecfa62a4541eb14","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"},{"line_number":184,"context_line":"  conductor, checking that every mapped node is not in INSPECTING state for"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_7572614a","line":181,"in_reply_to":"3a961159_04ed758b","updated":"2014-12-10 18:43:06.000000000","message":"Just for the record: discoverd currently does not override existing values (as requested by UI folks).","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4f51d79195cd43c591fff0435f720c917dd8b1a0","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"},{"line_number":184,"context_line":"  conductor, checking that every mapped node is not in INSPECTING state for"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_a3eb9076","line":181,"in_reply_to":"3a961159_7572614a","updated":"2014-12-11 16:36:24.000000000","message":"This spec isn\u0027t about discoverd, is it? In this spec, does \u0027automatically update node properties\u0027 mean that it will only update node properties that haven\u0027t been specified yet, or does it mean it will update if the values are different?","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3640854d08f85262613ee7d5fc237a96fb824861","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* The properties values will be overwritten with every invocation"},{"line_number":180,"context_line":"  of discovery APIs. It is done so because there may be addition/deletions"},{"line_number":181,"context_line":"  in the hardware between two invocations of the discovery CLI/APIs."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Implement timeouts for inspection. There should be a periodic task in the"},{"line_number":184,"context_line":"  conductor, checking that every mapped node is not in INSPECTING state for"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_06bc7205","line":181,"in_reply_to":"3a961159_a3eb9076","updated":"2014-12-11 16:48:13.000000000","message":"I just noting that we have disagreement with Nisha here. This spec implies overwriting values that differ, discoverd does not right now.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":194,"context_line":"    invocation of inspection. This will be required to"},{"line_number":195,"context_line":"    calculate the `inspection_timeout`."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"RPC API impact"},{"line_number":198,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_44acdd35","line":195,"updated":"2014-12-10 17:35:07.000000000","message":"please add this information above where I commented about wanting a description ;)  And perhaps clarify (because these descriptions aren\u0027t that clear) to answer my above questions about these two fields.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":194,"context_line":"    invocation of inspection. This will be required to"},{"line_number":195,"context_line":"    calculate the `inspection_timeout`."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"RPC API impact"},{"line_number":198,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_6fda694d","line":195,"in_reply_to":"3a961159_44acdd35","updated":"2014-12-11 20:12:56.000000000","message":"ok.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Driver API impact"},{"line_number":208,"context_line":"-----------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"It will add new interface InspectionInterface with"},{"line_number":211,"context_line":"the method inspect_hardware()::"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def inspect_hardware(self, task):"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_240d113f","line":210,"updated":"2014-12-10 17:35:07.000000000","message":"How about \u0027InspectInterface\u0027. (We have DeployInterface, not DeploymentInterface but ManagementInterface instead of ManageInterface. Hmm.)","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Driver API impact"},{"line_number":208,"context_line":"-----------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"It will add new interface InspectionInterface with"},{"line_number":211,"context_line":"the method inspect_hardware()::"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def inspect_hardware(self, task):"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_afe0d1fa","line":210,"in_reply_to":"3a961159_240d113f","updated":"2014-12-11 20:12:56.000000000","message":"ok.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3972d6f0b82492e94fca435cbe994b3fb2f43c57","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Other deployer impact"},{"line_number":257,"context_line":"---------------------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"The ``inspection_timeout`` is introduced in the ironic.conf under"},{"line_number":260,"context_line":"conductor."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_974ef56d","line":259,"updated":"2014-12-10 17:35:07.000000000","message":"\u0027inspect_timeout\u0027? (shorter)","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4b5137b91d56e626b89536969147d2ffe194f7b1","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Other deployer impact"},{"line_number":257,"context_line":"---------------------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"The ``inspection_timeout`` is introduced in the ironic.conf under"},{"line_number":260,"context_line":"conductor."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a961159_cfe8bde4","line":259,"in_reply_to":"3a961159_974ef56d","updated":"2014-12-11 20:12:56.000000000","message":"ok.","commit_id":"78025cbd5eef0eab28fefe5160fe7e3947a3cfe8"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"52f1eaaa4f50160001a9161d58ea7496ea332248","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"},{"line_number":117,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":53,"id":"3a961159_8cf6b8f7","line":114,"updated":"2014-12-12 00:08:58.000000000","message":"is this needed. Could you set last_inspected at the start of a inspection and use that for the timeout calculation?","commit_id":"d40fd1c6e77f721529fad2bced258c5699df36eb"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"116c92b9a3e1a6a313407d15fbb1af27213bb90a","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"},{"line_number":117,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":53,"id":"3a961159_067e2019","line":114,"in_reply_to":"3a961159_8cf6b8f7","updated":"2014-12-12 04:33:32.000000000","message":"actually the start and end time is needed in the node table as the InspectInterface i.e. inspect_hardware() is async call.","commit_id":"d40fd1c6e77f721529fad2bced258c5699df36eb"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"f1681875fec05d4a6eb9a747b0af97a53d2d64bf","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"* The node.inspection_started_at will be updated with the time when"},{"line_number":309,"context_line":"  inspection was initiated. This will help to check the timeout for"},{"line_number":310,"context_line":"  inspection."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"* The reference implementation will be done for iLO drivers."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":54,"id":"3a961159_545d1978","line":310,"updated":"2014-12-12 17:39:53.000000000","message":"may be worth calling out \"add a periodic task for timeout detection.\"","commit_id":"58f1c1dd6d3e8c1e356d5c7f2e1e25dbd304a13c"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f01e459104d35da4ef9b4af3a8b2ec1e24744ec5","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":45,"context_line":"   automatically after the NICS are discovered with above step."},{"line_number":46,"context_line":"   If a port is already existing, it will not create a new port for"},{"line_number":47,"context_line":"   that MAC address. It will take care of adding as well as deleting"},{"line_number":48,"context_line":"   of the ports for the NIC changes. The ports no longer associated with"},{"line_number":49,"context_line":"   the node at the time of discovery will be auto deleted."}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_cfa97625","line":46,"updated":"2014-12-12 18:08:38.000000000","message":"nit: \"If a port already exists\"","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fcb3447f2c71be91eef198ee398fe6abc5e53596","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":45,"context_line":"   automatically after the NICS are discovered with above step."},{"line_number":46,"context_line":"   If a port is already existing, it will not create a new port for"},{"line_number":47,"context_line":"   that MAC address. It will take care of adding as well as deleting"},{"line_number":48,"context_line":"   of the ports for the NIC changes. The ports no longer associated with"},{"line_number":49,"context_line":"   the node at the time of discovery will be auto deleted."}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_1a3d73c4","line":46,"in_reply_to":"3a961159_cfa97625","updated":"2014-12-12 21:37:56.000000000","message":"ok","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f01e459104d35da4ef9b4af3a8b2ec1e24744ec5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"-------------------------------------"},{"line_number":64,"context_line":"The following properties would be discovered :"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* NICs name/label and corresponding mac address"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpus"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_6f7082dc","line":66,"updated":"2014-12-12 18:08:38.000000000","message":"What is a label?","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fcb3447f2c71be91eef198ee398fe6abc5e53596","unresolved":false,"context_lines":[{"line_number":63,"context_line":"-------------------------------------"},{"line_number":64,"context_line":"The following properties would be discovered :"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* NICs name/label and corresponding mac address"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpus"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_2f0f5338","line":66,"in_reply_to":"3a961159_6f7082dc","updated":"2014-12-12 21:37:56.000000000","message":"Its nothing seperately. In iLO, the NIC name is stored in NIC label field.i will remove the word label if it causes confusion.","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f01e459104d35da4ef9b4af3a8b2ec1e24744ec5","unresolved":false,"context_lines":[{"line_number":94,"context_line":"becomes half synchronous and half asynchronous, then it will be wrong for REST"},{"line_number":95,"context_line":"API structure as the REST API shall be either synchronous or asynchronous."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Given above reasons, this approach is not chosen."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The auto-discovery can also be used for discovering node properties"},{"line_number":100,"context_line":"but it also doesnt provide the ability to discover properties at"}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_ef29d29b","line":97,"updated":"2014-12-12 18:08:38.000000000","message":"Can we be very explicit here that we are keeping node-create synchronous?","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fcb3447f2c71be91eef198ee398fe6abc5e53596","unresolved":false,"context_lines":[{"line_number":94,"context_line":"becomes half synchronous and half asynchronous, then it will be wrong for REST"},{"line_number":95,"context_line":"API structure as the REST API shall be either synchronous or asynchronous."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Given above reasons, this approach is not chosen."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The auto-discovery can also be used for discovering node properties"},{"line_number":100,"context_line":"but it also doesnt provide the ability to discover properties at"}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_5a1c5b6a","line":97,"in_reply_to":"3a961159_ef29d29b","updated":"2014-12-12 21:37:56.000000000","message":"node-create is not touched by the current approach. In the alternatives mentioned here, node-create was partly synchronous and partly async.","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f01e459104d35da4ef9b4af3a8b2ec1e24744ec5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to INSPECTING"},{"line_number":149,"context_line":"      state."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_cf05f614","line":149,"updated":"2014-12-12 18:08:38.000000000","message":"Can we indicate what states are permitted/not permitted to go into INSPSECTING? It\u0027s my understanding this call will only be allowed for nodes in MANAGED?","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fcb3447f2c71be91eef198ee398fe6abc5e53596","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to INSPECTING"},{"line_number":149,"context_line":"      state."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":55,"id":"3a961159_afbfc35f","line":149,"in_reply_to":"3a961159_cf05f614","updated":"2014-12-12 21:37:56.000000000","message":"I think that would have been told in states spec. It shouldnt be mentioned here i guess. BUt i will mention a part of it.","commit_id":"e9d919d99c1d5ab213f1af8b6eb1d1c742425c3d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f5cc4a6c7b52b10798da6111705f62b3a3de753c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"-------------------------------------"},{"line_number":64,"context_line":"The following properties would be discovered :"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* NICs name and corresponding mac address"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpus"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":56,"id":"3a961159_da9e8b06","line":66,"updated":"2014-12-12 21:49:20.000000000","message":"NICs do not inherently have names. This is going to be a value that maps to something. Perhaps seeing an example would help?\n\nI just want to make sure this isn\u0027t something like an interface name, which can change dramatically based on which linux kernel+userspace you run in.","commit_id":"b7f5b71b2089db99ba4671e1d7cab12c9af9f713"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"2380dd71ea39b56a49afe1daa3ddc05ba013a581","unresolved":false,"context_lines":[{"line_number":63,"context_line":"-------------------------------------"},{"line_number":64,"context_line":"The following properties would be discovered :"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* NICs name and corresponding mac address"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpus"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":56,"id":"3a961159_558fcc74","line":66,"in_reply_to":"3a961159_da9e8b06","updated":"2014-12-12 22:02:46.000000000","message":"as discussed will remove NICs name from the spec.","commit_id":"b7f5b71b2089db99ba4671e1d7cab12c9af9f713"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f5cc4a6c7b52b10798da6111705f62b3a3de753c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"becomes half synchronous and half asynchronous, then it will be wrong for REST"},{"line_number":95,"context_line":"API structure as the REST API shall be either synchronous or asynchronous."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Given above reasons, this approach is not chosen."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The auto-discovery can also be used for discovering node properties"},{"line_number":100,"context_line":"but it also doesnt provide the ability to discover properties at"}],"source_content_type":"text/x-rst","patch_set":56,"id":"3a961159_ba69bffa","line":97,"updated":"2014-12-12 21:49:20.000000000","message":"Can you put the comment that you replied to me with into the spec somehow, just to ensure it\u0027s clear to people? If I had to ask for clarification I\u0027d assume others might as well.","commit_id":"b7f5b71b2089db99ba4671e1d7cab12c9af9f713"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"2380dd71ea39b56a49afe1daa3ddc05ba013a581","unresolved":false,"context_lines":[{"line_number":94,"context_line":"becomes half synchronous and half asynchronous, then it will be wrong for REST"},{"line_number":95,"context_line":"API structure as the REST API shall be either synchronous or asynchronous."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Given above reasons, this approach is not chosen."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The auto-discovery can also be used for discovering node properties"},{"line_number":100,"context_line":"but it also doesnt provide the ability to discover properties at"}],"source_content_type":"text/x-rst","patch_set":56,"id":"3a961159_b5ef101d","line":97,"in_reply_to":"3a961159_ba69bffa","updated":"2014-12-12 22:02:46.000000000","message":"ok.","commit_id":"b7f5b71b2089db99ba4671e1d7cab12c9af9f713"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"b2442ea2a3250236e700f46866a1b0cd95659e7a","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* CPU Arch"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* NIC(s) MAC address"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":57,"id":"3a961159_4ea728a7","line":35,"updated":"2014-12-15 08:17:33.000000000","message":"\"supported boot modes\" is also required by scheduler in order to support mutiple boot modes, namely, BIOS, UEFI, and secure boot.","commit_id":"ea54467f11d3722854af2324fb391f4acf4d778d"},{"author":{"_account_id":10202,"name":"Wan-yen Hsu","email":"wanyenhsu@gmail.com"},"change_message_id":"b2442ea2a3250236e700f46866a1b0cd95659e7a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* local_gb"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* memory_mb"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":77,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":78,"context_line":"hence will be updated in Node.properties field."}],"source_content_type":"text/x-rst","patch_set":57,"id":"3a961159_8ee3d0d7","line":75,"updated":"2014-12-15 08:17:33.000000000","message":"\"Supported boot mode(s)\" should be discovered if a driver is capable of discovering this property.","commit_id":"ea54467f11d3722854af2324fb391f4acf4d778d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"678636f51f5e52861bb7e637e68fe55e29c29d83","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  * Ideally the `body` of the PUT request is None (dictionary with value"},{"line_number":132,"context_line":"    as None is passed)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  * Changes provision_state as INSPECTING."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_643403fc","line":132,"updated":"2014-12-15 09:44:09.000000000","message":"Just\n\n * No body","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"7babc8e70868aa9fe56aad6e5d5f29b6f379b3dc","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  * Ideally the `body` of the PUT request is None (dictionary with value"},{"line_number":132,"context_line":"    as None is passed)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  * Changes provision_state as INSPECTING."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_0ae6e943","line":132,"in_reply_to":"3a961159_643403fc","updated":"2014-12-15 09:49:47.000000000","message":"ok.","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"678636f51f5e52861bb7e637e68fe55e29c29d83","unresolved":false,"context_lines":[{"line_number":160,"context_line":"* The possible new states are:"},{"line_number":161,"context_line":"  INSPECTING, INSPECTFAIL, MANAGED, INSPECTED."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"  Refer [1] for more details on each state."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  Initial state :"},{"line_number":166,"context_line":"  node.provision_state \u003d INSPECTING"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_6a53ed16","line":163,"updated":"2014-12-15 09:44:09.000000000","message":"nit: s/Refer/Refer to/","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"7babc8e70868aa9fe56aad6e5d5f29b6f379b3dc","unresolved":false,"context_lines":[{"line_number":160,"context_line":"* The possible new states are:"},{"line_number":161,"context_line":"  INSPECTING, INSPECTFAIL, MANAGED, INSPECTED."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"  Refer [1] for more details on each state."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  Initial state :"},{"line_number":166,"context_line":"  node.provision_state \u003d INSPECTING"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_2ae1e529","line":163,"in_reply_to":"3a961159_6a53ed16","updated":"2014-12-15 09:49:47.000000000","message":"ok.","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"678636f51f5e52861bb7e637e68fe55e29c29d83","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  On Success:"},{"line_number":170,"context_line":"  Final State :"},{"line_number":171,"context_line":"  node.provision_state \u003d INSPECTED"},{"line_number":172,"context_line":"  node.target_provision_state \u003d None"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  On Failure:"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_a4118b5e","line":171,"updated":"2014-12-15 09:44:09.000000000","message":"On line #157 it says \"puts node.provision_state as MANAGED\"","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"7babc8e70868aa9fe56aad6e5d5f29b6f379b3dc","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  On Success:"},{"line_number":170,"context_line":"  Final State :"},{"line_number":171,"context_line":"  node.provision_state \u003d INSPECTED"},{"line_number":172,"context_line":"  node.target_provision_state \u003d None"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  On Failure:"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_ea48bd2e","line":171,"in_reply_to":"3a961159_a4118b5e","updated":"2014-12-15 09:49:47.000000000","message":"thanks for pointing.","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"678636f51f5e52861bb7e637e68fe55e29c29d83","unresolved":false,"context_lines":[{"line_number":264,"context_line":"Other deployer impact"},{"line_number":265,"context_line":"---------------------"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"The ``inspect_timeout`` is introduced in the ironic.conf under"},{"line_number":268,"context_line":"conductor."},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_2a172546","line":267,"updated":"2014-12-15 09:44:09.000000000","message":"default value? to account for in-bans it should be pretty big, say 30-60 min.","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"7babc8e70868aa9fe56aad6e5d5f29b6f379b3dc","unresolved":false,"context_lines":[{"line_number":264,"context_line":"Other deployer impact"},{"line_number":265,"context_line":"---------------------"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"The ``inspect_timeout`` is introduced in the ironic.conf under"},{"line_number":268,"context_line":"conductor."},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_2a6645bb","line":267,"in_reply_to":"3a961159_2a172546","updated":"2014-12-15 09:49:47.000000000","message":"ok. i have kept it as 1800 secs. should be fine?","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"678636f51f5e52861bb7e637e68fe55e29c29d83","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"* Add a new CLI node-inspect for updating the"},{"line_number":293,"context_line":"  hardware properties for already registered node.(ironic-client"},{"line_number":294,"context_line":"  changes)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* A new rpcapi method inspect_hardware() is added which"},{"line_number":297,"context_line":"  will invoke the InspectInterface for discovering, updating node properties"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_ea37dde0","line":294,"updated":"2014-12-15 09:44:09.000000000","message":"nit: it\u0027s the last item","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"7babc8e70868aa9fe56aad6e5d5f29b6f379b3dc","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"* Add a new CLI node-inspect for updating the"},{"line_number":293,"context_line":"  hardware properties for already registered node.(ironic-client"},{"line_number":294,"context_line":"  changes)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* A new rpcapi method inspect_hardware() is added which"},{"line_number":297,"context_line":"  will invoke the InspectInterface for discovering, updating node properties"}],"source_content_type":"text/x-rst","patch_set":58,"id":"3a961159_8a0e59e3","line":294,"in_reply_to":"3a961159_ea37dde0","updated":"2014-12-15 09:49:47.000000000","message":":) ok.","commit_id":"1b1c79480c95027ff32d63ed869cd782a80dd847"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"1a9db543cfa1f6669e24e84e1037b297c9b23057","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  more then ``inspect_timeout``. This will be added as a config"},{"line_number":193,"context_line":"  option in /etc/ironic/ironic.conf."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Two new element in `node` table will be created :"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":198,"context_line":"    so as to know last invocation of discovery APIs."}],"source_content_type":"text/x-rst","patch_set":60,"id":"3a961159_255f2074","line":195,"updated":"2014-12-16 17:45:06.000000000","message":"Nit: s/element/elements/","commit_id":"13688cd520e9a7690eca9be051a7c6371711ebce"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ea050bc39745dd64ccd919f1339c4097c15c82fe","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  more then ``inspect_timeout``. This will be added as a config"},{"line_number":193,"context_line":"  option in /etc/ironic/ironic.conf."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Two new element in `node` table will be created :"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":198,"context_line":"    so as to know last invocation of discovery APIs."}],"source_content_type":"text/x-rst","patch_set":60,"id":"3a961159_7ae38233","line":195,"in_reply_to":"3a961159_255f2074","updated":"2014-12-16 17:58:44.000000000","message":"ok :)","commit_id":"13688cd520e9a7690eca9be051a7c6371711ebce"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"1a9db543cfa1f6669e24e84e1037b297c9b23057","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \"\"\""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":228,"context_line":"A driver may choose to implement the Inspection interface."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Nova driver impact"},{"line_number":231,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":60,"id":"3a961159_57193f21","line":228,"updated":"2014-12-16 17:45:06.000000000","message":"I am unclear of this statement. there is no work item listed to change the fake driver. can you provide some more detail on this.","commit_id":"13688cd520e9a7690eca9be051a7c6371711ebce"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ea050bc39745dd64ccd919f1339c4097c15c82fe","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \"\"\""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"The \u0027fake\u0027 driver will need to be updated for the same."},{"line_number":228,"context_line":"A driver may choose to implement the Inspection interface."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Nova driver impact"},{"line_number":231,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":60,"id":"3a961159_1ac35e8b","line":228,"in_reply_to":"3a961159_57193f21","updated":"2014-12-16 17:58:44.000000000","message":"actually i will remove it as it was required when we add abstract method.","commit_id":"13688cd520e9a7690eca9be051a7c6371711ebce"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"1a9db543cfa1f6669e24e84e1037b297c9b23057","unresolved":false,"context_lines":[{"line_number":316,"context_line":"Dependencies"},{"line_number":317,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"None."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Testing"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":60,"id":"3a961159_f73f8bd4","line":319,"updated":"2014-12-16 17:45:06.000000000","message":"would implementation of the state machine be a dependency for this spec.","commit_id":"13688cd520e9a7690eca9be051a7c6371711ebce"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"ea050bc39745dd64ccd919f1339c4097c15c82fe","unresolved":false,"context_lines":[{"line_number":316,"context_line":"Dependencies"},{"line_number":317,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"None."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Testing"},{"line_number":322,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":60,"id":"3a961159_dae636e8","line":319,"in_reply_to":"3a961159_f73f8bd4","updated":"2014-12-16 17:58:44.000000000","message":"yes the state machine will be required for the states to be verified/changed introspection process","commit_id":"13688cd520e9a7690eca9be051a7c6371711ebce"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"afade579b53042c55947746da7fb9cb95558d4da","unresolved":false,"context_lines":[{"line_number":107,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_d011b55e","line":110,"updated":"2014-12-16 19:23:26.000000000","message":"Isn\u0027t the `updated_at` field enough for this? What are the reason/use case to have a specific field indicating the last time the node was inspected?","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"afade579b53042c55947746da7fb9cb95558d4da","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to INSPECTING"},{"line_number":148,"context_line":"      state."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_d025355d","line":148,"updated":"2014-12-16 19:23:26.000000000","message":"just a comment (no changes required) Let\u0027s make sure we tell the user the reason why 409 was return, for e.g I can see it happening at least in 2 situations:\n\n1) When the node is in a state where it can\u0027t call inspect, e.g ACTIVE\n\n2) When the node is in the mid-inspection (provision_state \u003d\u003d INSPECTING) and user request it to do inspection again","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d48131cd096db83efcb903617059ed1c857bf79f","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    * 400 if a conductor for the node\u0027s driver cannot be found."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    * 409 CONFLICT, if the node cannot be transitioned to INSPECTING"},{"line_number":148,"context_line":"      state."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"  * URL: /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_e11fc559","line":148,"in_reply_to":"3a961159_d025355d","updated":"2014-12-16 20:13:40.000000000","message":"ok.","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"afade579b53042c55947746da7fb9cb95558d4da","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  * Response body is empty if successful."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  * When inspection is finished, puts node.provision_state as INSPECTED"},{"line_number":157,"context_line":"    and node.target_provision_state as None."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* The possible new states are:"},{"line_number":160,"context_line":"  INSPECTING, INSPECTFAIL, MANAGED, INSPECTED."}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_b0518910","line":157,"updated":"2014-12-16 19:23:26.000000000","message":"looking at the state machine spec that was merged this is not true, it goes from INSPECTING to MANAGED, see L304 [1]\n\n | Verb | Initial State| Intermediate States | End State |\n +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\n | inspect | MANAGED | INSPECTING -\u003e INSPECTED | MANAGED |\n\n[1] https://review.openstack.org/#/c/133828/14/specs/kilo/new-ironic-state-machine.rst","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d48131cd096db83efcb903617059ed1c857bf79f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  * Response body is empty if successful."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  * When inspection is finished, puts node.provision_state as INSPECTED"},{"line_number":157,"context_line":"    and node.target_provision_state as None."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* The possible new states are:"},{"line_number":160,"context_line":"  INSPECTING, INSPECTFAIL, MANAGED, INSPECTED."}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_c6165fa7","line":157,"in_reply_to":"3a961159_b0518910","updated":"2014-12-16 20:13:40.000000000","message":"ok i will change as discussed","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"afade579b53042c55947746da7fb9cb95558d4da","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  On Success:"},{"line_number":169,"context_line":"  Final State :"},{"line_number":170,"context_line":"  node.provision_state \u003d INSPECTED"},{"line_number":171,"context_line":"  node.target_provision_state \u003d None"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"  On Failure:"}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_70bac10b","line":170,"updated":"2014-12-16 19:23:26.000000000","message":"ditto L157\n\nprovision_state seems to be MANAGED when it\u0027s finished","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"dc5e52d748cff3ae667281e1f076bfd7e9a72c63","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":62,"id":"3a961159_ad0936df","line":324,"updated":"2014-12-16 18:29:20.000000000","message":"Thank you for adding this on my request. It is my hope that the state machine work will land ahead of the work purposed here. but its good to point out what needs to be done if it does not.","commit_id":"52da0fb2f712ed6182620dbee9ad9c78839f6512"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"be92fab73c0c56d0cdcfeec9d944d39f878d550d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Following would be done to achieve properties inspection:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new endpoint will be introduced for discovery as"},{"line_number":57,"context_line":"  /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Introduce a new CLI node-inspect"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_16e06795","line":57,"updated":"2014-12-17 23:58:46.000000000","message":"Seems like this should be:\n\nPUT /v1/nodes/\u003cuuid\u003e/states/provision {\"target\": \"inspected\"}","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"3ee54a1fae8c73f6688888768f6e1c511ac179f8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Following would be done to achieve properties inspection:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new endpoint will be introduced for discovery as"},{"line_number":57,"context_line":"  /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Introduce a new CLI node-inspect"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_8f7c23b7","line":57,"in_reply_to":"3a961159_16e06795","updated":"2014-12-18 16:56:54.000000000","message":"I agree with Jim here and Devananda below. \n\nPUT /v1/nodes/\u003cuuid\u003e/states/provision {\"target\": \"inspected\"} makes more sense.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Following would be done to achieve properties inspection:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* A new endpoint will be introduced for discovery as"},{"line_number":57,"context_line":"  /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Introduce a new CLI node-inspect"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_9a637c19","line":57,"in_reply_to":"3a961159_8f7c23b7","updated":"2014-12-18 19:38:12.000000000","message":"and the CLI shall be node-inspect? or it should be node-set-provision-state ?","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3ed15a6f8796724ae6b8bafe1b0541a831c7f8db","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":77,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":78,"context_line":"hence will be updated in Node.properties field."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_da29b238","line":78,"updated":"2014-12-17 15:53:02.000000000","message":"I think it is important to note somewhere in the spec (I didn\u0027t see it) that the inspection will cause the property values to be set or overridden/changed if the property had been set prior to the inspection.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"2803b8f3011451a915047b78072007d3e4a23b7f","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":77,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":78,"context_line":"hence will be updated in Node.properties field."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_997bb528","line":78,"in_reply_to":"3a961159_59586dfa","updated":"2014-12-17 17:47:10.000000000","message":"So it is \u0027implicit\u0027 because the spec says it will update the properties, but from comments in other revisions, I know that at least one person thought it would only update properties that hadn\u0027t been set yet. Which is why I think it is useful to be explicit about that so that reviewers don\u0027t misinterpret it.\n\nI am FINE with it cuz I know now; my suggestion was to make it easier for others that read this. ;)","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":77,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":78,"context_line":"hence will be updated in Node.properties field."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_7a7c10b6","line":78,"in_reply_to":"3a961159_997bb528","updated":"2014-12-18 19:38:12.000000000","message":"i will add it as the new patch needs to be uploaded anyway.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cec6990053f4ea528d03f3b46c240e5b93c159c1","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The NICs data would be used to auto-create the ports."},{"line_number":77,"context_line":"The other properties are mandatory properties for the scheduler,"},{"line_number":78,"context_line":"hence will be updated in Node.properties field."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_59586dfa","line":78,"in_reply_to":"3a961159_da29b238","updated":"2014-12-17 17:37:50.000000000","message":"It can be added but i think it is implicit that whenever introspection is done via node-inspect it will update the properties as per the hardware.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3ed15a6f8796724ae6b8bafe1b0541a831c7f8db","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":107,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_ffdae0e7","line":109,"updated":"2014-12-17 15:53:02.000000000","message":"specifically, the time when the last inspection was finished (not started), right?","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cec6990053f4ea528d03f3b46c240e5b93c159c1","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":107,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_d6050a15","line":109,"in_reply_to":"3a961159_ffdae0e7","updated":"2014-12-17 17:37:50.000000000","message":"Yes.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3ed15a6f8796724ae6b8bafe1b0541a831c7f8db","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_9fbf1c60","line":113,"updated":"2014-12-17 15:53:02.000000000","message":"of the most recent (last) inspection, right? Even after the inspection is finished, this value will be kept.\n\nAlthough I don\u0027t see the need to have this value after the inspection is finished/terminated.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"2803b8f3011451a915047b78072007d3e4a23b7f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_b99dd159","line":113,"in_reply_to":"3a961159_3929e189","updated":"2014-12-17 17:47:10.000000000","message":"Please clarify. Will this value be cleared after the inspection is finished or timed out, or will it retain the start time of the last inspection, until a new inspection is started?","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cec6990053f4ea528d03f3b46c240e5b93c159c1","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_3929e189","line":113,"in_reply_to":"3a961159_9fbf1c60","updated":"2014-12-17 17:37:50.000000000","message":"Yes. This is needed only for calculating timeout. Mostly required by in-band introspection.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"3ee54a1fae8c73f6688888768f6e1c511ac179f8","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_cf61cba9","line":113,"in_reply_to":"3a961159_b3124556","updated":"2014-12-18 16:56:54.000000000","message":"I agree this should be cleared when inspection is finished.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"cb9ad9a5b70fb9beae9112daea7e7640f8ac0c1b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_b3124556","line":113,"in_reply_to":"3a961159_b99dd159","updated":"2014-12-18 00:16:20.000000000","message":"I would suggest this value be cleared when the inspection is completed","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":113,"context_line":"    invocation of inspection. This will be required to"},{"line_number":114,"context_line":"    calculate the `inspection_timeout`."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Ironic CLI impact"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_7a533039","line":113,"in_reply_to":"3a961159_cf61cba9","updated":"2014-12-18 19:38:12.000000000","message":"Ok WIll add this.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"cb9ad9a5b70fb9beae9112daea7e7640f8ac0c1b","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"One new endpoint will be added, with one method:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  * Request body is empty i.e. no `body`."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_912381a6","line":129,"updated":"2014-12-18 00:16:20.000000000","message":"I raised a question on rev 52 about this, which was not addressed by the author (dmitry shared an opinion, which i appreciate)\n\nI believe this semantic (PUT to /node/inspect, GET to /node/state) is bad. An action which changes a resource (in this case, /node/state/provision) should be directed to *that* resource, not a different one. We already have an API for changing node\u0027s provision state: PUT /node/state/provision. You should use that.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5feed6a0b8fbbb3f368e71f02f29d3cfaf9f46ff","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"One new endpoint will be added, with one method:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  * Request body is empty i.e. no `body`."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_65f3a59f","line":129,"in_reply_to":"3a961159_912381a6","updated":"2014-12-18 10:21:31.000000000","message":"/node/state are also /node/state/provision different resources. that said, I agree with your reasoning. we probably should document it a bit better, but that\u0027s a different question...","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"One new endpoint will be added, with one method:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  * Request body is empty i.e. no `body`."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_1513dd5c","line":129,"in_reply_to":"3a961159_912381a6","updated":"2014-12-18 19:38:12.000000000","message":"Dmitry, i didnt get. Whether you agree with Deva or disagree with him","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"One new endpoint will be added, with one method:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* PUT /v1/nodes/\u003cuuid\u003e/inspect"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  * Request body is empty i.e. no `body`."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_954d0d75","line":129,"in_reply_to":"3a961159_912381a6","updated":"2014-12-18 19:38:12.000000000","message":"The CLI also shall be node-set-provision-state?","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3bc625d8ee9b603bce3b1c78d908b882469ccb51","unresolved":false,"context_lines":[{"line_number":315,"context_line":"Dependencies"},{"line_number":316,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Requires"},{"line_number":319,"context_line":"https://github.com/openstack/ironic-specs/blob/master/specs/kilo/new-ironic-state-machine.rst"},{"line_number":320,"context_line":"for the states MANAGED, INSPECTED, INSPECTING and INSPECTFAIL."},{"line_number":321,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_70ec2ff4","line":318,"updated":"2014-12-18 18:51:37.000000000","message":"My suggestion: \n\n1. \u0027Requires\u0027 -\u003e \u0027Requires implementation of\u0027\n\n2. Delete the entire paragraph \u0027It can be worked around...\u0027 because maybe it \"CAN\", but realistically, it won\u0027t cuz we won\u0027t approve it.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"cb9ad9a5b70fb9beae9112daea7e7640f8ac0c1b","unresolved":false,"context_lines":[{"line_number":319,"context_line":"https://github.com/openstack/ironic-specs/blob/master/specs/kilo/new-ironic-state-machine.rst"},{"line_number":320,"context_line":"for the states MANAGED, INSPECTED, INSPECTING and INSPECTFAIL."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_b6af932a","line":322,"updated":"2014-12-18 00:16:20.000000000","message":"the current state list does not have any of the four states described in this spec, and adding them now will introduce significantly more complexity for early adopters (and our developers) as we migrate to the new state machine","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9be40e136896be8adc0d4665135f5ef9e0d8c958","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_42e8987c","line":324,"updated":"2014-12-16 21:20:54.000000000","message":"I disagree that this workaround is possible, but am not 100% sure. Besides the point.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cec6990053f4ea528d03f3b46c240e5b93c159c1","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_f9459943","line":324,"in_reply_to":"3a961159_1a917a9a","updated":"2014-12-17 17:37:50.000000000","message":"I actually could make introspection work by just adding it. Since new state model is not still in place, this workaround may be working.\nNow the challenge is how to have the initial state before starting introspection.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3ed15a6f8796724ae6b8bafe1b0541a831c7f8db","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_1a917a9a","line":324,"in_reply_to":"3a961159_42e8987c","updated":"2014-12-17 15:53:02.000000000","message":"+1. I think we need to get the new FSM framework in place first. But yeah, shouldn\u0027t hold up this spec.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_b5d68925","line":324,"in_reply_to":"3a961159_65cc8562","updated":"2014-12-18 19:38:12.000000000","message":":) thanks dmitry for the +1. BUt seems require another patch","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5feed6a0b8fbbb3f368e71f02f29d3cfaf9f46ff","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_65cc8562","line":324,"in_reply_to":"3a961159_b9cb1149","updated":"2014-12-18 10:21:31.000000000","message":"+1 for landing spec but delaying patches","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"173aa2eb660884d981b1b0ed54966c9554dbbf13","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_d55875fc","line":324,"in_reply_to":"3a961159_b9cb1149","updated":"2014-12-18 19:38:12.000000000","message":"hmmm, but since even other states are not yet completely implemented, how do we know about the logic of implementing state machine model.","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"2803b8f3011451a915047b78072007d3e4a23b7f","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"It can be worked around by adding these states in the"},{"line_number":323,"context_line":"/opt/stack/ironic/ironic/common/states.py for the introspection to work"},{"line_number":324,"context_line":"till the state machine is implemented."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Testing"},{"line_number":327,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":63,"id":"3a961159_b9cb1149","line":324,"in_reply_to":"3a961159_f9459943","updated":"2014-12-17 17:47:10.000000000","message":"I don\u0027t think it is worth going into now. But there is a series of patches that add a finite-state-machine for the existing (not new) states, and it isn\u0027t as simple as adding variables for the states, you\u0027d need to add them to the finite-state-machine too ;) \n\nI doubt that we\u0027d be approving any patches until we get the basic finite-state-machine patches resolved first :-(","commit_id":"aba81575d5441ea66af65e0350b3d40c82c882c3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Today, Ironic is unable to automatically detect node properties"},{"line_number":23,"context_line":"which are required for scheduling or for deploy(ports creation)."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"The properties required by scheduler/deploy:"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_b0a210ac","line":23,"updated":"2014-12-18 23:09:02.000000000","message":"nit \u0027deploy(\u0027 -\u003e \u0027deploy (\u0027","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Today, Ironic is unable to automatically detect node properties"},{"line_number":23,"context_line":"which are required for scheduling or for deploy(ports creation)."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"The properties required by scheduler/deploy:"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_fae279d3","line":23,"in_reply_to":"3a961159_b0a210ac","updated":"2014-12-22 15:58:54.000000000","message":"ok.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The spec proposes to add these abilities:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"1. Discover the hardware properties and update the node.properties."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":45,"context_line":"   automatically after the NICS are discovered with above step."}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_d0c07c52","line":42,"updated":"2014-12-18 23:09:02.000000000","message":"please add \u0027It updates all the properties with the new set of values, even if the properties were already set.\u0027","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The spec proposes to add these abilities:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"1. Discover the hardware properties and update the node.properties."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"2. Create ports for the NIC MAC addresses discovered. This will be done"},{"line_number":45,"context_line":"   automatically after the NICS are discovered with above step."}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_da2dbdff","line":42,"in_reply_to":"3a961159_d0c07c52","updated":"2014-12-22 15:58:54.000000000","message":"ok","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":105,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":108,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"2.  `inspection_started_at`: It will store the start time of"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_50248c0c","line":107,"updated":"2014-12-18 23:09:02.000000000","message":"\u0027time\u0027 -\u003e \u0027time (when the last inspection finished)\u0027","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":104,"context_line":"The discovered properties will be stored as part of the \u0027properties\u0027"},{"line_number":105,"context_line":"field of the node. It will add two fields to the `nodes` table:"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"1.  `last_inspected`: It will be updated with `last_inspected` time"},{"line_number":108,"context_line":"    so as to know last invocation of discovery APIs."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"2.  `inspection_started_at`: It will store the start time of"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_9ae335a3","line":107,"in_reply_to":"3a961159_50248c0c","updated":"2014-12-22 15:58:54.000000000","message":"ok","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":110,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":111,"context_line":"    invocation of inspection. This will be required to"},{"line_number":112,"context_line":"    calculate the `inspection_timeout`."},{"line_number":113,"context_line":"    It shall be cleared out after timeout calaculation."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Ironic CLI impact"},{"line_number":116,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_d066bc50","line":113,"updated":"2014-12-18 23:09:02.000000000","message":"I think you mean \u0027after timeout calaculation\u0027 -\u003e \u0027when the inspection finishes or times out\u0027.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"2.  `inspection_started_at`: It will store the start time of"},{"line_number":111,"context_line":"    invocation of inspection. This will be required to"},{"line_number":112,"context_line":"    calculate the `inspection_timeout`."},{"line_number":113,"context_line":"    It shall be cleared out after timeout calaculation."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Ironic CLI impact"},{"line_number":116,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_fa68b9f6","line":113,"in_reply_to":"3a961159_d066bc50","updated":"2014-12-22 15:58:54.000000000","message":"yes. Thanks for pointing out.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":200,"context_line":"    It shall be cleared out after timeout calculation."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"The Node.properties introspected properties will be updated whenever"},{"line_number":203,"context_line":"introspection is executed."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"RPC API impact"},{"line_number":206,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_0bb9f978","line":203,"updated":"2014-12-18 23:09:02.000000000","message":"I\u0027m not asking you to change this, but for future reference, my understanding of what goes in \u0027REST API impact\u0027 is information about the actual API changes (what the http request is, the body, what the response is, HTTP status). The inner workings (state transitions, description of what is done by the conductor/driver) should be in the \u0027Proposed Change\u0027 part above.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":200,"context_line":"    It shall be cleared out after timeout calculation."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"The Node.properties introspected properties will be updated whenever"},{"line_number":203,"context_line":"introspection is executed."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"RPC API impact"},{"line_number":206,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_3df5dbec","line":203,"in_reply_to":"3a961159_0bb9f978","updated":"2014-12-22 15:58:54.000000000","message":"Ok. I find above reasonable. and have changed as suggested.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        :param task: a task from TaskManager."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        \"\"\""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"A driver may choose to implement the Inspection interface."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Nova driver impact"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_eba82d8e","line":227,"updated":"2014-12-18 23:09:02.000000000","message":"Since the InspectInterface is here, I think it is worth adding more here.\n\nI\u0027m assuming it isn\u0027t a core interface. Is it a standard interface? [1]\n\nWe\u0027ll probably want these methods too:\n - validate()\n - get_properties()\n\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/base.py#L46","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        :param task: a task from TaskManager."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        \"\"\""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"A driver may choose to implement the Inspection interface."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Nova driver impact"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_1daadf84","line":227,"in_reply_to":"3a961159_eba82d8e","updated":"2014-12-22 15:58:54.000000000","message":"Yes it will be a standard interface. I will add  these also.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"node-set-provision-state will look like:"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"* ironic node-set-provision-state \u003cUUID\u003e inspect"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"This feature will improve user experience as users no longer"},{"line_number":251,"context_line":"need to manually update the node properties info."}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_302620cf","line":248,"updated":"2014-12-18 23:09:02.000000000","message":"The stuff above this isn\u0027t needed. You already mention it in \u0027Ironic CLI impact\u0027 section.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"891615bb419e76e92297d73d92863778f2f743f9","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"node-set-provision-state will look like:"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"* ironic node-set-provision-state \u003cUUID\u003e inspect"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"This feature will improve user experience as users no longer"},{"line_number":251,"context_line":"need to manually update the node properties info."}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_3d5cfb7c","line":248,"in_reply_to":"3a961159_302620cf","updated":"2014-12-22 15:58:54.000000000","message":"ok.","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5d37aba713c8b7c6dfd871cbc08d3deab4bce4e6","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* Add a new interface as InspectInterface to ironic driver."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"* Adding new method inspect_hardware to InspectionInterface()"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"* Add new elements ``last_inspected`` and ``inspection_started_at`` to"},{"line_number":301,"context_line":"  the `nodes` table. Ironic cli will be changed to show these fields"}],"source_content_type":"text/x-rst","patch_set":66,"id":"3a961159_ab2705b5","line":298,"updated":"2014-12-18 23:09:02.000000000","message":"you mean \u0027InspectionInterface()\u0027 -\u003e \u0027InspectInterface class\u0027?","commit_id":"3e7a4a4fae0e8e8a76373d7eb7f26913c2befd06"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"281a3ad4cd0ff2167ad7a8e5665784ca5a579046","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"* Add a new interface as InspectInterface to ironic driver."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"* Adding new method inspect_hardware to class InspectionInterface."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"* Add new elements ``last_inspected`` and ``inspection_started_at`` to"},{"line_number":295,"context_line":"  the `nodes` table. Ironic cli will be changed to show these fields"}],"source_content_type":"text/x-rst","patch_set":67,"id":"3a961159_7b220853","line":292,"updated":"2014-12-22 18:48:16.000000000","message":"nit: s/InspectionInterface/InspectInterface/ if you do another revision.","commit_id":"76accaf3f37a4f5e948d50bab705e418a8ab3e0f"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"cb95209264edb17d9b73bba51729f252462cae77","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"* Add a new interface as InspectInterface to ironic driver."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"* Adding new method inspect_hardware to class InspectionInterface."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"* Add new elements ``last_inspected`` and ``inspection_started_at`` to"},{"line_number":295,"context_line":"  the `nodes` table. Ironic cli will be changed to show these fields"}],"source_content_type":"text/x-rst","patch_set":67,"id":"3a961159_bbc63066","line":292,"in_reply_to":"3a961159_7b220853","updated":"2014-12-22 18:50:39.000000000","message":"Ok. Just a little typo :( . Will rectify if i need to do another version again.","commit_id":"76accaf3f37a4f5e948d50bab705e418a8ab3e0f"}]}
