)]}'
{"doc/source/create_command.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"``ironic create`` and ``openstack baremetal create`` commands can be used to"},{"line_number":6,"context_line":"define a set of resources using their descriptions in JSON or YAML format."},{"line_number":7,"context_line":"The commands\u0027 descriptions can be seen as usual via ``help`` commands"},{"line_number":8,"context_line":"(see :ref:`cli`)."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_eff7dbd0","line":6,"updated":"2016-09-02 01:50:43.000000000","message":"s/define/create/","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"``ironic create`` and ``openstack baremetal create`` commands can be used to"},{"line_number":6,"context_line":"define a set of resources using their descriptions in JSON or YAML format."},{"line_number":7,"context_line":"The commands\u0027 descriptions can be seen as usual via ``help`` commands"},{"line_number":8,"context_line":"(see :ref:`cli`)."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_e5299e9c","line":6,"in_reply_to":"fa7ab95a_eff7dbd0","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":5,"context_line":"``ironic create`` and ``openstack baremetal create`` commands can be used to"},{"line_number":6,"context_line":"define a set of resources using their descriptions in JSON or YAML format."},{"line_number":7,"context_line":"The commands\u0027 descriptions can be seen as usual via ``help`` commands"},{"line_number":8,"context_line":"(see :ref:`cli`)."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"It is also possible to use this feature by importing ``ironicclient``\u0027s"},{"line_number":11,"context_line":"``create_resources`` module and using ``create_resources`` function from there"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_efe51b09","line":8,"updated":"2016-09-02 01:50:43.000000000","message":"the problem is that we don\u0027t have any documentation for the osc plugin commands there :-(. [I opened bug https://bugs.launchpad.net/python-ironicclient/+bug/1619416]","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":5,"context_line":"``ironic create`` and ``openstack baremetal create`` commands can be used to"},{"line_number":6,"context_line":"define a set of resources using their descriptions in JSON or YAML format."},{"line_number":7,"context_line":"The commands\u0027 descriptions can be seen as usual via ``help`` commands"},{"line_number":8,"context_line":"(see :ref:`cli`)."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"It is also possible to use this feature by importing ``ironicclient``\u0027s"},{"line_number":11,"context_line":"``create_resources`` module and using ``create_resources`` function from there"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_a50a3624","line":8,"in_reply_to":"fa7ab95a_efe51b09","updated":"2016-09-02 15:55:23.000000000","message":"Yup, that is a separate issue...","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":10,"context_line":"It is also possible to use this feature by importing ``ironicclient``\u0027s"},{"line_number":11,"context_line":"``create_resources`` module and using ``create_resources`` function from there"},{"line_number":12,"context_line":"(see :ref:`modindex` for details)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Overview"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_afea3372","line":13,"updated":"2016-09-02 01:50:43.000000000","message":"Maybe we can restructure this first part a bit differently. Eg:\n\nSomething about ability to create resources using resource descriptions in a file. It can be done in one of three ways:\n\n1. Using ironic CLI\u0027s command ``ironic create`` :\n    $ ironic help create\n    usage: ironic create \u003cfile\u003e [\u003cfile\u003e ...]\n    etc\n\n2. Using openstackclient pluging command ``openstack baremetal create``:\n    $ openstack -h baremetal create\n    usage: openstack [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]\n    etc\n\n3. Programmatically using the Python API: (link/mention the api_v1.html page or api/ironicclient.v1.create_resources.html page? Then give an example/code snippet? \n    from ironicclient.v1 import create_resources\n    create_resources(client, filenames)\n    ... \n    OR maybe just show this snippet from the api_v1.html file:\n        ironicclient.v1.create_resources.create_resources(client, filenames)[source]\n        Create resources using their JSON or YAML descriptions.\n\n        Parameters:\t\n            client – an instance of ironic client;\n             filenames – a list of filenames containing JSON or YAML \n        etc","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":10,"context_line":"It is also possible to use this feature by importing ``ironicclient``\u0027s"},{"line_number":11,"context_line":"``create_resources`` module and using ``create_resources`` function from there"},{"line_number":12,"context_line":"(see :ref:`modindex` for details)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Overview"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_247c1c20","line":13,"in_reply_to":"fa7ab95a_afea3372","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":11,"context_line":"``create_resources`` module and using ``create_resources`` function from there"},{"line_number":12,"context_line":"(see :ref:`modindex` for details)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Overview"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It is considered that a ``*.json`` file will contain a valid JSON and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_8f9c8f0f","line":14,"updated":"2016-09-02 01:50:43.000000000","message":"This is more like \u0027Contents of File\u0027 or \u0027File containing Resource Descriptions\u0027 or maybe \u0027Resource Descriptions\u0027 ?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":11,"context_line":"``create_resources`` module and using ``create_resources`` function from there"},{"line_number":12,"context_line":"(see :ref:`modindex` for details)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Overview"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It is considered that a ``*.json`` file will contain a valid JSON and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_4b225ba4","line":14,"in_reply_to":"fa7ab95a_8f9c8f0f","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Overview"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It is considered that a ``*.json`` file will contain a valid JSON and"},{"line_number":18,"context_line":"``*.yaml`` - a valid YAML. The described resources will be deserialized and"},{"line_number":19,"context_line":"POSTed to ironic API, one resource at a time."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_7a054b0f","line":16,"updated":"2016-09-02 01:50:43.000000000","message":"The resources to be created can be described either in JSON or YAML. A file ending with .json is assumed to contain valid JSON, and a file ending with .yaml is assumed to contain valid YAML.\n\nThe resources that can be created are chassis, nodes, and ports.\n\nI wonder if we should show the schema here so they know how they should be described, I\u0027m not sure.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Overview"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It is considered that a ``*.json`` file will contain a valid JSON and"},{"line_number":18,"context_line":"``*.yaml`` - a valid YAML. The described resources will be deserialized and"},{"line_number":19,"context_line":"POSTed to ironic API, one resource at a time."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_f1eec089","line":16,"in_reply_to":"fa7ab95a_7a054b0f","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It is considered that a ``*.json`` file will contain a valid JSON and"},{"line_number":18,"context_line":"``*.yaml`` - a valid YAML. The described resources will be deserialized and"},{"line_number":19,"context_line":"POSTed to ironic API, one resource at a time."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Only a list of chassis or nodes is accepted at the top level of the structure,"},{"line_number":22,"context_line":"but chassis and nodes themselves can contain nodes or ports definitions nested"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_ba28b334","line":19,"updated":"2016-09-02 01:50:43.000000000","message":"This sentence can be removed from here, mention it in the first point in \u0027creation flow\u0027 part.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It is considered that a ``*.json`` file will contain a valid JSON and"},{"line_number":18,"context_line":"``*.yaml`` - a valid YAML. The described resources will be deserialized and"},{"line_number":19,"context_line":"POSTed to ironic API, one resource at a time."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Only a list of chassis or nodes is accepted at the top level of the structure,"},{"line_number":22,"context_line":"but chassis and nodes themselves can contain nodes or ports definitions nested"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_d1f61c5c","line":19,"in_reply_to":"fa7ab95a_ba28b334","updated":"2016-09-02 15:55:23.000000000","message":"This is already there, so just removed.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Examples"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Here is an example of the JSON that can be passed to the ``create`` command::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    {"},{"line_number":34,"context_line":"        \"chassis\": ["}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_1a1b5f74","line":31,"updated":"2016-09-02 01:50:43.000000000","message":"Maybe say this is an example of what might be in a file named \u0027sample.json\u0027:","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Examples"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Here is an example of the JSON that can be passed to the ``create`` command::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    {"},{"line_number":34,"context_line":"        \"chassis\": ["}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_70962e4d","line":31,"in_reply_to":"fa7ab95a_1a1b5f74","updated":"2016-09-02 15:55:23.000000000","message":"Hm, I don\u0027t really like the \u0027example sample\u0027 part :) What if I just change JSON to JSON file here?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    {"},{"line_number":34,"context_line":"        \"chassis\": ["},{"line_number":35,"context_line":"            {"},{"line_number":36,"context_line":"                \"description\": \"spam\","},{"line_number":37,"context_line":"                \"nodes\": ["},{"line_number":38,"context_line":"                    {"},{"line_number":39,"context_line":"                        \"name\": \"node-3\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_1a327ff2","line":36,"updated":"2016-09-02 01:50:43.000000000","message":"maybe something more realistic, \u0027chassis 3 in row 23\u0027 (I have no idea)","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    {"},{"line_number":34,"context_line":"        \"chassis\": ["},{"line_number":35,"context_line":"            {"},{"line_number":36,"context_line":"                \"description\": \"spam\","},{"line_number":37,"context_line":"                \"nodes\": ["},{"line_number":38,"context_line":"                    {"},{"line_number":39,"context_line":"                        \"name\": \"node-3\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_b09c366b","line":36,"in_reply_to":"fa7ab95a_1a327ff2","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                \"nodes\": ["},{"line_number":38,"context_line":"                    {"},{"line_number":39,"context_line":"                        \"name\": \"node-3\","},{"line_number":40,"context_line":"                        \"driver\": \"fake\","},{"line_number":41,"context_line":"                        \"ports\": ["},{"line_number":42,"context_line":"                            {"},{"line_number":43,"context_line":"                                \"address\": \"00:00:00:00:00:02\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_5a27a7b5","line":40,"updated":"2016-09-02 01:50:43.000000000","message":"we should probably use some realistic driver, \u0027pxe_ipmitool\u0027?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                \"nodes\": ["},{"line_number":38,"context_line":"                    {"},{"line_number":39,"context_line":"                        \"name\": \"node-3\","},{"line_number":40,"context_line":"                        \"driver\": \"fake\","},{"line_number":41,"context_line":"                        \"ports\": ["},{"line_number":42,"context_line":"                            {"},{"line_number":43,"context_line":"                                \"address\": \"00:00:00:00:00:02\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_50cccaba","line":40,"in_reply_to":"fa7ab95a_5a27a7b5","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            {"},{"line_number":67,"context_line":"                \"name\": \"node-5\","},{"line_number":68,"context_line":"                \"driver\": \"pxe_ipmitool\","},{"line_number":69,"context_line":"                \"chassis_uuid\": \"74d93e6e-7384-4994-a614-fd7b399b0785\""},{"line_number":70,"context_line":"                \"ports\": ["},{"line_number":71,"context_line":"                    {"},{"line_number":72,"context_line":"                        \"address\": \"00:00:00:00:00:00\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_5a75e795","line":69,"updated":"2016-09-02 01:50:43.000000000","message":"do you want to show that this chassis is the same as the one above? and/or we can delete this to show that it is possible to create a node w/o a chassis.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            {"},{"line_number":67,"context_line":"                \"name\": \"node-5\","},{"line_number":68,"context_line":"                \"driver\": \"pxe_ipmitool\","},{"line_number":69,"context_line":"                \"chassis_uuid\": \"74d93e6e-7384-4994-a614-fd7b399b0785\""},{"line_number":70,"context_line":"                \"ports\": ["},{"line_number":71,"context_line":"                    {"},{"line_number":72,"context_line":"                        \"address\": \"00:00:00:00:00:00\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_70de2e6e","line":69,"in_reply_to":"fa7ab95a_5a75e795","updated":"2016-09-02 15:55:23.000000000","message":"I wanted to show that it is possible to create a node with a chassis that was created manually.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                ]"},{"line_number":75,"context_line":"            }"},{"line_number":76,"context_line":"        ]"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The creation flow will be the following:"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_da69f7bf","line":77,"updated":"2016-09-02 01:50:43.000000000","message":"could also have a port separate, right? or not? I can\u0027t remember.\n\nOh, no, based on your description below :)","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                ]"},{"line_number":75,"context_line":"            }"},{"line_number":76,"context_line":"        ]"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The creation flow will be the following:"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_b0b6f63b","line":77,"in_reply_to":"fa7ab95a_da69f7bf","updated":"2016-09-02 15:55:23.000000000","message":"Nope :)","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        ]"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The creation flow will be the following:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_3a5d8315","line":79,"updated":"2016-09-02 01:50:43.000000000","message":"I think this could be a separate section, eg \u0027Creation Process\u0027 ?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        ]"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The creation flow will be the following:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_e46cf40a","line":79,"in_reply_to":"fa7ab95a_3a5d8315","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":79,"context_line":"The creation flow will be the following:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_9ac76f97","line":82,"updated":"2016-09-02 01:50:43.000000000","message":"can you have more than one chassis? or nodes? If so, is \u0027keys\u0027 the correct term (and/or is \u0027dictionary\u0027 correct)?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":79,"context_line":"The creation flow will be the following:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_44c76045","line":82,"in_reply_to":"fa7ab95a_9ac76f97","updated":"2016-09-02 15:55:23.000000000","message":"you can not have more than one chassis or nodes keys at the top level as it is a dictionary. I think this explains things correctly.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"},{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_5a3887a0","line":83,"updated":"2016-09-02 01:50:43.000000000","message":"The rest of the validation is done by the ironic-api service.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"},{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_043ab836","line":83,"in_reply_to":"fa7ab95a_5a3887a0","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"},{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":87,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_3a6743b8","line":84,"updated":"2016-09-02 01:50:43.000000000","message":"We should mention here, that all the files are validated here, and if any are bad, processing stops, right?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":81,"context_line":"#. The client validates that the top-level dictionary contains only \"chassis\""},{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"},{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":87,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_a4110cb2","line":84,"in_reply_to":"fa7ab95a_3a6743b8","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"},{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":87,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_da4c9744","line":85,"updated":"2016-09-02 01:50:43.000000000","message":"what\u0027s an object? the same as a resource?","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   and/or \"nodes\" keys, their values are lists, all the other validation"},{"line_number":83,"context_line":"   happens on the ironic API side."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Each object is created (basically meaning the dictionary representation gets"},{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":87,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_a4ed8c90","line":85,"in_reply_to":"fa7ab95a_da4c9744","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"96927c45adf662ff7f6c90096f8207bd7a3a2364","unresolved":false,"context_lines":[{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":87,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"   ..note::"},{"line_number":90,"context_line":"      The top-level chassis or nodes are created first, meaning that if a"},{"line_number":91,"context_line":"      chassis contains a definition of list of nodes, the chassis will be"},{"line_number":92,"context_line":"      created first, the nodes will follow. The same is true for ports enclosed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_5ad4071f","line":89,"updated":"2016-09-02 01:50:43.000000000","message":"I don\u0027t like notes unless they\u0027re really necessary. I think this can be described in a normal paragragh.","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfecf7294e82afc6d2a785de58c04e9d12719955","unresolved":false,"context_lines":[{"line_number":86,"context_line":"   POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":87,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"   ..note::"},{"line_number":90,"context_line":"      The top-level chassis or nodes are created first, meaning that if a"},{"line_number":91,"context_line":"      chassis contains a definition of list of nodes, the chassis will be"},{"line_number":92,"context_line":"      created first, the nodes will follow. The same is true for ports enclosed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da7fb54a_e49eb406","line":89,"in_reply_to":"fa7ab95a_5ad4071f","updated":"2016-09-02 15:55:23.000000000","message":"Done","commit_id":"80b32560d7fa313da6b494a32eb905550e1243e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"2. Using openstackclient plugin command ``openstack baremetal create``::"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    $ openstack help baremetal create"},{"line_number":26,"context_line":"    usage: openstack [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]"},{"line_number":27,"context_line":"                     [--max-width \u003cinteger\u003e] [--noindent] [--prefix PREFIX]"},{"line_number":28,"context_line":"                     [--chassis-uuid \u003cchassis\u003e] [--driver-info \u003ckey\u003dvalue\u003e]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_26495e60","line":25,"updated":"2016-09-28 22:13:41.000000000","message":"s/help/-h/\n\nor --help","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2469816642d7db4a127dd87441f93e9dd00e31a7","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"2. Using openstackclient plugin command ``openstack baremetal create``::"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    $ openstack help baremetal create"},{"line_number":26,"context_line":"    usage: openstack [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]"},{"line_number":27,"context_line":"                     [--max-width \u003cinteger\u003e] [--noindent] [--prefix PREFIX]"},{"line_number":28,"context_line":"                     [--chassis-uuid \u003cchassis\u003e] [--driver-info \u003ckey\u003dvalue\u003e]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_c1fe8b37","line":25,"in_reply_to":"3a98d1f4_26495e60","updated":"2016-10-06 18:04:52.000000000","message":"Done","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"       is the same as ``openstack baremetal node create``, and positional"},{"line_number":50,"context_line":"       arguments are ignored. If it is not provided, the command does resource"},{"line_number":51,"context_line":"       creation from file(s), and only positional arguments will be taken into"},{"line_number":52,"context_line":"       account."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"3. Programmatically using the Python API:"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_86a5d205","line":52,"updated":"2016-09-28 22:13:41.000000000","message":"hmm. Now I wonder if we want to show the help. I forgot that we\u0027re using the same command for two different things. I guess it is fine...","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"The resources to be created can be described either in JSON or YAML. A file"},{"line_number":63,"context_line":"ending with ``.json`` is assumed to contain valid JSON, and a file ending with"},{"line_number":64,"context_line":"``.yaml`` is assumed to contain valid YAML. If a file with another extension"},{"line_number":65,"context_line":"is provided, the client will error."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The resources that can be created are chassis, nodes, and ports. Only chassis"},{"line_number":68,"context_line":"and nodes are accepted at the top level of the file structure, but chassis and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_a681ee4c","line":65,"updated":"2016-09-28 22:13:41.000000000","message":"Instead of the last sentence, how about \u0027It is an error to specify a file with any other extension.\u0027","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2469816642d7db4a127dd87441f93e9dd00e31a7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"The resources to be created can be described either in JSON or YAML. A file"},{"line_number":63,"context_line":"ending with ``.json`` is assumed to contain valid JSON, and a file ending with"},{"line_number":64,"context_line":"``.yaml`` is assumed to contain valid YAML. If a file with another extension"},{"line_number":65,"context_line":"is provided, the client will error."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The resources that can be created are chassis, nodes, and ports. Only chassis"},{"line_number":68,"context_line":"and nodes are accepted at the top level of the file structure, but chassis and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_c173ebe5","line":65,"in_reply_to":"3a98d1f4_a681ee4c","updated":"2016-10-06 18:04:52.000000000","message":"Done","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":157,"context_line":"#. The client deserializes the files\u0027 contents and validates that the top-level"},{"line_number":158,"context_line":"   dictionary in each of them contains only \"chassis\" and/or \"nodes\" keys,"},{"line_number":159,"context_line":"   and their values are lists. The creation process is aborted in case of any"},{"line_number":160,"context_line":"   failure at this stage. The rest of the validation is done by the ironic-api"},{"line_number":161,"context_line":"   service."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"#. Each resource is created (basically meaning the dictionary representation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_26bcfe04","line":160,"updated":"2016-09-28 22:13:41.000000000","message":"How about s/in case of any failure/if any failure is encountered in this stage/.","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2469816642d7db4a127dd87441f93e9dd00e31a7","unresolved":false,"context_lines":[{"line_number":157,"context_line":"#. The client deserializes the files\u0027 contents and validates that the top-level"},{"line_number":158,"context_line":"   dictionary in each of them contains only \"chassis\" and/or \"nodes\" keys,"},{"line_number":159,"context_line":"   and their values are lists. The creation process is aborted in case of any"},{"line_number":160,"context_line":"   failure at this stage. The rest of the validation is done by the ironic-api"},{"line_number":161,"context_line":"   service."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"#. Each resource is created (basically meaning the dictionary representation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_2132cf10","line":160,"in_reply_to":"3a98d1f4_26bcfe04","updated":"2016-10-06 18:04:52.000000000","message":"Done","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"   service."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"#. Each resource is created (basically meaning the dictionary representation"},{"line_number":164,"context_line":"   gets POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":165,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"   The top-level chassis or nodes are created first, meaning that if a"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_c620ba4c","line":164,"updated":"2016-09-28 22:13:41.000000000","message":"s/ironic API/ironic-api service/\n\nMaybe \u0027Each resource is created via issuing a POST request (with the resource\u0027s dictionary representation) to the ironic-api service.\u0027","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2469816642d7db4a127dd87441f93e9dd00e31a7","unresolved":false,"context_lines":[{"line_number":161,"context_line":"   service."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"#. Each resource is created (basically meaning the dictionary representation"},{"line_number":164,"context_line":"   gets POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":165,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"   The top-level chassis or nodes are created first, meaning that if a"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_3c2af27e","line":164,"in_reply_to":"3a98d1f4_c620ba4c","updated":"2016-10-06 18:04:52.000000000","message":"Done","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   gets POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":165,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"   The top-level chassis or nodes are created first, meaning that if a"},{"line_number":168,"context_line":"   chassis contains a definition of list of nodes, the chassis will be"},{"line_number":169,"context_line":"   created first, the nodes will follow. The same is true for ports enclosed"},{"line_number":170,"context_line":"   in nodes. The top-level resource\u0027s UUID is then saved to the \"children\","}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_0677023b","line":167,"updated":"2016-09-28 22:13:41.000000000","message":"wrt L164, \u0027The exception for this...\u0027, I think you mean something like \u0027In the case of nested resources (``\"nodes\"`` key inside chassis, or ``\"ports\"`` key inside nodes), the top-level resource is created first, followed by the sub-resources. For example, if a chassis contains a list of nodes, the chassis will be created first followed by the creation of each node. The same is true for ports described within nodes.\n\nI\u0027m not sure we need to mention the part about \u0027The top-level resource\u0027s UUID is then saved ...\u0027, seems like a programming (and somewhat obvious?) detail.","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2469816642d7db4a127dd87441f93e9dd00e31a7","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   gets POSTed to ironic API) separately. The exception for this are enclosed"},{"line_number":165,"context_line":"   objects - ``\"nodes\"`` key inside chassis and ``\"ports\"`` key inside nodes."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"   The top-level chassis or nodes are created first, meaning that if a"},{"line_number":168,"context_line":"   chassis contains a definition of list of nodes, the chassis will be"},{"line_number":169,"context_line":"   created first, the nodes will follow. The same is true for ports enclosed"},{"line_number":170,"context_line":"   in nodes. The top-level resource\u0027s UUID is then saved to the \"children\","}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_1c27f6b6","line":167,"in_reply_to":"3a98d1f4_0677023b","updated":"2016-10-06 18:04:52.000000000","message":"Done","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8db96d40bd25f4787c218f97b8dcf403b715d85d","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"#. If any exception happens during the creation of one of the resources, it"},{"line_number":175,"context_line":"   does not interrupt the whole process, the errors are accumulated and output"},{"line_number":176,"context_line":"   after the command/function execution finishes. This does stop the creation"},{"line_number":177,"context_line":"   of the \"child\" resources, as they can not be included in non-existing parent"},{"line_number":178,"context_line":"   resources."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_26f07e90","line":176,"updated":"2016-09-28 22:13:41.000000000","message":"Maybe \u0027If a resource could not be created, it does not stop the entire process. Any sub-resources of the failed resource will not be created, but otherwise, the rest of the resources will be created if possible. Any failed resources will be mentioned in the response.\u0027","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"2469816642d7db4a127dd87441f93e9dd00e31a7","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"#. If any exception happens during the creation of one of the resources, it"},{"line_number":175,"context_line":"   does not interrupt the whole process, the errors are accumulated and output"},{"line_number":176,"context_line":"   after the command/function execution finishes. This does stop the creation"},{"line_number":177,"context_line":"   of the \"child\" resources, as they can not be included in non-existing parent"},{"line_number":178,"context_line":"   resources."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_5c589e32","line":176,"in_reply_to":"3a98d1f4_26f07e90","updated":"2016-10-06 18:04:52.000000000","message":"Done","commit_id":"0889b00d3ff8cbcd63574fe4548ade67e787c913"}]}
