)]}'
{"/PATCHSET_LEVEL":[{"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":"d14d4fa3fc5eed6100adf4686de461fe0e51245b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c52608cc_edf2140a","updated":"2023-02-20 23:05:17.000000000","message":"I don\u0027t have a specific line to comment this on... but parent/child node relationships sound a HECK of a lot like Chassis. ","commit_id":"b00859e13259e443559e12bf7c857f6e0193a3df"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"f555c18d8aa50fd2093e26efb503f27e09a5cb74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3c06ace1_08d4955f","updated":"2023-02-21 19:22:05.000000000","message":"I think this a great Idea, I see these devices as different fro Chassis at this time. For some the child devices may not be a physical part of a system and there by not a good fit for the Chassis model. I can for see the ability to setup rules for the child devices. Like Must be powered off durning a cleaning / deploy cycle, and powered on when node is active.. I can see this helping to reduce datacenter costs but also allowing a operator to setup rules that would ensure child devices are powered off when the node is not active, as opposed to requiring users remember to \"turn off the lights when done.\"  ","commit_id":"b00859e13259e443559e12bf7c857f6e0193a3df"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"660c8329b5d531f4f682edc9372ffc99b9180f09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"77cbe6d6_9fa6ca9e","in_reply_to":"3c06ace1_08d4955f","updated":"2023-02-21 22:13:27.000000000","message":"I guess there is the reverse which could be articulated, normally off, or normally on and a reversal. There is a level of reasonableness there. If you have thoughts on how to articulate that, or maybe just layer that on, it might be good.","commit_id":"b00859e13259e443559e12bf7c857f6e0193a3df"},{"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":"078f9324ce2f31fb4a414e0c13f811af0c4c9151","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2575f116_da687e2a","in_reply_to":"c52608cc_edf2140a","updated":"2023-02-20 23:06:07.000000000","message":"Can we explicitly put in alternatives why this isn\u0027t a chassis? If this isn\u0027t a chassis, what is?","commit_id":"b00859e13259e443559e12bf7c857f6e0193a3df"},{"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":"e3d0149098ca1e9f4a93a5d45af780c30058a4da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"160675d2_7df0b388","updated":"2023-03-24 21:49:35.000000000","message":"I don\u0027t fully understand the use case for DPUs, or even how prolific they are, so take my feedback with that in mind.\n\nIt seems like this spec is building legos to allow users to maintain DPUs. That\u0027s an OK approach, but with the amount of complexity this is adding, it\u0027s extremely difficult for me to see this being obvious, even with documentation, how to orchestrate this together for operators.\n\nIs there an implied second step of Ironic providing a higher level interface to knit these together?","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"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":"18d628d1d42d0d4be2122f43ff123766bb83584e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"66ab1adb_14d727ac","updated":"2023-03-24 21:51:47.000000000","message":"This also needs the symlink into not-implemented","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"abef754426825a32374213b424bc22c2465da95d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4d339942_9d8bdfe9","updated":"2023-05-09 21:25:17.000000000","message":"With 3x+2,1x+1, I\u0027m going to go ahead and workflow this.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"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":"9a17b5de30400da53a09099fdc3a018f22422117","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f751c28d_8ac421c2","updated":"2023-04-03 21:30:11.000000000","message":"Wouldn\u0027t hate renaming this to something more ironic-centric; e.g. parent/child node support. But that\u0027s kinda a high-level nit... ","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b2a08414_62bfe5ed","updated":"2023-05-02 07:38:20.000000000","message":"very interesting reading :)\nnits can be fixed in a followup if needed","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6167c5e16ffd9924d0561a831207bec4cdd3d3c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ea57ee5e_5c394bdd","in_reply_to":"f751c28d_8ac421c2","updated":"2023-04-04 19:24:44.000000000","message":"I think why is kind of important to convey, but I can see the point.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"}],"specs/approved/smartnics-to-dpus.rst":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"660c8329b5d531f4f682edc9372ffc99b9180f09","unresolved":true,"context_lines":[{"line_number":198,"context_line":"* Introduction of the ability to call ``set_boot_device`` as a step."},{"line_number":199,"context_line":"  In this case, we may want to set the DPU cards to PXE boot en-mass"},{"line_number":200,"context_line":"  to allow for software deployment in an IPA ramdisk, or other mechanism."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* Possibly: Consider \"physical\" network interfaces optional for some classes"},{"line_number":203,"context_line":"  of nodes. We won\u0027t know this until we are into the process of"},{"line_number":204,"context_line":"  implementation of the capabilities."}],"source_content_type":"text/x-rst","patch_set":3,"id":"d838b26e_0f51bc33","line":201,"updated":"2023-02-21 22:13:27.000000000","message":"In friendly discussion, since this has generated some interest, it has been pointed out to me that we should also expose power and a general pause action as specific steps may need to be articulated by a user executing deploy steps, or other step interfaces. This is because not all devices have fully functional bmcs and thus cannot be explicitly told \"go network boot\". This is reminiscent of of some of the early arm developer boards that would only network boot with an appropriate network sequence, which is also similar to many IOT devices.","commit_id":"f536750c126d34effebef1cb6abd3379ffd98b62"},{"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":"e3d0149098ca1e9f4a93a5d45af780c30058a4da","unresolved":true,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Six high level items are needed, with some potential additional changes"},{"line_number":177,"context_line":"may be needed depending on what we discover on the overall journey to"},{"line_number":178,"context_line":"implement such capabilities:"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Introduction of ``parent_node`` field on the node object with an API"},{"line_number":181,"context_line":"  version increase."}],"source_content_type":"text/x-rst","patch_set":6,"id":"05c4b936_4d7e42ab","line":178,"updated":"2023-03-24 21:49:35.000000000","message":"This sounds like we\u0027re trying to build the building blocks to allow orchestration of arbitrary DPU cards. That seems to fly in the face of our traditional driver model. Isn\u0027t a driver/device specific approach going to be much simpler for operators to understand and execute?\n\nIt currently seems like with the interface we\u0027re building, an operator will need intimate knowledge of how the DPU works, and how it\u0027s nested, to perform any actions -- is that a sign our interface is too flexible?","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d9ba77cf88ae808248ccf12e44705e8291d8f7d7","unresolved":true,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Six high level items are needed, with some potential additional changes"},{"line_number":177,"context_line":"may be needed depending on what we discover on the overall journey to"},{"line_number":178,"context_line":"implement such capabilities:"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Introduction of ``parent_node`` field on the node object with an API"},{"line_number":181,"context_line":"  version increase."}],"source_content_type":"text/x-rst","patch_set":6,"id":"55126339_1d3558c0","line":178,"in_reply_to":"05c4b936_4d7e42ab","updated":"2023-03-30 18:17:52.000000000","message":"So, the model of DPUs does require that an operator know quite a bit *and* it is going to end up being very much along the lines of \"what does an operator *want* to do given there is a bit of a free-form nature here.\n\nThat being said, your right, we\u0027re putting in building blocks to build upon, and based upon the PTG discussion I\u0027ll delineate that out a bit more.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"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":"e3d0149098ca1e9f4a93a5d45af780c30058a4da","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  ``true`` which would result on the defined step to execute upon all child"},{"line_number":192,"context_line":"  nodes."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* Introduction of the ability to call an IPMI Raw command via a step,"},{"line_number":195,"context_line":"  which would be normally invoked across all of the child nodes in this"},{"line_number":196,"context_line":"  case."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"4bb4683a_a6f998e1","line":194,"updated":"2023-03-24 21:49:35.000000000","message":"So, we need to find a way to do this generically IMO.\n\nPerhaps allow vendor_passthru methods to be called as part of a step? (we do have ipmi send_raw as a vendor_passthru iirc)\n\nWhat also prevents us from committing the specific raw bits needed as part of a driver?","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d9ba77cf88ae808248ccf12e44705e8291d8f7d7","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  ``true`` which would result on the defined step to execute upon all child"},{"line_number":192,"context_line":"  nodes."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* Introduction of the ability to call an IPMI Raw command via a step,"},{"line_number":195,"context_line":"  which would be normally invoked across all of the child nodes in this"},{"line_number":196,"context_line":"  case."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dd6aecca_c9aefa68","line":194,"in_reply_to":"4bb4683a_a6f998e1","updated":"2023-03-30 18:17:52.000000000","message":"I think vendor methods requires step interface extension, since it is outside of the existing supported interfaces, but I think we could then decorate them.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"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":"e3d0149098ca1e9f4a93a5d45af780c30058a4da","unresolved":true,"context_lines":[{"line_number":200,"context_line":"  to allow for software deployment in an IPA ramdisk, or other mechanism."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* Introduction of the ability to call ``power_on``, ``power_off`` management"},{"line_number":203,"context_line":"  interface methods as steps. Additionally add a ``pause`` step method."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* Possibly: Consider \"physical\" network interfaces optional for some classes"},{"line_number":206,"context_line":"  of nodes. We won\u0027t know this until we are into the process of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e7c3ebf4_86777e7f","line":203,"updated":"2023-03-24 21:49:35.000000000","message":"This has significant overlap with reboot_requested on cleaning. Should we deprecate or enhance that interface? Either way, I think it\u0027d be a mistake to keep reboot_requested and this arbitrary interface.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d9ba77cf88ae808248ccf12e44705e8291d8f7d7","unresolved":true,"context_lines":[{"line_number":200,"context_line":"  to allow for software deployment in an IPA ramdisk, or other mechanism."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* Introduction of the ability to call ``power_on``, ``power_off`` management"},{"line_number":203,"context_line":"  interface methods as steps. Additionally add a ``pause`` step method."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* Possibly: Consider \"physical\" network interfaces optional for some classes"},{"line_number":206,"context_line":"  of nodes. We won\u0027t know this until we are into the process of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"56b86db8_ab19dd07","line":203,"in_reply_to":"e7c3ebf4_86777e7f","updated":"2023-03-30 18:17:52.000000000","message":"I believe the PTG consensus, based on articulated need since we don\u0027t know what/if at times the host will need to be rebooted was to have a step to explicitly allow an operator to tell the conductor \"clear the token\"\n\nYet in hind sight, I think we were focusing on the agent running and self powering down. The intent here was a higher level \"I need to power this card down\" or \"i need to power this card back up\", which is unrelated to reboot requested.  Granted, we would want to use the same call flows for conductor manager/utils in this case so any tokens are not left in memory.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"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":"e3d0149098ca1e9f4a93a5d45af780c30058a4da","unresolved":true,"context_lines":[{"line_number":245,"context_line":"Alternatives"},{"line_number":246,"context_line":"------------"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"Three alternatives exist."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Do nothing"},{"line_number":251,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7db3d4d1_cdc23a4d","line":248,"updated":"2023-03-24 21:49:35.000000000","message":"There is a fourth option, at least that would change how we would approach the work here: to implement support DPU-by-DPU, rather than trying to setup the ability for arbitrary workflows to be performed. We\u0027d still need some of the data model changes, but the interface we present to operators could be simplified.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d9ba77cf88ae808248ccf12e44705e8291d8f7d7","unresolved":true,"context_lines":[{"line_number":245,"context_line":"Alternatives"},{"line_number":246,"context_line":"------------"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"Three alternatives exist."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Do nothing"},{"line_number":251,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"15d296d8_ee6c1c2e","line":248,"in_reply_to":"7db3d4d1_cdc23a4d","updated":"2023-03-30 18:17:52.000000000","message":"so.... not really and I think we would sort of still do that if we have the child interface model.\n\nIn part because any single node may have multiple types of DPUs, which may have different requirements. So a parent level node can\u0027t be locked into a single node by a single add-in card. Anyway, adding the forth one.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"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":"e3d0149098ca1e9f4a93a5d45af780c30058a4da","unresolved":true,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"GET /v1/nodes/"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"The view will by default return only nodes where the ``parent_node`` field"},{"line_number":349,"context_line":"is null. Older API clients will still recieve this default behavior change."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"GET /v1/nodes/\u003cnode_ident\u003e/children"}],"source_content_type":"text/x-rst","patch_set":6,"id":"4a333701_7e7f9e7d","line":348,"updated":"2023-03-24 21:49:35.000000000","message":"How would an operator get ALL nodes in their environment under this proposed change? \n\nI\u0027m not sure I\u0027m sold this default change is a good idea -- the filters are there, operators can use them, but operators may not know to look for nodes they don\u0027t even realize fully exists.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d9ba77cf88ae808248ccf12e44705e8291d8f7d7","unresolved":true,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"GET /v1/nodes/"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"The view will by default return only nodes where the ``parent_node`` field"},{"line_number":349,"context_line":"is null. Older API clients will still recieve this default behavior change."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"GET /v1/nodes/\u003cnode_ident\u003e/children"}],"source_content_type":"text/x-rst","patch_set":6,"id":"15e4e819_c3e5d761","line":348,"in_reply_to":"4a333701_7e7f9e7d","updated":"2023-03-30 18:17:52.000000000","message":"I guess I view it being anything but the default being a major flaw in that children cannot hold general purpose \"instances\", and are deleted when the parent nodes are deleted.","commit_id":"69960531655058454d8cb09eae91e1a29b73de96"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://storyboard.openstack.org/#!/story/XXXXXXX"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The ideas behind \"Smart NICs\" has evolved as time has progressed."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"And honestly it feels like we in the Ironic community helped drive some"},{"line_number":17,"context_line":"of that improvement in better, more secure directions. Hey! We said we"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bded5dad_986e8123","line":14,"range":{"start_line":14,"start_character":30,"end_line":14,"end_character":33},"updated":"2023-05-02 07:38:20.000000000","message":"nit: have","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"https://storyboard.openstack.org/#!/story/XXXXXXX"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The ideas behind \"Smart NICs\" has evolved as time has progressed."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"And honestly it feels like we in the Ironic community helped drive some"},{"line_number":17,"context_line":"of that improvement in better, more secure directions. Hey! We said we"}],"source_content_type":"text/x-rst","patch_set":7,"id":"86fa62f0_037c3801","line":14,"range":{"start_line":14,"start_character":30,"end_line":14,"end_character":33},"in_reply_to":"bded5dad_986e8123","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":57,"context_line":"Composible Hardware"},{"line_number":58,"context_line":"~~~~~~~~~~~~~~~~~~~"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The phrase \"Composible Hardware\" is unfortuantely overloaded. This is best"},{"line_number":61,"context_line":"described as use of a centralized service to \"compose\" hardware for use by"},{"line_number":62,"context_line":"a workload. A good way to view this, at least in a classical sense is through"},{"line_number":63,"context_line":"an API or application constructing a cohesive functioning computer resource"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0ef24d79_55aa47fb","line":60,"range":{"start_line":60,"start_character":36,"end_line":60,"end_character":49},"updated":"2023-05-02 07:38:20.000000000","message":"nit: unfortunately","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Composible Hardware"},{"line_number":58,"context_line":"~~~~~~~~~~~~~~~~~~~"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The phrase \"Composible Hardware\" is unfortuantely overloaded. This is best"},{"line_number":61,"context_line":"described as use of a centralized service to \"compose\" hardware for use by"},{"line_number":62,"context_line":"a workload. A good way to view this, at least in a classical sense is through"},{"line_number":63,"context_line":"an API or application constructing a cohesive functioning computer resource"}],"source_content_type":"text/x-rst","patch_set":7,"id":"34eb5f40_72761474","line":60,"range":{"start_line":60,"start_character":36,"end_line":60,"end_character":49},"in_reply_to":"0ef24d79_55aa47fb","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":89,"context_line":"focus of specific computing workload offloads, we need to be careful"},{"line_number":90,"context_line":"to specifically delineate which use cases we\u0027re attempting to support,"},{"line_number":91,"context_line":"and also not try to assume one implies the other. In other words, DPUs do"},{"line_number":92,"context_line":"offer some interesting capabilities towards Compisible Hardware, however"},{"line_number":93,"context_line":"it is inhernetly not full configuration as the underlying host is still"},{"line_number":94,"context_line":"a static entity."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3af953f8_7e5ce80a","line":92,"range":{"start_line":92,"start_character":44,"end_line":92,"end_character":54},"updated":"2023-05-02 07:38:20.000000000","message":"nit: Composible","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":89,"context_line":"focus of specific computing workload offloads, we need to be careful"},{"line_number":90,"context_line":"to specifically delineate which use cases we\u0027re attempting to support,"},{"line_number":91,"context_line":"and also not try to assume one implies the other. In other words, DPUs do"},{"line_number":92,"context_line":"offer some interesting capabilities towards Compisible Hardware, however"},{"line_number":93,"context_line":"it is inhernetly not full configuration as the underlying host is still"},{"line_number":94,"context_line":"a static entity."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"64c07966_7485bfe8","line":92,"range":{"start_line":92,"start_character":44,"end_line":92,"end_character":54},"in_reply_to":"3af953f8_7e5ce80a","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":90,"context_line":"to specifically delineate which use cases we\u0027re attempting to support,"},{"line_number":91,"context_line":"and also not try to assume one implies the other. In other words, DPUs do"},{"line_number":92,"context_line":"offer some interesting capabilities towards Compisible Hardware, however"},{"line_number":93,"context_line":"it is inhernetly not full configuration as the underlying host is still"},{"line_number":94,"context_line":"a static entity."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":".. NOTE::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"003da4fd_3623caab","line":93,"range":{"start_line":93,"start_character":6,"end_line":93,"end_character":16},"updated":"2023-05-02 07:38:20.000000000","message":"nit: inherently","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":90,"context_line":"to specifically delineate which use cases we\u0027re attempting to support,"},{"line_number":91,"context_line":"and also not try to assume one implies the other. In other words, DPUs do"},{"line_number":92,"context_line":"offer some interesting capabilities towards Compisible Hardware, however"},{"line_number":93,"context_line":"it is inhernetly not full configuration as the underlying host is still"},{"line_number":94,"context_line":"a static entity."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":".. NOTE::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"90a82b9f_0bb29166","line":93,"range":{"start_line":93,"start_character":6,"end_line":93,"end_character":16},"in_reply_to":"003da4fd_3623caab","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":98,"context_line":"   cards are Graphics Processing Units. While there does not appear to be"},{"line_number":99,"context_line":"   any explicit movement into supporting that specific offload, some vendors"},{"line_number":100,"context_line":"   are working on highly specific processing cards such those as performing"},{"line_number":101,"context_line":"   protocol/signal translation. They may, or may not be able to have a"},{"line_number":102,"context_line":"   an operating system or provisioned application."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The problem"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4e3a3a49_90b0f7ed","line":101,"range":{"start_line":101,"start_character":69,"end_line":101,"end_character":70},"updated":"2023-05-02 07:38:20.000000000","message":"nit: remove \u0027a\u0027","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":98,"context_line":"   cards are Graphics Processing Units. While there does not appear to be"},{"line_number":99,"context_line":"   any explicit movement into supporting that specific offload, some vendors"},{"line_number":100,"context_line":"   are working on highly specific processing cards such those as performing"},{"line_number":101,"context_line":"   protocol/signal translation. They may, or may not be able to have a"},{"line_number":102,"context_line":"   an operating system or provisioned application."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The problem"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1d9695f4_f461df9a","line":101,"range":{"start_line":101,"start_character":69,"end_line":101,"end_character":70},"in_reply_to":"4e3a3a49_90b0f7ed","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":128,"context_line":"   requesting the BMC on the card to permit the overall host OS to"},{"line_number":129,"context_line":"   Access the card\u0027s BMC. This is achievable with an IPMI raw command, but"},{"line_number":130,"context_line":"   against the card\u0027s BMC."},{"line_number":131,"context_line":"2) Then you would apply BMC firmware updates, to the card\u0027s BMC/"},{"line_number":132,"context_line":"   Today this would boot IPA, and perform it from the host OS, which also"},{"line_number":133,"context_line":"   means that we\u0027re going to need to interact with the overall host BMC,"},{"line_number":134,"context_line":"   and boot the baremetal machine overall."}],"source_content_type":"text/x-rst","patch_set":7,"id":"4ab8c457_954d1a74","line":131,"range":{"start_line":131,"start_character":63,"end_line":131,"end_character":64},"updated":"2023-05-02 07:38:20.000000000","message":"nit: s/\\//.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":128,"context_line":"   requesting the BMC on the card to permit the overall host OS to"},{"line_number":129,"context_line":"   Access the card\u0027s BMC. This is achievable with an IPMI raw command, but"},{"line_number":130,"context_line":"   against the card\u0027s BMC."},{"line_number":131,"context_line":"2) Then you would apply BMC firmware updates, to the card\u0027s BMC/"},{"line_number":132,"context_line":"   Today this would boot IPA, and perform it from the host OS, which also"},{"line_number":133,"context_line":"   means that we\u0027re going to need to interact with the overall host BMC,"},{"line_number":134,"context_line":"   and boot the baremetal machine overall."}],"source_content_type":"text/x-rst","patch_set":7,"id":"fbf86015_4ae75218","line":131,"range":{"start_line":131,"start_character":63,"end_line":131,"end_character":64},"in_reply_to":"4ab8c457_954d1a74","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6daff7d0dc8f3a31a41bd9239419b490c89b2fb3","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  can be submitted, which includes a list of child nodes, or a value of"},{"line_number":192,"context_line":"  ``true`` which would result on the defined step to execute upon all child"},{"line_number":193,"context_line":"  nodes."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Introduction of the ability to call a vendor passthrough interface"},{"line_number":196,"context_line":"  as a step. In the case of some smartnics, they need the ability to"},{"line_number":197,"context_line":"  call IPMI raw commands across child nodes."}],"source_content_type":"text/x-rst","patch_set":7,"id":"e10108b9_90a098ac","line":194,"updated":"2023-04-12 16:47:03.000000000","message":"In terms of the implementation, a constraint likely needs to be any step which returns CLEANWAIT, may need to be a hard failure.  Async operations cannot run on the children, at least, right *now*\n\nWe also see async ops in terms of things like OS deployments, so it seems like a logical constraints because I may have say 3 child devices, two DPUs, and one super special offload card which I can all individual interact/change/modify/\"make dance\".","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":191,"context_line":"  can be submitted, which includes a list of child nodes, or a value of"},{"line_number":192,"context_line":"  ``true`` which would result on the defined step to execute upon all child"},{"line_number":193,"context_line":"  nodes."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Introduction of the ability to call a vendor passthrough interface"},{"line_number":196,"context_line":"  as a step. In the case of some smartnics, they need the ability to"},{"line_number":197,"context_line":"  call IPMI raw commands across child nodes."}],"source_content_type":"text/x-rst","patch_set":7,"id":"451617cd_dac42d8e","line":194,"in_reply_to":"e10108b9_90a098ac","updated":"2023-05-09 21:19:36.000000000","message":"Adding detail and clarifying.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6daff7d0dc8f3a31a41bd9239419b490c89b2fb3","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Introduction of the ability to call a vendor passthrough interface"},{"line_number":196,"context_line":"  as a step. In the case of some smartnics, they need the ability to"},{"line_number":197,"context_line":"  call IPMI raw commands across child nodes."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Introduction of the ability to call ``set_boot_device`` as a step."},{"line_number":200,"context_line":"  In this case, we may want to set the DPU cards to PXE boot en-mass"}],"source_content_type":"text/x-rst","patch_set":7,"id":"493d6e24_64046edb","line":197,"updated":"2023-04-12 16:47:03.000000000","message":"Being proposed as a separate change which is disjointed at this time.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Introduction of the ability to call a vendor passthrough interface"},{"line_number":196,"context_line":"  as a step. In the case of some smartnics, they need the ability to"},{"line_number":197,"context_line":"  call IPMI raw commands across child nodes."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Introduction of the ability to call ``set_boot_device`` as a step."},{"line_number":200,"context_line":"  In this case, we may want to set the DPU cards to PXE boot en-mass"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6a048407_ffba2f1e","line":197,"in_reply_to":"493d6e24_64046edb","updated":"2023-05-09 21:19:36.000000000","message":"Ack","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":220,"context_line":"  based upon their experiences."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"With these high level and workflow changes, it will be much easier for an"},{"line_number":223,"context_line":"operator to orchustrate management actions across an single"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"In this model, the same basic rules for child nodes would apply, they may have"},{"line_number":226,"context_line":"their own power supplies and their own power control, and thus have inherent"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a3a3c64_3f9fbf8a","line":223,"range":{"start_line":223,"start_character":43,"end_line":223,"end_character":59},"updated":"2023-05-02 07:38:20.000000000","message":"nit: looks like the phrase was cut? :)","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c5ad6cadf6263a3cae523c09faf408b58ba7b4e2","unresolved":true,"context_lines":[{"line_number":220,"context_line":"  based upon their experiences."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"With these high level and workflow changes, it will be much easier for an"},{"line_number":223,"context_line":"operator to orchustrate management actions across an single"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"In this model, the same basic rules for child nodes would apply, they may have"},{"line_number":226,"context_line":"their own power supplies and their own power control, and thus have inherent"}],"source_content_type":"text/x-rst","patch_set":7,"id":"279ecff8_5a10beaf","line":223,"range":{"start_line":223,"start_character":12,"end_line":223,"end_character":23},"updated":"2023-05-02 07:38:20.000000000","message":"nit: orchestrate","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":true,"context_lines":[{"line_number":220,"context_line":"  based upon their experiences."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"With these high level and workflow changes, it will be much easier for an"},{"line_number":223,"context_line":"operator to orchustrate management actions across an single"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"In this model, the same basic rules for child nodes would apply, they may have"},{"line_number":226,"context_line":"their own power supplies and their own power control, and thus have inherent"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b41d5ea9_6f7c3ff5","line":223,"range":{"start_line":223,"start_character":43,"end_line":223,"end_character":59},"in_reply_to":"1a3a3c64_3f9fbf8a","updated":"2023-05-09 21:19:36.000000000","message":"Good catch! Fixed!","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":220,"context_line":"  based upon their experiences."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"With these high level and workflow changes, it will be much easier for an"},{"line_number":223,"context_line":"operator to orchustrate management actions across an single"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"In this model, the same basic rules for child nodes would apply, they may have"},{"line_number":226,"context_line":"their own power supplies and their own power control, and thus have inherent"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fbd01c0e_e0ef79d9","line":223,"range":{"start_line":223,"start_character":12,"end_line":223,"end_character":23},"in_reply_to":"279ecff8_5a10beaf","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"50188b9925f21457733eb7ce7a83cc0567f06ae5","unresolved":true,"context_lines":[{"line_number":359,"context_line":"REST API impact"},{"line_number":360,"context_line":"---------------"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"GET /v1/nodes/?include_children\u003dTrue"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"Returns a list of base nodes with all child nodes child nodes, useful for"},{"line_number":365,"context_line":"a big picture view of all things Ironic is responsible for."}],"source_content_type":"text/x-rst","patch_set":7,"id":"0488b481_876fb38e","line":362,"updated":"2023-04-10 22:39:30.000000000","message":"Lets just remove these so they are a filter key only, not a boolean choice. Doing anything beyond presence checking makes the underlying logic a big weird in the database query since we kind of have to do a view like behavior change.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cfc3fd6e226d4c243ec3a0bf85f3c143b16ae4d8","unresolved":true,"context_lines":[{"line_number":359,"context_line":"REST API impact"},{"line_number":360,"context_line":"---------------"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"GET /v1/nodes/?include_children\u003dTrue"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"Returns a list of base nodes with all child nodes child nodes, useful for"},{"line_number":365,"context_line":"a big picture view of all things Ironic is responsible for."}],"source_content_type":"text/x-rst","patch_set":7,"id":"e4229205_892174db","line":362,"in_reply_to":"0488b481_876fb38e","updated":"2023-04-10 22:41:30.000000000","message":"err, no, lets explicitly require it. Sigh","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":359,"context_line":"REST API impact"},{"line_number":360,"context_line":"---------------"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"GET /v1/nodes/?include_children\u003dTrue"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"Returns a list of base nodes with all child nodes child nodes, useful for"},{"line_number":365,"context_line":"a big picture view of all things Ironic is responsible for."}],"source_content_type":"text/x-rst","patch_set":7,"id":"4df56aed_bcfddf4a","line":362,"in_reply_to":"e4229205_892174db","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"169177c6eea8f0b17ddabe6c0f4b93d48ac462c1","unresolved":true,"context_lines":[{"line_number":364,"context_line":"Returns a list of base nodes with all child nodes child nodes, useful for"},{"line_number":365,"context_line":"a big picture view of all things Ironic is responsible for."},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"GET /v1/nodes/?is_child_node\u003dTrue"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"Returns a list of only nodes with a parent node defined."},{"line_number":370,"context_line":"Standard /v1/nodes access contstraints and behaivors will still apply."}],"source_content_type":"text/x-rst","patch_set":7,"id":"d0a6d1db_a35234ab","line":367,"updated":"2023-04-11 16:41:35.000000000","message":"I\u0027m going to drop this, include_children ends up being functionally identical and is_* is weird in our api.","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"37ba4c5d583876f0c5b32a26e15d69558eb64432","unresolved":false,"context_lines":[{"line_number":364,"context_line":"Returns a list of base nodes with all child nodes child nodes, useful for"},{"line_number":365,"context_line":"a big picture view of all things Ironic is responsible for."},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"GET /v1/nodes/?is_child_node\u003dTrue"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"Returns a list of only nodes with a parent node defined."},{"line_number":370,"context_line":"Standard /v1/nodes access contstraints and behaivors will still apply."}],"source_content_type":"text/x-rst","patch_set":7,"id":"b1980975_ac950578","line":367,"in_reply_to":"d0a6d1db_a35234ab","updated":"2023-05-09 21:19:36.000000000","message":"Done","commit_id":"cc621b075fe8f0728d324c07e14d1442821b4029"}]}
