)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"4eccdad29ceec8175bdb9ac1121b4e5e36e71c40","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aija Jauntēva \u003caija.jaunteva@dell.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-07-14 13:31:57 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Operationally efficient and fast-track bare metal hardware provisioning"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Authored-By: Richard Pioso \u003crichard.pioso@dell.com\u003e"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bf51134e_94a54e4a","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":76},"updated":"2020-07-23 20:17:43.000000000","message":"please, keep with 80 char line","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"32407ef463eb3ad5871563b4ab5cd96d9a7d5ae7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aija Jauntēva \u003caija.jaunteva@dell.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-07-14 13:31:57 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Operationally efficient and fast-track bare metal hardware provisioning"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Authored-By: Richard Pioso \u003crichard.pioso@dell.com\u003e"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_97e2e400","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":76},"in_reply_to":"bf51134e_94a54e4a","updated":"2020-07-24 15:45:18.000000000","message":"Done","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"}],"specs/approved/fast-track-provisioning.rst":[{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"7d0e470a28235ccde4f44b1c39e3c5fce38b79c0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning requiring fewer reboots, when supported by"},{"line_number":31,"context_line":"  a system and its ironic hardware type"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_6a9fa34f","line":30,"range":{"start_line":30,"start_character":35,"end_line":30,"end_character":57},"updated":"2020-07-14 02:19:47.000000000","message":"I think you mean \"minimizing time\". Minimizing reboots is one of several optimizations that implementation can do.","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"32407ef463eb3ad5871563b4ab5cd96d9a7d5ae7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning requiring fewer reboots, when supported by"},{"line_number":31,"context_line":"  a system and its ironic hardware type"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f560f44_77dc7046","line":30,"range":{"start_line":30,"start_character":35,"end_line":30,"end_character":57},"in_reply_to":"bf51134e_6a9fa34f","updated":"2020-07-24 15:45:18.000000000","message":"Done","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"7d0e470a28235ccde4f44b1c39e3c5fce38b79c0","unresolved":false,"context_lines":[{"line_number":268,"context_line":"      \"interface\": \"idrac-redfish\","},{"line_number":269,"context_line":"      \"data\": {"},{"line_number":270,"context_line":"        \"SystemConfiguration\": {"},{"line_number":271,"context_line":"          \"Model\": \"PowerEdge R640\","},{"line_number":272,"context_line":"          \"ServiceTag\": \"8CY9Z99\","},{"line_number":273,"context_line":"          \"TimeStamp\": \"Fri Jun 26 08:43:15 2020\","},{"line_number":274,"context_line":"          \"Components\": ["}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_aabedbaa","line":271,"range":{"start_line":271,"start_character":0,"end_line":271,"end_character":36},"updated":"2020-07-14 02:19:47.000000000","message":"What happens if model of a node to which importconfig is being applied to does not match the model in import file?","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"53d7212723f90b70e402bdc5dedb744bff5fbf52","unresolved":false,"context_lines":[{"line_number":268,"context_line":"      \"interface\": \"idrac-redfish\","},{"line_number":269,"context_line":"      \"data\": {"},{"line_number":270,"context_line":"        \"SystemConfiguration\": {"},{"line_number":271,"context_line":"          \"Model\": \"PowerEdge R640\","},{"line_number":272,"context_line":"          \"ServiceTag\": \"8CY9Z99\","},{"line_number":273,"context_line":"          \"TimeStamp\": \"Fri Jun 26 08:43:15 2020\","},{"line_number":274,"context_line":"          \"Components\": ["}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_282129b5","line":271,"range":{"start_line":271,"start_character":0,"end_line":271,"end_character":36},"in_reply_to":"bf51134e_aabedbaa","updated":"2020-07-14 17:23:06.000000000","message":"This is metadata about the source of configuration. Inside Components section are settings that can be overwritten.\n\nExtended a sample file a bit that is truncated for brevity and clarified below what\u0027s inside, though this is iDRAC specific and this spec doesn\u0027t go much into details how exactly SCP will work. The spec focuses more on vendor-independent part.","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"7d0e470a28235ccde4f44b1c39e3c5fce38b79c0","unresolved":false,"context_lines":[{"line_number":269,"context_line":"      \"data\": {"},{"line_number":270,"context_line":"        \"SystemConfiguration\": {"},{"line_number":271,"context_line":"          \"Model\": \"PowerEdge R640\","},{"line_number":272,"context_line":"          \"ServiceTag\": \"8CY9Z99\","},{"line_number":273,"context_line":"          \"TimeStamp\": \"Fri Jun 26 08:43:15 2020\","},{"line_number":274,"context_line":"          \"Components\": ["},{"line_number":275,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_cac34f37","line":272,"range":{"start_line":272,"start_character":0,"end_line":272,"end_character":34},"updated":"2020-07-14 02:19:47.000000000","message":"What happens when import specifies to overwrite node UUID?\n\nDo we support special symbols to specify to leave this field  unchanged on a node?","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"53d7212723f90b70e402bdc5dedb744bff5fbf52","unresolved":false,"context_lines":[{"line_number":269,"context_line":"      \"data\": {"},{"line_number":270,"context_line":"        \"SystemConfiguration\": {"},{"line_number":271,"context_line":"          \"Model\": \"PowerEdge R640\","},{"line_number":272,"context_line":"          \"ServiceTag\": \"8CY9Z99\","},{"line_number":273,"context_line":"          \"TimeStamp\": \"Fri Jun 26 08:43:15 2020\","},{"line_number":274,"context_line":"          \"Components\": ["},{"line_number":275,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_6827a1c8","line":272,"range":{"start_line":272,"start_character":0,"end_line":272,"end_character":34},"in_reply_to":"bf51134e_cac34f37","updated":"2020-07-14 17:23:06.000000000","message":"same above - this is metadata.","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"7d0e470a28235ccde4f44b1c39e3c5fce38b79c0","unresolved":false,"context_lines":[{"line_number":355,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":356,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":357,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"},{"line_number":358,"context_line":"intervention and decreasing configuration time\"[2]_."},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":361,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_6acde35b","line":358,"range":{"start_line":358,"start_character":50,"end_line":358,"end_character":51},"updated":"2020-07-14 02:19:47.000000000","message":"drop \"_\"","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"53d7212723f90b70e402bdc5dedb744bff5fbf52","unresolved":false,"context_lines":[{"line_number":355,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":356,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":357,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"},{"line_number":358,"context_line":"intervention and decreasing configuration time\"[2]_."},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":361,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_68a4c14b","line":358,"range":{"start_line":358,"start_character":50,"end_line":358,"end_character":51},"in_reply_to":"bf51134e_6acde35b","updated":"2020-07-14 17:23:06.000000000","message":"this is part or rst syntax and it\u0027s intended to be clickable link to References section in rendered output. Keeping it.","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"7d0e470a28235ccde4f44b1c39e3c5fce38b79c0","unresolved":false,"context_lines":[{"line_number":446,"context_line":"Performance Impact"},{"line_number":447,"context_line":"------------------"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"Depending on hardware type implementation, deployments can become faster."},{"line_number":450,"context_line":"When configuration files are processed, they are read in memory, but it is not"},{"line_number":451,"context_line":"expected that these files will be large."},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"Other deployer impact"},{"line_number":454,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_2a012b6b","line":451,"range":{"start_line":449,"start_character":0,"end_line":451,"end_character":40},"updated":"2020-07-14 02:19:47.000000000","message":"Are APIs of this proposal sync or async?\nIf async how do you test for completion?","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"37d6bfb3a2d80905ddcead383711deb6b30c4e58","unresolved":false,"context_lines":[{"line_number":446,"context_line":"Performance Impact"},{"line_number":447,"context_line":"------------------"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"Depending on hardware type implementation, deployments can become faster."},{"line_number":450,"context_line":"When configuration files are processed, they are read in memory, but it is not"},{"line_number":451,"context_line":"expected that these files will be large."},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"Other deployer impact"},{"line_number":454,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf51134e_c8355f47","line":451,"range":{"start_line":449,"start_character":0,"end_line":451,"end_character":40},"in_reply_to":"bf51134e_2a012b6b","updated":"2020-07-24 15:47:02.000000000","message":"Deployment and cleaning support both sync and async steps. It is up to each implementation. Generally, testing for async completion is implementation dependent. Periodic polling can be used.\n\nWe envision the first iDRAC delivery will be sync, because it has no need for additional sushy functionality and it\u0027s simpler to implement and test.","commit_id":"de7bc7fa59751e90e8f7cc3110682717886a542e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"4eccdad29ceec8175bdb9ac1121b4e5e36e71c40","unresolved":false,"context_lines":[{"line_number":43,"context_line":"a repetitive task to configure them all. Use cases to benefit from this"},{"line_number":44,"context_line":"include:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* Rapidly and consistently configure fleets of physical servers during"},{"line_number":47,"context_line":"  deployment"},{"line_number":48,"context_line":"* Production environments in which physical servers are repurposed for"},{"line_number":49,"context_line":"  workloads that require different configurations and fast turnaround is at"},{"line_number":50,"context_line":"  a premium"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_b4585256","line":50,"range":{"start_line":46,"start_character":0,"end_line":50,"end_character":11},"updated":"2020-07-23 20:17:43.000000000","message":"Does that mean that you can in one operation configure/reconfigure a fleet of servers to template define configuration?","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"32407ef463eb3ad5871563b4ab5cd96d9a7d5ae7","unresolved":false,"context_lines":[{"line_number":43,"context_line":"a repetitive task to configure them all. Use cases to benefit from this"},{"line_number":44,"context_line":"include:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* Rapidly and consistently configure fleets of physical servers during"},{"line_number":47,"context_line":"  deployment"},{"line_number":48,"context_line":"* Production environments in which physical servers are repurposed for"},{"line_number":49,"context_line":"  workloads that require different configurations and fast turnaround is at"},{"line_number":50,"context_line":"  a premium"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9f560f44_17c09450","line":50,"range":{"start_line":46,"start_character":0,"end_line":50,"end_character":11},"in_reply_to":"bf51134e_b4585256","updated":"2020-07-24 15:45:18.000000000","message":"The same operation using the same configuration file can be executed for each system in the fleet with similar hardware capabilities. The total number of operations equals the number of systems. They can be executed in parallel.","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"4eccdad29ceec8175bdb9ac1121b4e5e36e71c40","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Name"},{"line_number":95,"context_line":"  ``export_configuration``"},{"line_number":96,"context_line":"Details"},{"line_number":97,"context_line":"  Gets the configuration of the server against which the step is run and"},{"line_number":98,"context_line":"  stores it in specific format in indicated storage as configured by Ironic."},{"line_number":99,"context_line":"Priority"},{"line_number":100,"context_line":"  0"},{"line_number":101,"context_line":"Stoppable"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_541e1674","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":76},"updated":"2020-07-23 20:17:43.000000000","message":"what will happen to server login credentials, IP addresses and other server specific data?","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"37d6bfb3a2d80905ddcead383711deb6b30c4e58","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Name"},{"line_number":95,"context_line":"  ``export_configuration``"},{"line_number":96,"context_line":"Details"},{"line_number":97,"context_line":"  Gets the configuration of the server against which the step is run and"},{"line_number":98,"context_line":"  stores it in specific format in indicated storage as configured by Ironic."},{"line_number":99,"context_line":"Priority"},{"line_number":100,"context_line":"  0"},{"line_number":101,"context_line":"Stoppable"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_eb301d58","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":76},"in_reply_to":"bf51134e_541e1674","updated":"2020-07-24 15:47:02.000000000","message":"It is implementation dependent.\n\nFor iDRAC, they will be exported and included in the generated configuration file, which will be stored in Swift or the web server\u0027s folder.\n\nAre there any concerns about this?","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"4eccdad29ceec8175bdb9ac1121b4e5e36e71c40","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Name"},{"line_number":154,"context_line":"  ``import_configuration``"},{"line_number":155,"context_line":"Details"},{"line_number":156,"context_line":"  Gets pre-created configuration from storage by given filename and imports"},{"line_number":157,"context_line":"  that into given server."},{"line_number":158,"context_line":"Priority"},{"line_number":159,"context_line":"  0"},{"line_number":160,"context_line":"Stoppable"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_3413a268","line":157,"range":{"start_line":156,"start_character":0,"end_line":157,"end_character":25},"updated":"2020-07-23 20:17:43.000000000","message":"Again what happens to configuration that is specific to node  from which it was exported, if config includes that type of data?","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"37d6bfb3a2d80905ddcead383711deb6b30c4e58","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Name"},{"line_number":154,"context_line":"  ``import_configuration``"},{"line_number":155,"context_line":"Details"},{"line_number":156,"context_line":"  Gets pre-created configuration from storage by given filename and imports"},{"line_number":157,"context_line":"  that into given server."},{"line_number":158,"context_line":"Priority"},{"line_number":159,"context_line":"  0"},{"line_number":160,"context_line":"Stoppable"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_6e5ffb0e","line":157,"range":{"start_line":156,"start_character":0,"end_line":157,"end_character":25},"in_reply_to":"bf51134e_3413a268","updated":"2020-07-24 15:47:02.000000000","message":"It is imported as-is. If the operator wants to make changes after export and before import, then they can update the configuration file manually.\n\nFor iDRAC, any writable attributes in the configuration file will be applied.","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"4eccdad29ceec8175bdb9ac1121b4e5e36e71c40","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"The workflow of the import configuration consists of 3 parts:"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":181,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":182,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":183,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":184,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Further improvement could be additional processing on the configuration files"},{"line_number":187,"context_line":"before applying, for example, clean up irrelevant parts, but this is currently"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_9401ce09","line":184,"range":{"start_line":180,"start_character":0,"end_line":184,"end_character":62},"updated":"2020-07-23 20:17:43.000000000","message":"what happens on any failure? is node return to its original state?","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"37d6bfb3a2d80905ddcead383711deb6b30c4e58","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"The workflow of the import configuration consists of 3 parts:"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":181,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":182,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":183,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":184,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Further improvement could be additional processing on the configuration files"},{"line_number":187,"context_line":"before applying, for example, clean up irrelevant parts, but this is currently"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9f560f44_f71b6070","line":184,"range":{"start_line":180,"start_character":0,"end_line":184,"end_character":62},"in_reply_to":"bf51134e_9401ce09","updated":"2020-07-24 15:47:02.000000000","message":"This does not propose to return the system to its original state. On failure, node will be transitioned to the \u0027deploy failed\u0027 state.","commit_id":"66d534c8e97c670fd51b8a350dd34e73f63c744c"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"f2b90b3031bf8aa886b7a10b8d638b6eaa7c0948","unresolved":false,"context_lines":[{"line_number":72,"context_line":"The following are considered outside the scope of this specification:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Implementation of the approach by all hardware types; it is optional"},{"line_number":75,"context_line":"* Requiring a hardware type’s implementation be complete; it may be partial"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Solution"},{"line_number":78,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_8039f742","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":75},"updated":"2020-07-25 02:20:45.000000000","message":"suggest adding a bullet for provisioning multiple nodes in one operation.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"e6d53b903f0ace2771d6b7021fc81b6f654322c1","unresolved":false,"context_lines":[{"line_number":72,"context_line":"The following are considered outside the scope of this specification:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Implementation of the approach by all hardware types; it is optional"},{"line_number":75,"context_line":"* Requiring a hardware type’s implementation be complete; it may be partial"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Solution"},{"line_number":78,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_42e7b1e5","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":75},"in_reply_to":"9f560f44_8039f742","updated":"2020-07-29 08:22:03.000000000","message":"in Solution section below referenced documentation for `clean` and `deploy` steps. As this specs suggests introducing new clean/deploy steps and on Ironic operations happen at node level, this is not suggesting that this spec introduces operation that applies to several nodes as one operation - it will still be necessary to issue commands per node.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"510a16637ec0817ace6ba94923b4868325496d23","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  * Optional flag to ``enable_create_root_volume`` to set"},{"line_number":110,"context_line":"    ``create_root_volume`` to ``true`` in exported file, defaults to ``false``"},{"line_number":111,"context_line":"  * Optional flag ``enable_delete_existing`` to set ``delete_existing``"},{"line_number":112,"context_line":"    to ``true`` in exported file, defaults to ``false``"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Sample of clean step configuration:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_934818cd","line":112,"updated":"2020-07-27 21:50:45.000000000","message":"Can you clarify above what would be deleted?  Is it it a template that was saved in an earlier run?  Is this to delete existing RAID configuration?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee27eb3e21d7f42468d7a9dd0995c5309313ac67","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  * Optional flag to ``enable_create_root_volume`` to set"},{"line_number":110,"context_line":"    ``create_root_volume`` to ``true`` in exported file, defaults to ``false``"},{"line_number":111,"context_line":"  * Optional flag ``enable_delete_existing`` to set ``delete_existing``"},{"line_number":112,"context_line":"    to ``true`` in exported file, defaults to ``false``"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Sample of clean step configuration:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_a204cd18","line":112,"in_reply_to":"9f560f44_934818cd","updated":"2020-07-29 09:27:47.000000000","message":"it applies to RAID section matching existing parameters on RAID steps. Restructured the args to move them under \u0027raid\u0027","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"510a16637ec0817ace6ba94923b4868325496d23","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":140,"context_line":"upload the configuration directly to the storage without using Ironic clean"},{"line_number":141,"context_line":"step."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_360f7a2f","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":48},"updated":"2020-07-27 21:50:45.000000000","message":"How is this done? By using the CLI or outside of ironic completely?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee27eb3e21d7f42468d7a9dd0995c5309313ac67","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":140,"context_line":"upload the configuration directly to the storage without using Ironic clean"},{"line_number":141,"context_line":"step."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_dd03a00c","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":48},"in_reply_to":"9f560f44_360f7a2f","updated":"2020-07-29 09:27:47.000000000","message":"outside Ironic. Swift has its own CLI and API. When using web server, need access to website\u0027s filesystem.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"a6c48a3e9ab2db30663d717b4747c97fe513aea9","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":140,"context_line":"upload the configuration directly to the storage without using Ironic clean"},{"line_number":141,"context_line":"step."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_3a0f148a","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":48},"in_reply_to":"9f560f44_dd03a00c","updated":"2020-07-31 10:22:43.000000000","message":"added to spec","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"510a16637ec0817ace6ba94923b4868325496d23","unresolved":false,"context_lines":[{"line_number":141,"context_line":"step."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Import configuration"},{"line_number":145,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Once the configuration is available, user can use it in the import"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_9691269d","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":20},"updated":"2020-07-27 21:50:45.000000000","message":"One thing that seems like it will need special handling is network configuration.  Ideally, it should be difficult for a user to import a config which kills network connectivity to at least the BMC management network.  Ironic also can have a provisioning network, and (I think) a cleaning network, unless that has been deprecated, and consideration to these networks should be given too.\nUsers will be very irate if they configure a node only to find that they just assigned a duplicate IP to the BMC of a node or assigned it an IP in a network that the node does not reside in, killing network connectivity to the node.  This would force someone to have to go onsite to manually reconfigure the BMC with a crash cart, and while ugly, this could get completely out of hand if many servers were being deployed in parallel. \nShould an argument be added to skip import of network configuration?  Should an argument be added to skip export of network configuration?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"a6c48a3e9ab2db30663d717b4747c97fe513aea9","unresolved":false,"context_lines":[{"line_number":141,"context_line":"step."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Import configuration"},{"line_number":145,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Once the configuration is available, user can use it in the import"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_5a680820","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":20},"in_reply_to":"9f560f44_5d6670ef","updated":"2020-07-31 10:22:43.000000000","message":"added, ln 201","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee27eb3e21d7f42468d7a9dd0995c5309313ac67","unresolved":false,"context_lines":[{"line_number":141,"context_line":"step."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Import configuration"},{"line_number":145,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Once the configuration is available, user can use it in the import"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_5d6670ef","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":20},"in_reply_to":"9f560f44_9691269d","updated":"2020-07-29 09:27:47.000000000","message":"true, it\u0027s possible to overwrite network configuration and make BMC inaccessible, especially when using static IP addresses, not DHCP.\n\nDepends on each vendor\u0027s capabilities, but for iDRAC when using SCP outside Ironic it\u0027s already possible to break configuration and at least in MVP this spec is not suggesting to add extra measures to prevent that. There are also other things that user can break, e.g., lose data when accidentally deleting storage configuration.\n\nUsers can edit the profiles in the storage before importing and test on one/few servers before deploying to hundreds (the files are human readable). For iDRAC possible issues will be documented in MVP.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"f2b90b3031bf8aa886b7a10b8d638b6eaa7c0948","unresolved":false,"context_lines":[{"line_number":181,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":182,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":183,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":184,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":185,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Further improvement could be additional processing on the configuration files"},{"line_number":188,"context_line":"before applying, for example, clean up irrelevant parts, but this is currently"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_2048ebca","line":185,"range":{"start_line":184,"start_character":3,"end_line":185,"end_character":62},"updated":"2020-07-25 02:20:45.000000000","message":"Is that only do BIOS and RAID? what about NIC configuration, say for booting, UEFI or BIOS mode? others? \nIf BIOS and RAID are just sample of the configuration profile, please, make it clear.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"e6d53b903f0ace2771d6b7021fc81b6f654322c1","unresolved":false,"context_lines":[{"line_number":181,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":182,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":183,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":184,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":185,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Further improvement could be additional processing on the configuration files"},{"line_number":188,"context_line":"before applying, for example, clean up irrelevant parts, but this is currently"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_62f63592","line":185,"range":{"start_line":184,"start_character":3,"end_line":185,"end_character":62},"in_reply_to":"9f560f44_2048ebca","updated":"2020-07-29 08:22:03.000000000","message":"clarified that this matches already existing behavior after BIOS and RAID clean/deploy steps. There is no similar behavior for NICs and boot mode and others and this spec is not suggesting to introduce it.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"f2b90b3031bf8aa886b7a10b8d638b6eaa7c0948","unresolved":false,"context_lines":[{"line_number":200,"context_line":"  settings that are not included in ``settings`` sections are left unchanged."},{"line_number":201,"context_line":"* raid – as in RAID create configuration step with key-value pair settings and"},{"line_number":202,"context_line":"  ``target_raid_config`` property [1]_"},{"line_number":203,"context_line":"* oem – driver specific section with everything else that does not fit into"},{"line_number":204,"context_line":"  bios and raid sections together with interface name that can handle this"},{"line_number":205,"context_line":"  data. The interface name can be used to distinguish for which hardware type"},{"line_number":206,"context_line":"  this configuration file is meant and used for validation during import before"},{"line_number":207,"context_line":"  trying to parse this section and catch incompatibility early. The data format"},{"line_number":208,"context_line":"  of this section is controlled by implementing interface and only restriction"},{"line_number":209,"context_line":"  is that it needs to fit in JSON property."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_0045e7b3","line":209,"range":{"start_line":203,"start_character":0,"end_line":209,"end_character":42},"updated":"2020-07-25 02:20:45.000000000","message":"Nice.\nBut how can we implement conversion between driver specific format and common format?\nFor import what is the behavior if driver can not handle the OEM data?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"e6d53b903f0ace2771d6b7021fc81b6f654322c1","unresolved":false,"context_lines":[{"line_number":200,"context_line":"  settings that are not included in ``settings`` sections are left unchanged."},{"line_number":201,"context_line":"* raid – as in RAID create configuration step with key-value pair settings and"},{"line_number":202,"context_line":"  ``target_raid_config`` property [1]_"},{"line_number":203,"context_line":"* oem – driver specific section with everything else that does not fit into"},{"line_number":204,"context_line":"  bios and raid sections together with interface name that can handle this"},{"line_number":205,"context_line":"  data. The interface name can be used to distinguish for which hardware type"},{"line_number":206,"context_line":"  this configuration file is meant and used for validation during import before"},{"line_number":207,"context_line":"  trying to parse this section and catch incompatibility early. The data format"},{"line_number":208,"context_line":"  of this section is controlled by implementing interface and only restriction"},{"line_number":209,"context_line":"  is that it needs to fit in JSON property."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_826c2937","line":209,"range":{"start_line":203,"start_character":0,"end_line":209,"end_character":42},"in_reply_to":"9f560f44_0045e7b3","updated":"2020-07-29 08:22:03.000000000","message":"conversion will be implemented for each driver. For example, in case of iDRAC, BIOS attributes are defined like\n\n  {\n    \"Name\": \"WorkloadProfile\", \n    \"Value\": \"NotAvailable\", \n    \"Set On Import\": \"True\", \n    \"Comment\": \"Read and Write\" \n  },\n\nthat needs to be transformed to\n\n  {\n    \"name\": \"WorkloadProfile\", \n    \"value\": \"NotAvailable\" \n  }\n\nFor RAID the transformation is not so straightforward, but it\u0027s possible. \n\nIf driver cannot handle OEM data, the step will fail.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"510a16637ec0817ace6ba94923b4868325496d23","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  is that it needs to fit in JSON property."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":213,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":216,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_16287632","line":213,"range":{"start_line":212,"start_character":49,"end_line":213,"end_character":41},"updated":"2020-07-27 21:50:45.000000000","message":"Does this mean that importing boot mode, boot order, boot devices, etc will not be allowed when configuring BIOS settings?  Will these settings be exported, or skipped?  If so, are there other ironic interfaces that require modifying BIOS settings that will also have to be excluded somewhere?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"f2b90b3031bf8aa886b7a10b8d638b6eaa7c0948","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  is that it needs to fit in JSON property."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":213,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":216,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_601303ba","line":213,"range":{"start_line":212,"start_character":0,"end_line":213,"end_character":42},"updated":"2020-07-25 02:20:45.000000000","message":"good and generic enough for all drivers to comprehand.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee27eb3e21d7f42468d7a9dd0995c5309313ac67","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  is that it needs to fit in JSON property."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":213,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":216,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_5d94b08b","line":213,"range":{"start_line":212,"start_character":49,"end_line":213,"end_character":41},"in_reply_to":"9f560f44_16287632","updated":"2020-07-29 09:27:47.000000000","message":"it means this will be mapped to ``boot`` section. If in the end this belongs to BIOS section in vendor specific format, then it will be mapped back there before importing. ``boot`` section would introduce vendor-independent format how to define these things.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"a6c48a3e9ab2db30663d717b4747c97fe513aea9","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  is that it needs to fit in JSON property."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":213,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":216,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_fa62bc3d","line":213,"range":{"start_line":212,"start_character":49,"end_line":213,"end_character":41},"in_reply_to":"9f560f44_5d94b08b","updated":"2020-07-31 10:22:43.000000000","message":"added more details below, ln 300","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"f2b90b3031bf8aa886b7a10b8d638b6eaa7c0948","unresolved":false,"context_lines":[{"line_number":213,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":216,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"},{"line_number":217,"context_line":"configuration file is considered invalid and cleaning/deployment step fails."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Sample of exported data format:"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_40187fd2","line":217,"range":{"start_line":216,"start_character":23,"end_line":217,"end_character":76},"updated":"2020-07-25 02:20:45.000000000","message":"good","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"510a16637ec0817ace6ba94923b4868325496d23","unresolved":false,"context_lines":[{"line_number":365,"context_line":"   ``[default]configuration_storage_folder`` under web server root at"},{"line_number":366,"context_line":"   ``[deploy]http_root`` and apply file permissions from"},{"line_number":367,"context_line":"   ``[default]file_permission``."},{"line_number":368,"context_line":"   If there is a file with the same name, content is overwritten both in Swift"},{"line_number":369,"context_line":"   and local web server filesystem."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"The workflow for getting stored configuration file:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_d68efe25","line":369,"range":{"start_line":368,"start_character":0,"end_line":369,"end_character":35},"updated":"2020-07-27 21:50:45.000000000","message":"Does this behavior depend on enable_delete_existing?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee27eb3e21d7f42468d7a9dd0995c5309313ac67","unresolved":false,"context_lines":[{"line_number":365,"context_line":"   ``[default]configuration_storage_folder`` under web server root at"},{"line_number":366,"context_line":"   ``[deploy]http_root`` and apply file permissions from"},{"line_number":367,"context_line":"   ``[default]file_permission``."},{"line_number":368,"context_line":"   If there is a file with the same name, content is overwritten both in Swift"},{"line_number":369,"context_line":"   and local web server filesystem."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"The workflow for getting stored configuration file:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_fde82417","line":369,"range":{"start_line":368,"start_character":0,"end_line":369,"end_character":35},"in_reply_to":"9f560f44_d68efe25","updated":"2020-07-29 09:27:47.000000000","message":"no, clarified above that `delete_existing` is for RAID.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"510a16637ec0817ace6ba94923b4868325496d23","unresolved":false,"context_lines":[{"line_number":451,"context_line":"Security impact"},{"line_number":452,"context_line":"---------------"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"JSON will be used as user input. It will be validated, sanitized, and treated"},{"line_number":455,"context_line":"as text."},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_d6dc3e1a","line":454,"range":{"start_line":454,"start_character":55,"end_line":454,"end_character":64},"updated":"2020-07-27 21:50:45.000000000","message":"Can you clarify what sanitizing will do?","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"a6c48a3e9ab2db30663d717b4747c97fe513aea9","unresolved":false,"context_lines":[{"line_number":451,"context_line":"Security impact"},{"line_number":452,"context_line":"---------------"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"JSON will be used as user input. It will be validated, sanitized, and treated"},{"line_number":455,"context_line":"as text."},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_da653847","line":454,"range":{"start_line":454,"start_character":55,"end_line":454,"end_character":64},"in_reply_to":"9f560f44_93a8f91f","updated":"2020-07-31 10:22:43.000000000","message":"added more details to spec","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee27eb3e21d7f42468d7a9dd0995c5309313ac67","unresolved":false,"context_lines":[{"line_number":451,"context_line":"Security impact"},{"line_number":452,"context_line":"---------------"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"JSON will be used as user input. It will be validated, sanitized, and treated"},{"line_number":455,"context_line":"as text."},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f560f44_93a8f91f","line":454,"range":{"start_line":454,"start_character":55,"end_line":454,"end_character":64},"in_reply_to":"9f560f44_d6dc3e1a","updated":"2020-07-29 09:27:47.000000000","message":"In case of JSON nothing much, but this is more a reminder to implementers that need to be aware about user input and think about how that input can be abused, especially for OEM section (depending on vendor this might be different data format serialized to JSON property as string).\n\nFor example, if it was decided that network configuration cannot be imported, then Ironic should ignore/delete that in case somebody edits the config file and adds network section and then vendor system not suspecting anything executes it.","commit_id":"a1b901bf81effc8abeb5e6de9e8c841b49e413e4"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"The following are considered outside the scope of this specification:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Implementation of the approach by all hardware types; it is optional"},{"line_number":76,"context_line":"* Requiring a hardware type’s implementation be complete; it may be partial"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Solution"},{"line_number":79,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_0a3aabca","line":76,"range":{"start_line":76,"start_character":1,"end_line":76,"end_character":57},"updated":"2020-08-01 18:18:41.000000000","message":"Are you going to define what \"complete\" means for a hardware type for this feature so driver compatibility matrix entry can be added?","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"eaa7af1ff61d0b71b8e8a621c466a0c5c348464d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"The following are considered outside the scope of this specification:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Implementation of the approach by all hardware types; it is optional"},{"line_number":76,"context_line":"* Requiring a hardware type’s implementation be complete; it may be partial"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Solution"},{"line_number":79,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_30fb9e79","line":76,"range":{"start_line":76,"start_character":1,"end_line":76,"end_character":57},"in_reply_to":"9f560f44_0a3aabca","updated":"2020-08-02 18:29:05.000000000","message":"Please see the change made to the \"Solution\" subsection below which more fully describes a \"complete\" implementation in the context of this proposal.\n\nLet us not conflate that with the driver compatibility matrix\u0027s definition of \u0027complete\u0027, since the context here is substantially different and the matrix\u0027s definition has not been closed on. [1]\n\n[1] https://review.opendev.org/#/c/733716/","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    \"step\": \"export_configuration\","},{"line_number":126,"context_line":"    \"args\": {"},{"line_number":127,"context_line":"      \"configuration_name\": \"edge_dell_emc-poweredge_r640.json\","},{"line_number":128,"context_line":"      \"raid\": {"},{"line_number":129,"context_line":"        \"enable_create_nonroot_volumes\": true,"},{"line_number":130,"context_line":"        \"enable_create_root_volume\": true,"},{"line_number":131,"context_line":"        \"enable_delete_existing\": true"},{"line_number":132,"context_line":"      }"},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":"  }"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_8a535b17","line":132,"range":{"start_line":128,"start_character":0,"end_line":132,"end_character":7},"updated":"2020-08-01 18:18:41.000000000","message":"does that mean that for each component of a node there is a need for a stanza? \nOr every node component its configuration will be exported?\nAnd only if one need to overwrite some parameter in it a stanza is needed?","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"eaa7af1ff61d0b71b8e8a621c466a0c5c348464d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    \"step\": \"export_configuration\","},{"line_number":126,"context_line":"    \"args\": {"},{"line_number":127,"context_line":"      \"configuration_name\": \"edge_dell_emc-poweredge_r640.json\","},{"line_number":128,"context_line":"      \"raid\": {"},{"line_number":129,"context_line":"        \"enable_create_nonroot_volumes\": true,"},{"line_number":130,"context_line":"        \"enable_create_root_volume\": true,"},{"line_number":131,"context_line":"        \"enable_delete_existing\": true"},{"line_number":132,"context_line":"      }"},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":"  }"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_d002226f","line":132,"range":{"start_line":128,"start_character":0,"end_line":132,"end_character":7},"in_reply_to":"9f560f44_8a535b17","updated":"2020-08-02 18:29:05.000000000","message":"This section describes the details of the export_configuration step. These are input arguments for that step which are related to the export of RAID configuration. They facilitate expressing the system RAID configuration in ironic terms -- target RAID configuration. [1]\n\nWe have not identified a need for input arguments for the other two (2) aspects of hardware provisioning this specification describes, BIOS and OEM. In the future, if other aspects are added, such as boot and network, the arguments for export_configuration could be expanded by adding similar, if needed.\n\n[1] https://docs.openstack.org/ironic/latest/admin/raid.html#raid-configuration-json-format","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":146,"context_line":"upload the configuration directly to the storage without using Ironic - when"},{"line_number":147,"context_line":"having Swift for storage, then using Swift API or CLI, or when"},{"line_number":148,"context_line":"having web server, then writing file to filesystem of web server\u0027s folder."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Import configuration"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_ea549700","line":148,"range":{"start_line":146,"start_character":72,"end_line":148,"end_character":74},"updated":"2020-08-01 18:18:41.000000000","message":"is this really needed?\nassume you can use any object storage, or any other storage Ironic can talk to.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"6343cbfb0a073cb0dff0f65ac093313a73583de8","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":146,"context_line":"upload the configuration directly to the storage without using Ironic - when"},{"line_number":147,"context_line":"having Swift for storage, then using Swift API or CLI, or when"},{"line_number":148,"context_line":"having web server, then writing file to filesystem of web server\u0027s folder."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Import configuration"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_d04dfd9a","line":148,"range":{"start_line":146,"start_character":72,"end_line":148,"end_character":74},"in_reply_to":"9f560f44_ea549700","updated":"2020-08-03 08:56:58.000000000","message":"currently storage is implemented case by case, for now there are no common utils in Ironic that allow to store data in whatever Ironic is configured to. More details and some background in \"Storage of configuration file\", ln 463 in rev 12.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Name"},{"line_number":162,"context_line":"  ``import_configuration``"},{"line_number":163,"context_line":"Details"},{"line_number":164,"context_line":"  Gets pre-created configuration from storage by given filename and imports"},{"line_number":165,"context_line":"  that into given server."},{"line_number":166,"context_line":"Priority"},{"line_number":167,"context_line":"  0"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_2a420f3f","line":164,"range":{"start_line":164,"start_character":55,"end_line":164,"end_character":63},"updated":"2020-08-01 18:18:41.000000000","message":"assume that is for file system and object_ID for object storage.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"6343cbfb0a073cb0dff0f65ac093313a73583de8","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Name"},{"line_number":162,"context_line":"  ``import_configuration``"},{"line_number":163,"context_line":"Details"},{"line_number":164,"context_line":"  Gets pre-created configuration from storage by given filename and imports"},{"line_number":165,"context_line":"  that into given server."},{"line_number":166,"context_line":"Priority"},{"line_number":167,"context_line":"  0"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_305ef943","line":164,"range":{"start_line":164,"start_character":55,"end_line":164,"end_character":63},"in_reply_to":"9f560f44_2a420f3f","updated":"2020-08-03 08:56:58.000000000","message":"correct, filename was used to denote both things. Here and elsewhere changed to more generic \u0027item\u0027 or \u0027data\u0027 to avoid confusion.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Stoppable"},{"line_number":169,"context_line":"  No"},{"line_number":170,"context_line":"Arguments"},{"line_number":171,"context_line":"  * Name of file to use to fetch desired configuration"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Sample:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_0a3f4bb4","line":171,"range":{"start_line":171,"start_character":11,"end_line":171,"end_character":16},"updated":"2020-08-01 18:18:41.000000000","message":"ditto","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"6343cbfb0a073cb0dff0f65ac093313a73583de8","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Stoppable"},{"line_number":169,"context_line":"  No"},{"line_number":170,"context_line":"Arguments"},{"line_number":171,"context_line":"  * Name of file to use to fetch desired configuration"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Sample:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_90570527","line":171,"range":{"start_line":171,"start_character":11,"end_line":171,"end_character":16},"in_reply_to":"9f560f44_0a3f4bb4","updated":"2020-08-03 08:56:58.000000000","message":"ditto","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":188,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":189,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":190,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":191,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":192,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field as it is already"},{"line_number":193,"context_line":"   done in corresponding BIOS and RAID clean and deploy steps."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"If there are errors encountered, then clean/deploy step fails."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_4a45c342","line":193,"range":{"start_line":191,"start_character":0,"end_line":193,"end_character":61},"updated":"2020-08-01 18:18:41.000000000","message":"Is RAID and BIOS the only thing configuration covers?\nor for MVP we only cover these two components and other components will/can be added later?\nNeed cleaner specifics of complete proposal goal vs. what is planned for MVP.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"eaa7af1ff61d0b71b8e8a621c466a0c5c348464d","unresolved":false,"context_lines":[{"line_number":188,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":189,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":190,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":191,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":192,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field as it is already"},{"line_number":193,"context_line":"   done in corresponding BIOS and RAID clean and deploy steps."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"If there are errors encountered, then clean/deploy step fails."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_10cf7a56","line":193,"range":{"start_line":191,"start_character":0,"end_line":193,"end_character":61},"in_reply_to":"9f560f44_4a45c342","updated":"2020-08-02 18:29:05.000000000","message":"This specification covers two (2) aspects of hardware provisioning, BIOS and RAID, which ironic presently supports. It proposes to express the configuration of those in ironic terms and, on provisioning success, have the same side effects on the ironic node. The node\u0027s cached BIOS configuration and \u0027raid_config\u0027 field are the side effects for BIOS and RAID, respectively. Additionally, to support provisioning beyond what is defined by ironic, but which systems and their hardware types could offer in a vendor-specific manner, OEM configuration is also proposed.\n\nPlease see the changes made to the \"Solution\" subsection above which further describe what is being proposed and the idrac hardware type MVP.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":226,"context_line":"Arguments"},{"line_number":227,"context_line":"  * For ``import`` section:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    * Name of file to use to fetch desired configuration for import"},{"line_number":230,"context_line":"  * For ``export`` section:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    * Name of file to save the configuration to"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_aa773fa0","line":229,"range":{"start_line":229,"start_character":14,"end_line":229,"end_character":18},"updated":"2020-08-01 18:18:41.000000000","message":"what about Swift?","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"6343cbfb0a073cb0dff0f65ac093313a73583de8","unresolved":false,"context_lines":[{"line_number":226,"context_line":"Arguments"},{"line_number":227,"context_line":"  * For ``import`` section:"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    * Name of file to use to fetch desired configuration for import"},{"line_number":230,"context_line":"  * For ``export`` section:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    * Name of file to save the configuration to"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_d0321d10","line":229,"range":{"start_line":229,"start_character":14,"end_line":229,"end_character":18},"in_reply_to":"9f560f44_aa773fa0","updated":"2020-08-03 08:56:58.000000000","message":"ditto","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":230,"context_line":"  * For ``export`` section:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    * Name of file to save the configuration to"},{"line_number":233,"context_line":"    * For ``raid`` settings:"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"      * Optional flag ``enable_create_nonroot_volumes`` to set"},{"line_number":236,"context_line":"        ``create_nonroot_volumes`` to ``true`` in exported file, defaults"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_8a7cfb83","line":233,"range":{"start_line":233,"start_character":0,"end_line":233,"end_character":28},"updated":"2020-08-01 18:18:41.000000000","message":"the same question as for export section","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"6343cbfb0a073cb0dff0f65ac093313a73583de8","unresolved":false,"context_lines":[{"line_number":230,"context_line":"  * For ``export`` section:"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    * Name of file to save the configuration to"},{"line_number":233,"context_line":"    * For ``raid`` settings:"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"      * Optional flag ``enable_create_nonroot_volumes`` to set"},{"line_number":236,"context_line":"        ``create_nonroot_volumes`` to ``true`` in exported file, defaults"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_103935f1","line":233,"range":{"start_line":233,"start_character":0,"end_line":233,"end_character":28},"in_reply_to":"9f560f44_8a7cfb83","updated":"2020-08-03 08:56:58.000000000","message":"same answer as for export section","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"c65266326b1cc4686ed4f8816d54a93f921a9a8f","unresolved":false,"context_lines":[{"line_number":282,"context_line":"  settings that are not included in ``settings`` sections are left unchanged."},{"line_number":283,"context_line":"* raid – as in RAID create configuration step with key-value pair settings and"},{"line_number":284,"context_line":"  ``target_raid_config`` property [3]_"},{"line_number":285,"context_line":"* oem – driver specific section with everything else that does not fit into"},{"line_number":286,"context_line":"  bios and raid sections together with interface name that can handle this"},{"line_number":287,"context_line":"  data. The interface name can be used to distinguish for which hardware type"},{"line_number":288,"context_line":"  this configuration file is meant and used for validation during import before"},{"line_number":289,"context_line":"  trying to parse this section and catch incompatibility early. The data format"},{"line_number":290,"context_line":"  of this section is controlled by implementing interface and only restriction"},{"line_number":291,"context_line":"  is that it needs to fit in JSON property."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_2a6b2fb7","line":291,"range":{"start_line":285,"start_character":0,"end_line":291,"end_character":43},"updated":"2020-08-01 18:18:41.000000000","message":"what happens when OEM section errors out? What happens to already configured imported BIOS and RAID sections?","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"eaa7af1ff61d0b71b8e8a621c466a0c5c348464d","unresolved":false,"context_lines":[{"line_number":282,"context_line":"  settings that are not included in ``settings`` sections are left unchanged."},{"line_number":283,"context_line":"* raid – as in RAID create configuration step with key-value pair settings and"},{"line_number":284,"context_line":"  ``target_raid_config`` property [3]_"},{"line_number":285,"context_line":"* oem – driver specific section with everything else that does not fit into"},{"line_number":286,"context_line":"  bios and raid sections together with interface name that can handle this"},{"line_number":287,"context_line":"  data. The interface name can be used to distinguish for which hardware type"},{"line_number":288,"context_line":"  this configuration file is meant and used for validation during import before"},{"line_number":289,"context_line":"  trying to parse this section and catch incompatibility early. The data format"},{"line_number":290,"context_line":"  of this section is controlled by implementing interface and only restriction"},{"line_number":291,"context_line":"  is that it needs to fit in JSON property."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_d0e982b7","line":291,"range":{"start_line":285,"start_character":0,"end_line":291,"end_character":43},"in_reply_to":"9f560f44_2a6b2fb7","updated":"2020-08-02 18:29:05.000000000","message":"This section covers the format of the system configuration template. Please see the section above that discusses the import_configuration step, \"Import configuration\". It starts on line 151.\n\nThat section describes the import configuration workflow on lines 186-195, including what occurs when an error is encountered -- \"clean/deploy step fails\". On failure, no assurances can be made about the state of the system\u0027s configuration nor side effects on the ironic node fields, because the application of the configuration is system and ironic hardware type dependent and there are many possible failure modes. TL;DR, a defined configuration sequence and transactional rollback semantics do not seem to apply.\n\nWhen a step fails, the ironic node is placed in the \"clean failed\" or \"deploy failed\" state and the node\u0027s \u0027last_error\u0027 field may contain further information about the cause of the failure.\n\nPlease see the change made to the \"Import configuration\" section.","commit_id":"defbf9e5abb877bcb476d46117ee974892192a70"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Operationally efficient and fast-track bare metal hardware provisioning"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2003594"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6b514d36","line":8,"range":{"start_line":8,"start_character":27,"end_line":8,"end_character":39},"updated":"2020-08-07 21:59:49.000000000","message":"I _still_ object to the use of \"fast-track\" in this title. Accelerate would be more appropriate in the case of this title as fast-track is the name of an actual behavioral feature of ironic. While related, this spec does not define that feature, this feature only leverages, at leas as far as I can tell, the concept of it as I\u0027m reviewing, the concept of accelerating the hardware reconfiguration tasks on dell hardware.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"77eccf94b4db5b92dc01acb84483f359d0d1e1ab","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Operationally efficient and fast-track bare metal hardware provisioning"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2003594"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6d64b84a","line":8,"updated":"2020-08-09 10:40:10.000000000","message":"To add to what Julia says, could you update both the title and the commit message to use technical, not marketing terms? \"Operationally efficient\" is clearly something you would put on a prospect for customers.. \"Support for pre-defined configurations\" or whatever.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Operationally efficient and fast-track bare metal hardware provisioning"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://storyboard.openstack.org/#!/story/2003594"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f6a11ef9","line":8,"in_reply_to":"9f560f44_6d64b84a","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":17,"context_line":"hardware provisioning -- configuration of a bare metal system\u0027s BIOS settings,"},{"line_number":18,"context_line":"RAID, boot mode, network ports, and more. Solutions must reduce operational"},{"line_number":19,"context_line":"costs and the time required to fulfill a tenant\u0027s request for a newly deployed"},{"line_number":20,"context_line":"and activated bare metal system. Additionally, they must scale up and out."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"To achieve that, prospective solutions should offer:"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_8b330114","line":20,"range":{"start_line":20,"start_character":33,"end_line":20,"end_character":74},"updated":"2020-08-07 21:59:49.000000000","message":"I\u0027d remove this sentence fragment. Mainly I\u0027m thinking it is a fragment because while they is implied, but what exactly is they, and what is up and out in this context.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"hardware provisioning -- configuration of a bare metal system\u0027s BIOS settings,"},{"line_number":18,"context_line":"RAID, boot mode, network ports, and more. Solutions must reduce operational"},{"line_number":19,"context_line":"costs and the time required to fulfill a tenant\u0027s request for a newly deployed"},{"line_number":20,"context_line":"and activated bare metal system. Additionally, they must scale up and out."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"To achieve that, prospective solutions should offer:"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_16ac92eb","line":20,"range":{"start_line":20,"start_character":33,"end_line":20,"end_character":74},"in_reply_to":"9f560f44_8b330114","updated":"2020-08-20 14:22:59.000000000","message":"removed","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_eb0a7d23","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":78},"updated":"2020-08-07 21:59:49.000000000","message":"Could you clarify what introduction means in this sentence?\n\nOr perhaps, it is \"Ability to leverage an externally...\"\n\nThe main reason \"Introduction\" is awkward is in essence, everything is external to ironic where we offer the ability for files, urls, and glance object IDs to be pointers to files or data to be leveraged by a driver.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d74c6643","line":26,"range":{"start_line":26,"start_character":21,"end_line":26,"end_character":50},"updated":"2020-08-11 07:34:11.000000000","message":"Need elaboration of templates. We do have \u0027deploy templates\u0027 [1]. Is there any similarity between the two?\n\n[1] https://docs.openstack.org/ironic/latest/admin/node-deployment.html#deploy-templates","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d67fba63","line":26,"range":{"start_line":26,"start_character":21,"end_line":26,"end_character":50},"in_reply_to":"9f560f44_d74c6643","updated":"2020-08-20 14:22:59.000000000","message":"This is different. See addition to \u0027Alternatives\u0027 section","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_56b28a4a","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":78},"in_reply_to":"9f560f44_eb0a7d23","updated":"2020-08-20 14:22:59.000000000","message":"rephrased","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning by reducing the amount of time, often"},{"line_number":31,"context_line":"  requiring fewer reboots, which is dependent on system and ironic hardware"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6e7b1b8b","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":12},"updated":"2020-08-07 21:59:49.000000000","message":"I\u0027m kind of -1 of the concept of \"storing\" templates. Beyond creating additional complexity for data storage in the form of blobs in a database (because being able to recover from a conductor failure is a thing). I\u0027d highly prefer any concept of storage is limited to pointers to something stored somewhere if it is glance/swift/remote webserver via a URL/etc. This preference is also due to storage of data is possibly the most contentious issue in this community. How/what/why data is going to be stored. A pointer, externally provided file to the conductor, or URL all make sense in terms of we\u0027re only storing a pointer, not actual template.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning by reducing the amount of time, often"},{"line_number":31,"context_line":"  requiring fewer reboots, which is dependent on system and ironic hardware"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_36dd5670","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":12},"in_reply_to":"9f560f44_14bf09aa","updated":"2020-08-20 14:22:59.000000000","message":"Here and elsewhere changed to \"configuration mold\" to avoid mistaking this with deploy templates. But other than that it\u0027s input/output of suggested steps that are stored in persistent storage.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning by reducing the amount of time, often"},{"line_number":31,"context_line":"  requiring fewer reboots, which is dependent on system and ironic hardware"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f6ef5e1a","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":12},"in_reply_to":"9f560f44_6e7b1b8b","updated":"2020-08-20 14:22:59.000000000","message":"In initial proposal it was not meant to store template files in Ironic. They were going to Swift or web server. But as this simple as possible approach didn\u0027t meet security requirements, new approach suggested that waits for approving before going into more details (see comment in the main thread).","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"* Creation of bare metal system configuration templates from common or \"golden\""},{"line_number":25,"context_line":"  systems"},{"line_number":26,"context_line":"* Introduction of an externally generated template into the ironic environment"},{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning by reducing the amount of time, often"},{"line_number":31,"context_line":"  requiring fewer reboots, which is dependent on system and ironic hardware"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_14bf09aa","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":12},"in_reply_to":"9f560f44_6e7b1b8b","updated":"2020-08-08 07:35:44.000000000","message":"Not sure what the \"template\" refers to, I tend to assume it\u0027s a deployment parameter that seems suitable to be provided during deployment at this moment.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning by reducing the amount of time, often"},{"line_number":31,"context_line":"  requiring fewer reboots, which is dependent on system and ironic hardware"},{"line_number":32,"context_line":"  type support"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_ee660bed","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":12},"updated":"2020-08-07 21:59:49.000000000","message":"s/Fast-track/accelerate/","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Storage of templates considered prospectively applicable to the ironic"},{"line_number":28,"context_line":"  deployment"},{"line_number":29,"context_line":"* Application of a stored template to a bare metal system"},{"line_number":30,"context_line":"* Fast-track hardware provisioning by reducing the amount of time, often"},{"line_number":31,"context_line":"  requiring fewer reboots, which is dependent on system and ironic hardware"},{"line_number":32,"context_line":"  type support"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_56e0ca26","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":12},"in_reply_to":"9f560f44_ee660bed","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  type support"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"This specification proposes a generally applicable solution which offers that,"},{"line_number":36,"context_line":"along with what could be the first implementation, a minimum viable product"},{"line_number":37,"context_line":"(MVP) offered by the ``idrac`` hardware type."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_2e8be367","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":45},"updated":"2020-08-07 21:59:49.000000000","message":"This could likely be completely removed, or remove the part about an MVP being offered by the idrac hardware type... Or potentially revise the text to stress that this is anticipated as a feature which can only be supported through vendor hardware types, first being proposed in the idrac hardware type.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  type support"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"This specification proposes a generally applicable solution which offers that,"},{"line_number":36,"context_line":"along with what could be the first implementation, a minimum viable product"},{"line_number":37,"context_line":"(MVP) offered by the ``idrac`` hardware type."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d4cd915d","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":45},"in_reply_to":"9f560f44_2e8be367","updated":"2020-08-08 07:35:44.000000000","message":"++ needs rewording if this feature can\u0027t be achieved via standard oob technologies like ipmi/redfish.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  type support"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"This specification proposes a generally applicable solution which offers that,"},{"line_number":36,"context_line":"along with what could be the first implementation, a minimum viable product"},{"line_number":37,"context_line":"(MVP) offered by the ``idrac`` hardware type."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d6105a03","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":45},"in_reply_to":"9f560f44_2e8be367","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  type support"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"This specification proposes a generally applicable solution which offers that,"},{"line_number":36,"context_line":"along with what could be the first implementation, a minimum viable product"},{"line_number":37,"context_line":"(MVP) offered by the ``idrac`` hardware type."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_970dcee9","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":45},"in_reply_to":"9f560f44_d4cd915d","updated":"2020-08-11 07:34:11.000000000","message":"++ No such feature is available in HPE ProLiant servers either.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Problem description"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"When there are dozens of servers having the same configuration, it is still"},{"line_number":44,"context_line":"a repetitive task to configure them all. Use cases to benefit from this"},{"line_number":45,"context_line":"include:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_eed9eb82","line":43,"range":{"start_line":43,"start_character":33,"end_line":43,"end_character":39},"updated":"2020-08-07 21:59:49.000000000","message":"having seems like the wrong word. The servers \"need\" to be configured the same way. The servers that need configuration are not actively wanting their future state. It is the operator that needs the servers to have the fixed state. \nI guess where I\u0027m going with this is an active state seems wrong for a desired end state. Hopefully that makes sense.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Problem description"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"When there are dozens of servers having the same configuration, it is still"},{"line_number":44,"context_line":"a repetitive task to configure them all. Use cases to benefit from this"},{"line_number":45,"context_line":"include:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_16f652d8","line":43,"range":{"start_line":43,"start_character":33,"end_line":43,"end_character":39},"in_reply_to":"9f560f44_eed9eb82","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"a repetitive task to configure them all. Use cases to benefit from this"},{"line_number":45,"context_line":"include:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* Consistent, rapid, and correct configuration of fleets of bare metal systems"},{"line_number":48,"context_line":"  with similar hardware capabilities during deployment"},{"line_number":49,"context_line":"* Production environments in which physical servers are repurposed for"},{"line_number":50,"context_line":"  workloads that require different configurations and fast turnaround is at"},{"line_number":51,"context_line":"  a premium"},{"line_number":52,"context_line":"* Getting inventory of system after changes are applied"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f7140aeb","line":51,"range":{"start_line":47,"start_character":2,"end_line":51,"end_character":11},"updated":"2020-08-11 07:34:11.000000000","message":"This is similar to deploy templates. One can have multiple deploy templates associated with a node that could be used for provisioning bare metal for different workloads. I think it would be useful to elaborate how this concept is different from Ironic deploy templates.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"a repetitive task to configure them all. Use cases to benefit from this"},{"line_number":45,"context_line":"include:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* Consistent, rapid, and correct configuration of fleets of bare metal systems"},{"line_number":48,"context_line":"  with similar hardware capabilities during deployment"},{"line_number":49,"context_line":"* Production environments in which physical servers are repurposed for"},{"line_number":50,"context_line":"  workloads that require different configurations and fast turnaround is at"},{"line_number":51,"context_line":"  a premium"},{"line_number":52,"context_line":"* Getting inventory of system after changes are applied"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f6247e62","line":51,"range":{"start_line":47,"start_character":2,"end_line":51,"end_character":11},"in_reply_to":"9f560f44_f7140aeb","updated":"2020-08-20 14:22:59.000000000","message":"See addition to \u0027Alternatives\u0027 section","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* Production environments in which physical servers are repurposed for"},{"line_number":50,"context_line":"  workloads that require different configurations and fast turnaround is at"},{"line_number":51,"context_line":"  a premium"},{"line_number":52,"context_line":"* Getting inventory of system after changes are applied"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_8ea30fb2","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":55},"updated":"2020-08-07 21:59:49.000000000","message":"N.B. This seems completely out of scope and based on all of the words above.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* Production environments in which physical servers are repurposed for"},{"line_number":50,"context_line":"  workloads that require different configurations and fast turnaround is at"},{"line_number":51,"context_line":"  a premium"},{"line_number":52,"context_line":"* Getting inventory of system after changes are applied"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_36227653","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":55},"in_reply_to":"9f560f44_8ea30fb2","updated":"2020-08-20 14:22:59.000000000","message":"It can seem so, added this also to mention at the first section what solution should offer.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Goals"},{"line_number":59,"context_line":"-----"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_747e4ae4","line":57,"updated":"2020-08-07 21:59:49.000000000","message":"Please paint the broader picture of the overall areas before the goals.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Goals"},{"line_number":59,"context_line":"-----"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_56156ae4","line":57,"in_reply_to":"9f560f44_6b0daee6","updated":"2020-08-20 14:22:59.000000000","message":"Renamed this to \u0027configuration molds\u0027 to not get mistaken for deploy templates. See \u0027Alternatives\u0027 section.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Goals"},{"line_number":59,"context_line":"-----"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6b0daee6","line":57,"in_reply_to":"9f560f44_747e4ae4","updated":"2020-08-11 07:34:11.000000000","message":"++ Need to elaborate on all the concepts mentioned above especially \u0027templates\u0027 and how they would overcome the current limitations envisioned.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Goals"},{"line_number":59,"context_line":"-----"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_161f7208","line":57,"in_reply_to":"9f560f44_747e4ae4","updated":"2020-08-20 14:22:59.000000000","message":"added","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Defining an ironic hardware type framework which offers more operationally"},{"line_number":64,"context_line":"  efficient bare metal hardware provisioning"},{"line_number":65,"context_line":"* Facilitating a consistent method to fast-track hardware provision bare metal,"},{"line_number":66,"context_line":"  necessitating fewer reboots, when supported by a hardware system and its"},{"line_number":67,"context_line":"  ironic hardware type"},{"line_number":68,"context_line":"* Describing a first, MVP implementation by the ``idrac`` hardware type"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_ce822700","line":65,"range":{"start_line":65,"start_character":38,"end_line":65,"end_character":48},"updated":"2020-08-07 21:59:49.000000000","message":"s/fast-track/accelerate/","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Defining an ironic hardware type framework which offers more operationally"},{"line_number":64,"context_line":"  efficient bare metal hardware provisioning"},{"line_number":65,"context_line":"* Facilitating a consistent method to fast-track hardware provision bare metal,"},{"line_number":66,"context_line":"  necessitating fewer reboots, when supported by a hardware system and its"},{"line_number":67,"context_line":"  ironic hardware type"},{"line_number":68,"context_line":"* Describing a first, MVP implementation by the ``idrac`` hardware type"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b6d32638","line":65,"range":{"start_line":65,"start_character":38,"end_line":65,"end_character":48},"in_reply_to":"9f560f44_ce822700","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Defining an ironic hardware type framework which offers more operationally"},{"line_number":64,"context_line":"  efficient bare metal hardware provisioning"},{"line_number":65,"context_line":"* Facilitating a consistent method to fast-track hardware provision bare metal,"},{"line_number":66,"context_line":"  necessitating fewer reboots, when supported by a hardware system and its"},{"line_number":67,"context_line":"  ironic hardware type"},{"line_number":68,"context_line":"* Describing a first, MVP implementation by the ``idrac`` hardware type"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_eb009ead","line":66,"range":{"start_line":65,"start_character":79,"end_line":66,"end_character":30},"updated":"2020-08-11 07:34:11.000000000","message":"It is possible to turn off reboot for any of the clean/deploy steps if it is not required. Reboot property for the deploy step is an optional and per step basis. This is just a suggestion for optimizing on unnecessary reboots.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Defining an ironic hardware type framework which offers more operationally"},{"line_number":64,"context_line":"  efficient bare metal hardware provisioning"},{"line_number":65,"context_line":"* Facilitating a consistent method to fast-track hardware provision bare metal,"},{"line_number":66,"context_line":"  necessitating fewer reboots, when supported by a hardware system and its"},{"line_number":67,"context_line":"  ironic hardware type"},{"line_number":68,"context_line":"* Describing a first, MVP implementation by the ``idrac`` hardware type"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d6de9a3c","line":66,"range":{"start_line":65,"start_character":79,"end_line":66,"end_character":30},"in_reply_to":"9f560f44_eb009ead","updated":"2020-08-20 14:22:59.000000000","message":"See \u0027Alternatives\u0027 section to why this wouldn\u0027t work for at least idrac.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"* Defining an ironic hardware type framework which offers more operationally"},{"line_number":64,"context_line":"  efficient bare metal hardware provisioning"},{"line_number":65,"context_line":"* Facilitating a consistent method to fast-track hardware provision bare metal,"},{"line_number":66,"context_line":"  necessitating fewer reboots, when supported by a hardware system and its"},{"line_number":67,"context_line":"  ironic hardware type"},{"line_number":68,"context_line":"* Describing a first, MVP implementation by the ``idrac`` hardware type"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Non-goals"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_54306156","line":67,"range":{"start_line":66,"start_character":49,"end_line":67,"end_character":22},"updated":"2020-08-08 07:35:44.000000000","message":"currently we relate one type of baremetal with a hardware type, how a hardware type can identify hardware systems and treat it differently, I guess it\u0027s the templates come in to play?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":63,"context_line":"* Defining an ironic hardware type framework which offers more operationally"},{"line_number":64,"context_line":"  efficient bare metal hardware provisioning"},{"line_number":65,"context_line":"* Facilitating a consistent method to fast-track hardware provision bare metal,"},{"line_number":66,"context_line":"  necessitating fewer reboots, when supported by a hardware system and its"},{"line_number":67,"context_line":"  ironic hardware type"},{"line_number":68,"context_line":"* Describing a first, MVP implementation by the ``idrac`` hardware type"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Non-goals"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_56ea8ad7","line":67,"range":{"start_line":66,"start_character":49,"end_line":67,"end_character":22},"in_reply_to":"9f560f44_54306156","updated":"2020-08-20 14:22:59.000000000","message":"It does not suggest that. It says that this can reduce reboots if hardware itself supports it together with implementation in Ironic. Should this be clarified?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Implementation of the approach by all hardware types; it is optional"},{"line_number":76,"context_line":"* Requiring a hardware type’s implementation be complete; it may be partial"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Solution"},{"line_number":79,"context_line":"--------"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_71ee5c22","line":77,"updated":"2020-08-07 21:59:49.000000000","message":"Thank you for noting this. It may be easier to just state both of the bullet points are optional because the functionality is optional for a hardware type.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Implementation of the approach by all hardware types; it is optional"},{"line_number":76,"context_line":"* Requiring a hardware type’s implementation be complete; it may be partial"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Solution"},{"line_number":79,"context_line":"--------"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_db6a2c7f","line":77,"in_reply_to":"9f560f44_71ee5c22","updated":"2020-08-21 14:31:22.000000000","message":"This is saying that implementation for hardware type is optional and if it is implemented it may be partial implementation initially. Keeping as it is.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Solution"},{"line_number":79,"context_line":"--------"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The solution adds three pairs of new, optional clean [0]_ and deploy [1]_"},{"line_number":82,"context_line":"steps. They are defined by the management hardware interface,"},{"line_number":83,"context_line":"``class ManagementInterface``."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_94915e4a","line":80,"updated":"2020-08-07 21:59:49.000000000","message":"Given all of the various parts, the solution likely ought to paint the larger picture of mechanics and dive into individual areas. Starting with the [BMC/Hardware]ManagementInterface changes below entirely seem at first reading, at least to me as a long time contributor/maintainer, that the author is speaking of the methods in which steps will be defined/wrapped for directly applying some meta data via a clean/deploy step. Granted, I\u0027m typing this comment after reading around line 119, so I may be wrong, but for also something generally applicable there should be generic wrappers or interfaces to the steps that are not vendor specific on the vendor\u0027s ManagementInteface. Generally applicable steps would allow, what I think is being proposed, to be generally usable for just software raid, or software raid and bios settings on redfish hardware.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Solution"},{"line_number":79,"context_line":"--------"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The solution adds three pairs of new, optional clean [0]_ and deploy [1]_"},{"line_number":82,"context_line":"steps. They are defined by the management hardware interface,"},{"line_number":83,"context_line":"``class ManagementInterface``."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_3b11a805","line":80,"in_reply_to":"9f560f44_94915e4a","updated":"2020-08-21 14:31:22.000000000","message":"Idea being that ManagementInterface will contain \u0027default\u0027 methods with signatures given that derived (vendor-specific) classes can override. As steps are optional these can\u0027t be marked as abstract method. deploy/clean_step decorators added at implementation (vendor specific) level. Maybe this should be done in other way? I couldn\u0027t find an example for optional vendor independent steps. Are there any?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":94,"context_line":"          import and then export a system\u0027s configuration as a single atomic"},{"line_number":95,"context_line":"          step from the perspective of ironic\u0027s clean and deploy mechanisms."},{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_314ea437","line":97,"updated":"2020-08-07 21:59:49.000000000","message":"If I\u0027m interpreting this as intended, this is to apply and then collect the post-application configuration state. Is that correct?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"          import and then export a system\u0027s configuration as a single atomic"},{"line_number":95,"context_line":"          step from the perspective of ironic\u0027s clean and deploy mechanisms."},{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7674ee36","line":97,"in_reply_to":"9f560f44_314ea437","updated":"2020-08-20 14:22:59.000000000","message":"@Julia, yes","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"          import and then export a system\u0027s configuration as a single atomic"},{"line_number":95,"context_line":"          step from the perspective of ironic\u0027s clean and deploy mechanisms."},{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_3447adbe","line":97,"in_reply_to":"9f560f44_314ea437","updated":"2020-08-08 07:35:44.000000000","message":"Not sure I get this import_export_configuration is doing, it seems implying a configuration can change when applied, that sounds like an inconsistent thing to me.\n\nAfter reading below, it seems new interfaces are just used for providing clean steps, do we have a more generic way to do it?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"          import and then export a system\u0027s configuration as a single atomic"},{"line_number":95,"context_line":"          step from the perspective of ironic\u0027s clean and deploy mechanisms."},{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_96bd42b9","line":97,"in_reply_to":"9f560f44_3447adbe","updated":"2020-08-20 14:22:59.000000000","message":"@Kaifeng, It is possible to only configure subset of settings, but in the end be interested in getting overall system configuration. Added this in details of Import_configuration section.\nCan you elaborate on the second part? This is composite step that combines 2 previous interfaces in one atomic operation (so it\u0027s atomic and shortcut for user to avoid passing 2 steps all the time)","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"          import and then export a system\u0027s configuration as a single atomic"},{"line_number":95,"context_line":"          step from the perspective of ironic\u0027s clean and deploy mechanisms."},{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6bdbee4d","line":97,"in_reply_to":"9f560f44_3447adbe","updated":"2020-08-11 07:34:11.000000000","message":"Currenty Ironic performs any operation on a single node. This seems like to import some configuration from one node and then apply on another ironic node within same call?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"          import and then export a system\u0027s configuration as a single atomic"},{"line_number":95,"context_line":"          step from the perspective of ironic\u0027s clean and deploy mechanisms."},{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_16c93258","line":97,"in_reply_to":"9f560f44_6bdbee4d","updated":"2020-08-20 14:22:59.000000000","message":"@Shivanand, not suggesting to spawn operation across several nodes. It\u0027s on the same node. Added more details to import and export configuration section to clarify the use case.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"},{"line_number":101,"context_line":"which ironic has been offering configuration support is expressed as much as"},{"line_number":102,"context_line":"possible in ironic terms. For such subsystems, successful application of a"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_11760071","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":44},"updated":"2020-08-07 21:59:49.000000000","message":"Defined by what? Is it vendor specific? I\u0027m guessing they are all vendor specific, so some clarity is likely required.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"},{"line_number":101,"context_line":"which ironic has been offering configuration support is expressed as much as"},{"line_number":102,"context_line":"possible in ironic terms. For such subsystems, successful application of a"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_741645aa","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":44},"in_reply_to":"9f560f44_11760071","updated":"2020-08-08 07:35:44.000000000","message":"I believe an example of this template would help a lot.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"fd5cf98ad3043fda828a580f83303b4734ae7ccb","unresolved":false,"context_lines":[{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"},{"line_number":101,"context_line":"which ironic has been offering configuration support is expressed as much as"},{"line_number":102,"context_line":"possible in ironic terms. For such subsystems, successful application of a"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_ebeedeea","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":44},"in_reply_to":"9f560f44_741645aa","updated":"2020-08-11 07:34:11.000000000","message":"++","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":96,"context_line":"          This can further reduce the time required to provision a system than"},{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"},{"line_number":101,"context_line":"which ironic has been offering configuration support is expressed as much as"},{"line_number":102,"context_line":"possible in ironic terms. For such subsystems, successful application of a"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d6e85ab4","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":44},"in_reply_to":"9f560f44_ebeedeea","updated":"2020-08-20 14:22:59.000000000","message":"@All, added reference for details.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"4060d99b7611efc026a16277d145de958221481f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"},{"line_number":101,"context_line":"which ironic has been offering configuration support is expressed as much as"},{"line_number":102,"context_line":"possible in ironic terms. For such subsystems, successful application of a"},{"line_number":103,"context_line":"configuration template to an ironic node has the same side effects on the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_18175ca6","line":100,"range":{"start_line":100,"start_character":62,"end_line":100,"end_character":72},"updated":"2020-08-06 15:10:11.000000000","message":"nit: subsystem","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":97,"context_line":"          a sequence of separate import and export steps."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The configuration template format is defined. It contains a section for each"},{"line_number":100,"context_line":"hardware subsytem it supports. The desired configuration of a susbsystem for"},{"line_number":101,"context_line":"which ironic has been offering configuration support is expressed as much as"},{"line_number":102,"context_line":"possible in ironic terms. For such subsystems, successful application of a"},{"line_number":103,"context_line":"configuration template to an ironic node has the same side effects on the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_16ce5259","line":100,"range":{"start_line":100,"start_character":62,"end_line":100,"end_character":72},"in_reply_to":"9f560f44_18175ca6","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":103,"context_line":"configuration template to an ironic node has the same side effects on the"},{"line_number":104,"context_line":"node\u0027s fields."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"This presently defines support for the BIOS and RAID subsystems ironic"},{"line_number":107,"context_line":"currently supports. The configuration of those is expressed in ironic terms."},{"line_number":108,"context_line":"The node\u0027s cached BIOS configuration and ``raid_config`` field are the side"},{"line_number":109,"context_line":"effects of BIOS and RAID configuration, respectively. In the future, we"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b4cd82b8","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":4},"updated":"2020-08-07 21:59:49.000000000","message":"This as in ironic, or this as in the proposed change?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":103,"context_line":"configuration template to an ironic node has the same side effects on the"},{"line_number":104,"context_line":"node\u0027s fields."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"This presently defines support for the BIOS and RAID subsystems ironic"},{"line_number":107,"context_line":"currently supports. The configuration of those is expressed in ironic terms."},{"line_number":108,"context_line":"The node\u0027s cached BIOS configuration and ``raid_config`` field are the side"},{"line_number":109,"context_line":"effects of BIOS and RAID configuration, respectively. In the future, we"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_56d44ae9","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":4},"in_reply_to":"9f560f44_b4cd82b8","updated":"2020-08-20 14:22:59.000000000","message":"Updated, this proposed change","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"This presently defines support for the BIOS and RAID subsystems ironic"},{"line_number":107,"context_line":"currently supports. The configuration of those is expressed in ironic terms."},{"line_number":108,"context_line":"The node\u0027s cached BIOS configuration and ``raid_config`` field are the side"},{"line_number":109,"context_line":"effects of BIOS and RAID configuration, respectively. In the future, we"},{"line_number":110,"context_line":"envision adding support for more subsystems whose configurations can be"},{"line_number":111,"context_line":"expressed in a system-independent manner. Those could include boot, network,"},{"line_number":112,"context_line":"and firmware configuration, among others."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7465aab4","line":109,"range":{"start_line":108,"start_character":64,"end_line":109,"end_character":15},"updated":"2020-08-07 21:59:49.000000000","message":"BIOS wise, this is a misleading statement. The bios settings are supposed to be cached whenever the machine is moved through cleaning.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"This presently defines support for the BIOS and RAID subsystems ironic"},{"line_number":107,"context_line":"currently supports. The configuration of those is expressed in ironic terms."},{"line_number":108,"context_line":"The node\u0027s cached BIOS configuration and ``raid_config`` field are the side"},{"line_number":109,"context_line":"effects of BIOS and RAID configuration, respectively. In the future, we"},{"line_number":110,"context_line":"envision adding support for more subsystems whose configurations can be"},{"line_number":111,"context_line":"expressed in a system-independent manner. Those could include boot, network,"},{"line_number":112,"context_line":"and firmware configuration, among others."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b6068685","line":109,"range":{"start_line":108,"start_character":64,"end_line":109,"end_character":15},"in_reply_to":"9f560f44_7465aab4","updated":"2020-08-20 14:22:59.000000000","message":"Rephrased","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":106,"context_line":"This presently defines support for the BIOS and RAID subsystems ironic"},{"line_number":107,"context_line":"currently supports. The configuration of those is expressed in ironic terms."},{"line_number":108,"context_line":"The node\u0027s cached BIOS configuration and ``raid_config`` field are the side"},{"line_number":109,"context_line":"effects of BIOS and RAID configuration, respectively. In the future, we"},{"line_number":110,"context_line":"envision adding support for more subsystems whose configurations can be"},{"line_number":111,"context_line":"expressed in a system-independent manner. Those could include boot, network,"},{"line_number":112,"context_line":"and firmware configuration, among others."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"To support provisioning beyond what ironic defines, but which systems and their"},{"line_number":115,"context_line":"hardware types could offer in a system-specific manner, a third section, OEM,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_1476ee70","line":112,"range":{"start_line":109,"start_character":54,"end_line":112,"end_character":41},"updated":"2020-08-07 21:59:49.000000000","message":"I\u0027m a little confused in part due to the way this is all worded. Are you implying ironic envisions adding more support for individual subsystem configuration, or are you referring to the feature being proposed? If your talking about ironic, it would likely be good to drop the rest of the paragraph starting at \"In the future\". If the intent is otherwise, then this should explicitly state the present intent and future desire.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":106,"context_line":"This presently defines support for the BIOS and RAID subsystems ironic"},{"line_number":107,"context_line":"currently supports. The configuration of those is expressed in ironic terms."},{"line_number":108,"context_line":"The node\u0027s cached BIOS configuration and ``raid_config`` field are the side"},{"line_number":109,"context_line":"effects of BIOS and RAID configuration, respectively. In the future, we"},{"line_number":110,"context_line":"envision adding support for more subsystems whose configurations can be"},{"line_number":111,"context_line":"expressed in a system-independent manner. Those could include boot, network,"},{"line_number":112,"context_line":"and firmware configuration, among others."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"To support provisioning beyond what ironic defines, but which systems and their"},{"line_number":115,"context_line":"hardware types could offer in a system-specific manner, a third section, OEM,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f6fc7e73","line":112,"range":{"start_line":109,"start_character":54,"end_line":112,"end_character":41},"in_reply_to":"9f560f44_1476ee70","updated":"2020-08-20 14:22:59.000000000","message":"Rephrased, feature proposed.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":111,"context_line":"expressed in a system-independent manner. Those could include boot, network,"},{"line_number":112,"context_line":"and firmware configuration, among others."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"To support provisioning beyond what ironic defines, but which systems and their"},{"line_number":115,"context_line":"hardware types could offer in a system-specific manner, a third section, OEM,"},{"line_number":116,"context_line":"is proposed. The OEM section can also be used to specify configuration ironic"},{"line_number":117,"context_line":"already supports. The content of the OEM section is specific to the system and"},{"line_number":118,"context_line":"its hardware type. Successful application of configuration specified in an OEM"},{"line_number":119,"context_line":"section has no side effects on the node\u0027s fields."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d4dbd64b","line":119,"range":{"start_line":114,"start_character":0,"end_line":119,"end_character":49},"updated":"2020-08-07 21:59:49.000000000","message":"So is the intent to propose a meta clean step which has fields mapping and that wires into individual areas?  If that is so, I think this spec likely needs to be cut into smaller pieces. Otherwise, you likely want to go ahead and kind of portray the data model and use pattern upfront instead of in prose deeper into the mechanics. That or upfront state \"we anticipate changes in xyz areas, and individually draw the links and then dive into the specific implementation details.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":111,"context_line":"expressed in a system-independent manner. Those could include boot, network,"},{"line_number":112,"context_line":"and firmware configuration, among others."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"To support provisioning beyond what ironic defines, but which systems and their"},{"line_number":115,"context_line":"hardware types could offer in a system-specific manner, a third section, OEM,"},{"line_number":116,"context_line":"is proposed. The OEM section can also be used to specify configuration ironic"},{"line_number":117,"context_line":"already supports. The content of the OEM section is specific to the system and"},{"line_number":118,"context_line":"its hardware type. Successful application of configuration specified in an OEM"},{"line_number":119,"context_line":"section has no side effects on the node\u0027s fields."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7bf680d9","line":119,"range":{"start_line":114,"start_character":0,"end_line":119,"end_character":49},"in_reply_to":"9f560f44_d4dbd64b","updated":"2020-08-21 14:31:22.000000000","message":"Spec does not require to implement this as metastep, implementation is up to each vendor.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":118,"context_line":"its hardware type. Successful application of configuration specified in an OEM"},{"line_number":119,"context_line":"section has no side effects on the node\u0027s fields."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f4c89a55","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":57},"updated":"2020-08-07 21:59:49.000000000","message":"What is meant by this? Could we get some elaboration? It seems like it could also be redundant, but I\u0027m not really sure what is being meant by the statement.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":118,"context_line":"its hardware type. Successful application of configuration specified in an OEM"},{"line_number":119,"context_line":"section has no side effects on the node\u0027s fields."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b62b26e9","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":57},"in_reply_to":"9f560f44_3475edfa","updated":"2020-08-20 14:22:59.000000000","message":"Replaced with \"persistent\" if that makes it clearer. Meaning is that it is not in memory (RAM)/short-lived.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":118,"context_line":"its hardware type. Successful application of configuration specified in an OEM"},{"line_number":119,"context_line":"section has no side effects on the node\u0027s fields."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_76f06e92","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":57},"in_reply_to":"9f560f44_f4c89a55","updated":"2020-08-20 14:22:59.000000000","message":"@Julia, that storage for data will be supported for Ironic running as part of OpenStack (using Swift) and standalone (using webserver)","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"its hardware type. Successful application of configuration specified in an OEM"},{"line_number":119,"context_line":"section has no side effects on the node\u0027s fields."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_3475edfa","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":57},"in_reply_to":"9f560f44_f4c89a55","updated":"2020-08-08 07:35:44.000000000","message":"Could you explain what the non-volatile storage is? By using this word it seems like a place in the machine.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"},{"line_number":126,"context_line":"all of the defined template sections, presently BIOS, RAID, and OEM."},{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_54f2269b","line":126,"range":{"start_line":124,"start_character":0,"end_line":126,"end_character":68},"updated":"2020-08-07 21:59:49.000000000","message":"This is not needed and partial configurations seem likely as under the original idea which spawned this specification, only Dell would really make use of the OEM section, which effectively would mean only dell could make use or claim completeness which is not really fair to the community.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":121,"context_line":"The non-volatile storage of configuration templates is defined for both"},{"line_number":122,"context_line":"integrated OpenStack and stand-alone ironic environments."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"},{"line_number":126,"context_line":"all of the defined template sections, presently BIOS, RAID, and OEM."},{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f60abe76","line":126,"range":{"start_line":124,"start_character":0,"end_line":126,"end_character":68},"in_reply_to":"9f560f44_54f2269b","updated":"2020-08-20 14:22:59.000000000","message":"Removed OEM as is it not required to be used by all vendors, it\u0027s up to each implementation if they need that.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"},{"line_number":126,"context_line":"all of the defined template sections, presently BIOS, RAID, and OEM."},{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d4e596dd","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":67},"updated":"2020-08-07 21:59:49.000000000","message":"Wait, are we talking about vendor specific configuration data storage subsystems? I think this kind of goes back to why I\u0027m worried about configuration.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":124,"context_line":"For the purposes of this specification, an implementation is considered"},{"line_number":125,"context_line":"complete if it offers all three pairs of clean and deploy steps and supports"},{"line_number":126,"context_line":"all of the defined template sections, presently BIOS, RAID, and OEM."},{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_761eaebb","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":67},"in_reply_to":"9f560f44_d4e596dd","updated":"2020-08-20 14:22:59.000000000","message":"No, the idea is that storage will be common to all implementation, here it is listed only to make sure that each\nImplementation does not come up with its own solution that doesn\u0027t support OpenStack/standalone versions.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"},{"line_number":132,"context_line":"deploy mechanism limitations may restrict them to be only clean steps until"},{"line_number":133,"context_line":"those can be addressed. Only the OEM configuration template section is"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5447c6bc","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":9},"updated":"2020-08-07 21:59:49.000000000","message":"No need to state finally and this is not actually the final statement as for the proposed changes.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"},{"line_number":132,"context_line":"deploy mechanism limitations may restrict them to be only clean steps until"},{"line_number":133,"context_line":"those can be addressed. Only the OEM configuration template section is"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_967ee2e1","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":9},"in_reply_to":"9f560f44_5447c6bc","updated":"2020-08-20 14:22:59.000000000","message":"It refers to the last paragraph in this section, but, ok, replaced.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"},{"line_number":132,"context_line":"deploy mechanism limitations may restrict them to be only clean steps until"},{"line_number":133,"context_line":"those can be addressed. Only the OEM configuration template section is"},{"line_number":134,"context_line":"supported. Both methods of non-volatile template storage are implemented and"},{"line_number":135,"context_line":"supported."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f4241a0f","line":132,"range":{"start_line":130,"start_character":14,"end_line":132,"end_character":42},"updated":"2020-08-07 21:59:49.000000000","message":"This paragraph would be best as a note because it is conveying side context and a risk which is very important.\n\nAlso, if the risk is actually known or perceived, lets talk about and try to see what can be done.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Additionally, non-volatile storage of configuration templates must be supported"},{"line_number":128,"context_line":"for both ironic environments, integrated OpenStack and stand-alone."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"},{"line_number":132,"context_line":"deploy mechanism limitations may restrict them to be only clean steps until"},{"line_number":133,"context_line":"those can be addressed. Only the OEM configuration template section is"},{"line_number":134,"context_line":"supported. Both methods of non-volatile template storage are implemented and"},{"line_number":135,"context_line":"supported."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_1653f26c","line":132,"range":{"start_line":130,"start_character":14,"end_line":132,"end_character":42},"in_reply_to":"9f560f44_f4241a0f","updated":"2020-08-20 14:22:59.000000000","message":"Moved to note. This is referring to calling these and other deploy steps before PXE boot, additional testing still needs to be done to see if there are any\nworkarounds and what are the scenarios where PXE boot fails. Story https://storyboard.openstack.org/#!/story/2007987 Should this story be referenced in spec?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"},{"line_number":132,"context_line":"deploy mechanism limitations may restrict them to be only clean steps until"},{"line_number":133,"context_line":"those can be addressed. Only the OEM configuration template section is"},{"line_number":134,"context_line":"supported. Both methods of non-volatile template storage are implemented and"},{"line_number":135,"context_line":"supported."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b4362250","line":134,"range":{"start_line":133,"start_character":24,"end_line":134,"end_character":10},"updated":"2020-08-07 21:59:49.000000000","message":"This feels like it is a conflicting statement and _seems_ predicated upon an apparent deploy mechanism limitation that is potentially perceived?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":130,"context_line":"Finally, this defines an MVP implementation by the ``idrac`` hardware type. We"},{"line_number":131,"context_line":"aim for it to offer all three pairs of clean and deploy steps; however, ironic"},{"line_number":132,"context_line":"deploy mechanism limitations may restrict them to be only clean steps until"},{"line_number":133,"context_line":"those can be addressed. Only the OEM configuration template section is"},{"line_number":134,"context_line":"supported. Both methods of non-volatile template storage are implemented and"},{"line_number":135,"context_line":"supported."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b6c7a612","line":134,"range":{"start_line":133,"start_character":24,"end_line":134,"end_character":10},"in_reply_to":"9f560f44_b4362250","updated":"2020-08-20 14:22:59.000000000","message":"Reorganized, in MVP only OEM is supported as it\u0027s the fastest way to implement and test it for MVP.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":139,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"The export configuration clean/deploy step extracts existing configuration of"},{"line_number":142,"context_line":"indicated server (\"golden server\") and stores it in designated storage location"},{"line_number":143,"context_line":"to be used in `Import configuration`_ clean/deploy step."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Clean/deploy step details are:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d45ab680","line":142,"range":{"start_line":142,"start_character":52,"end_line":142,"end_character":79},"updated":"2020-08-07 21:59:49.000000000","message":"User designated? This seems like a security risk if an API consumer can define arbitrary file names or paths where data is to be \"preserved\" Looking down at line 180, this does seem to be the case.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"The export configuration clean/deploy step extracts existing configuration of"},{"line_number":142,"context_line":"indicated server (\"golden server\") and stores it in designated storage location"},{"line_number":143,"context_line":"to be used in `Import configuration`_ clean/deploy step."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Clean/deploy step details are:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f457f556","line":142,"range":{"start_line":142,"start_character":52,"end_line":142,"end_character":79},"in_reply_to":"9f560f44_d45ab680","updated":"2020-08-08 07:35:44.000000000","message":"It would be a risk to let ironic save something to a path user defined, the result is unpredicted. I think usually we provide API to support data retrieval, besides, how a local file (the golden server profile) can be shared and used, is this storage location a cloud volume?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"The export configuration clean/deploy step extracts existing configuration of"},{"line_number":142,"context_line":"indicated server (\"golden server\") and stores it in designated storage location"},{"line_number":143,"context_line":"to be used in `Import configuration`_ clean/deploy step."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Clean/deploy step details are:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_96cc2236","line":142,"range":{"start_line":142,"start_character":52,"end_line":142,"end_character":79},"in_reply_to":"9f560f44_f457f556","updated":"2020-08-20 14:22:59.000000000","message":"As for all storage security comments this is being addressed in the main thread.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":150,"context_line":"  ``export_configuration``"},{"line_number":151,"context_line":"Details"},{"line_number":152,"context_line":"  Gets the configuration of the server against which the step is run and"},{"line_number":153,"context_line":"  stores it in specific format in indicated storage as configured by Ironic."},{"line_number":154,"context_line":"Priority"},{"line_number":155,"context_line":"  0"},{"line_number":156,"context_line":"Stoppable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f4853aae","line":153,"updated":"2020-08-07 21:59:49.000000000","message":"IF, and that is a very strong IF, we\u0027re going to go down the path of allowing a user to define an arbitrary file, lets have a knob to explicitly disable the step from being available. Alternatively, if we can convey to a user with a UUID as to what the data has been preserved, then that is better to return.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":150,"context_line":"  ``export_configuration``"},{"line_number":151,"context_line":"Details"},{"line_number":152,"context_line":"  Gets the configuration of the server against which the step is run and"},{"line_number":153,"context_line":"  stores it in specific format in indicated storage as configured by Ironic."},{"line_number":154,"context_line":"Priority"},{"line_number":155,"context_line":"  0"},{"line_number":156,"context_line":"Stoppable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f6cd9e30","line":153,"in_reply_to":"9f560f44_f4853aae","updated":"2020-08-20 14:22:59.000000000","message":"As for all storage security comments this is being addressed in the main thread.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Priority"},{"line_number":155,"context_line":"  0"},{"line_number":156,"context_line":"Stoppable"},{"line_number":157,"context_line":"  No"},{"line_number":158,"context_line":"Arguments"},{"line_number":159,"context_line":"  * Name of storage item to save the configuration to"},{"line_number":160,"context_line":"  * For ``raid`` settings:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_14b42e7f","line":157,"updated":"2020-08-07 21:59:49.000000000","message":"We likely also need to be able to restrict API access rights to calling this step where as other steps... or a giant global disable flag.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Priority"},{"line_number":155,"context_line":"  0"},{"line_number":156,"context_line":"Stoppable"},{"line_number":157,"context_line":"  No"},{"line_number":158,"context_line":"Arguments"},{"line_number":159,"context_line":"  * Name of storage item to save the configuration to"},{"line_number":160,"context_line":"  * For ``raid`` settings:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d6d21ad1","line":157,"in_reply_to":"9f560f44_14b42e7f","updated":"2020-08-20 14:22:59.000000000","message":"As for all storage security comments this is being addressed in the main thread.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    \"interface\": \"management\","},{"line_number":178,"context_line":"    \"step\": \"export_configuration\","},{"line_number":179,"context_line":"    \"args\": {"},{"line_number":180,"context_line":"      \"configuration_name\": \"edge_dell_emc-poweredge_r640.json\","},{"line_number":181,"context_line":"      \"raid\": {"},{"line_number":182,"context_line":"        \"enable_create_nonroot_volumes\": true,"},{"line_number":183,"context_line":"        \"enable_create_root_volume\": true,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_94331e14","line":180,"updated":"2020-08-07 21:59:49.000000000","message":"I\u0027m super confused. You want to have these configuration files which are, as I seem to be interpreting as containing raid configuration, but then you also want to have the step be able to define individual parameters outside of the file to provide overrides?\n\nIf we\u0027re exporting, we should use what is there and not be permitting this sort of override capability because the overrides could conflict with the base settings. Or is this because we\u0027re not preserving that data from the original definition? Perhaps we should be if not?\n\nI guess override are also confusing because we\u0027re wanting to take the node and stamp out additional nodes, which is implicitly destructive and kind of needs to do the exact same thing as what was done originally.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    \"interface\": \"management\","},{"line_number":178,"context_line":"    \"step\": \"export_configuration\","},{"line_number":179,"context_line":"    \"args\": {"},{"line_number":180,"context_line":"      \"configuration_name\": \"edge_dell_emc-poweredge_r640.json\","},{"line_number":181,"context_line":"      \"raid\": {"},{"line_number":182,"context_line":"        \"enable_create_nonroot_volumes\": true,"},{"line_number":183,"context_line":"        \"enable_create_root_volume\": true,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_96f5425a","line":180,"in_reply_to":"9f560f44_94331e14","updated":"2020-08-20 14:22:59.000000000","message":"yes, does not make sense in the end, removed","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":195,"context_line":"   see `Storage of configuration data`_)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":199,"context_line":"upload the configuration directly to the storage without using Ironic - when"},{"line_number":200,"context_line":"having Swift for storage, then using Swift API or CLI, or when"},{"line_number":201,"context_line":"having web server, then writing file to filesystem of web server\u0027s folder."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Import configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_da077d17","line":201,"range":{"start_line":198,"start_character":0,"end_line":201,"end_character":74},"updated":"2020-08-07 21:59:49.000000000","message":"This seems kind of redundant, and honestly seems like something more relevant for the next section.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":195,"context_line":"   see `Storage of configuration data`_)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"If the configuration is acquired previously or in another way, user can also"},{"line_number":199,"context_line":"upload the configuration directly to the storage without using Ironic - when"},{"line_number":200,"context_line":"having Swift for storage, then using Swift API or CLI, or when"},{"line_number":201,"context_line":"having web server, then writing file to filesystem of web server\u0027s folder."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Import configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b695e6e6","line":201,"range":{"start_line":198,"start_character":0,"end_line":201,"end_character":74},"in_reply_to":"9f560f44_da077d17","updated":"2020-08-20 14:22:59.000000000","message":"Keeping it here and clarified that usage of export_configuration is not mandatory/required in all cases. That user can get the file from somewhere else, previous runs etc. and upload it. Note, the actual mechanism TBD for security requirements.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":241,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":242,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":243,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":244,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":245,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field as it is already"},{"line_number":246,"context_line":"   done in corresponding BIOS and RAID clean and deploy steps."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"If an error is encountered, the clean/deploy step fails. On failure, no"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_ba71e9aa","line":245,"range":{"start_line":244,"start_character":49,"end_line":245,"end_character":36},"updated":"2020-08-07 21:59:49.000000000","message":"If the existing internal interfaces are being used, this should be the default. Additionally, if the same interfaces for raid_config are being used, then it should also be the default, which kind of makes this extra information that is not really necessary.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":241,"context_line":"1. Using given configuration name and Ironic\u0027s storage settings, get the"},{"line_number":242,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":243,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":244,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":245,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field as it is already"},{"line_number":246,"context_line":"   done in corresponding BIOS and RAID clean and deploy steps."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"If an error is encountered, the clean/deploy step fails. On failure, no"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f6b47e84","line":245,"range":{"start_line":244,"start_character":49,"end_line":245,"end_character":36},"in_reply_to":"9f560f44_ba71e9aa","updated":"2020-08-20 14:22:59.000000000","message":"It\u0027s up to implementation how they do it, might re-use existing ones, might create a new ones, mentioning here to make sure to make this on par with current behavior.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":242,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":243,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":244,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":245,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field as it is already"},{"line_number":246,"context_line":"   done in corresponding BIOS and RAID clean and deploy steps."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"If an error is encountered, the clean/deploy step fails. On failure, no"},{"line_number":249,"context_line":"assurances can be made about the state of the system\u0027s configuration nor side"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_9a9d05be","line":246,"range":{"start_line":245,"start_character":56,"end_line":246,"end_character":62},"updated":"2020-08-07 21:59:49.000000000","message":"Regarding my prior comment, is the though that additional, external interfaces will take configuration and then apply it via oem interfaces exclusively? At which point I\u0027m really confused by the blend of interfaces/mechanics.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":242,"context_line":"   configuration from the storage (common to all drivers)"},{"line_number":243,"context_line":"2. Transform the configuration to driver specific format (driver specific)"},{"line_number":244,"context_line":"3. Apply the configuration (driver specific) and prospectively update the"},{"line_number":245,"context_line":"   node\u0027s cached BIOS configuration and ``raid_config`` field as it is already"},{"line_number":246,"context_line":"   done in corresponding BIOS and RAID clean and deploy steps."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"If an error is encountered, the clean/deploy step fails. On failure, no"},{"line_number":249,"context_line":"assurances can be made about the state of the system\u0027s configuration nor side"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5628ca95","line":246,"range":{"start_line":245,"start_character":56,"end_line":246,"end_character":62},"in_reply_to":"9f560f44_9a9d05be","updated":"2020-08-20 14:22:59.000000000","message":"Up to each vendor\u0027s implementation, the only thing this spec suggest is to have import/export_configuration steps and data format that they work (input/output) with and storing of that data.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":261,"context_line":"not in the scope of this RFE."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"Depending on each vendor\u0027s capabilities importing can be powerful step that"},{"line_number":264,"context_line":"allows configuring various things. Users need to be aware of these capabilities"},{"line_number":265,"context_line":"and make sure not to overwrite settings that are not intended to be replaced,"},{"line_number":266,"context_line":"for example, deleting RAID settings or static BMC IP address."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"Import and export configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_fa91a153","line":266,"range":{"start_line":264,"start_character":34,"end_line":266,"end_character":61},"updated":"2020-08-07 21:59:49.000000000","message":"s/Users/Users and vendors/\n\nAs well as this entire paragraph should be a warning. Please use the .. warning:: sytax for it.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":261,"context_line":"not in the scope of this RFE."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"Depending on each vendor\u0027s capabilities importing can be powerful step that"},{"line_number":264,"context_line":"allows configuring various things. Users need to be aware of these capabilities"},{"line_number":265,"context_line":"and make sure not to overwrite settings that are not intended to be replaced,"},{"line_number":266,"context_line":"for example, deleting RAID settings or static BMC IP address."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"Import and export configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_160bf229","line":266,"range":{"start_line":264,"start_character":34,"end_line":266,"end_character":61},"in_reply_to":"9f560f44_fa91a153","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"77eccf94b4db5b92dc01acb84483f359d0d1e1ab","unresolved":false,"context_lines":[{"line_number":292,"context_line":"  * For ``export`` section:"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    * Name of storage item to save the configuration to"},{"line_number":295,"context_line":"    * For ``raid`` settings:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"      * Optional flag ``enable_create_nonroot_volumes`` to set"},{"line_number":298,"context_line":"        ``create_nonroot_volumes`` to ``true`` in exported data, defaults"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_4d67344e","line":295,"updated":"2020-08-09 10:40:10.000000000","message":"(Commenting on a random spot, but applies everywhere): we should not put RAID-specific stuff in the management interface. You ideas probably justifies something (TBD) to put on each interface and to be collected by the conductor (also TBD).","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c0ce3cd5b78f6623afb0c574c7d8317fe69e576","unresolved":false,"context_lines":[{"line_number":292,"context_line":"  * For ``export`` section:"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    * Name of storage item to save the configuration to"},{"line_number":295,"context_line":"    * For ``raid`` settings:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"      * Optional flag ``enable_create_nonroot_volumes`` to set"},{"line_number":298,"context_line":"        ``create_nonroot_volumes`` to ``true`` in exported data, defaults"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a0f360e7","line":295,"in_reply_to":"9f560f44_4d67344e","updated":"2020-08-13 20:49:02.000000000","message":"Good point. I honestly feel like I need a workflow use diagram from an end user\u0027s perspective as to methods/actions internally in the conductor. This whole thing feels like two different pieces of a puzzle and mentally I\u0027m trying to reconcile it. It would honestly just be simpler if they were not trying to put something on the base management interface.\n\nA step is disjointed from a method. Some of the user available steps are private methods in the code today, because the internal method name is not called except by code translating the step name. I\u0027m just not quite suer","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"312ececb48a689c85ebca4a996fee42245f94cef","unresolved":false,"context_lines":[{"line_number":292,"context_line":"  * For ``export`` section:"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    * Name of storage item to save the configuration to"},{"line_number":295,"context_line":"    * For ``raid`` settings:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"      * Optional flag ``enable_create_nonroot_volumes`` to set"},{"line_number":298,"context_line":"        ``create_nonroot_volumes`` to ``true`` in exported data, defaults"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_9383d456","line":295,"in_reply_to":"9f560f44_4d67344e","updated":"2020-08-17 11:41:32.000000000","message":"What would be better interface for these operations that cover not only RAID, but other various aspects of system? Other existing interfaces do not fit either.\nAnd what\u0027s the reason not putting RAID-specific stuff in management interface?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":332,"context_line":"2. When importing succeeds, execute workflow as in step `Export configuration`_"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"Format of configuration data"},{"line_number":336,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"The format to store the re-usable configuration is in JSON format and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_65be96ff","line":335,"updated":"2020-08-07 21:59:49.000000000","message":"This should likely be moved WAY up in the explanation of the entire suite of features that is being envisioned.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":332,"context_line":"2. When importing succeeds, execute workflow as in step `Export configuration`_"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"Format of configuration data"},{"line_number":336,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"The format to store the re-usable configuration is in JSON format and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5601ea05","line":335,"in_reply_to":"9f560f44_65be96ff","updated":"2020-08-20 14:22:59.000000000","message":"The flow goes from higher level (steps) to lower (details about format). Keeping it here, but added reference above to this section.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":341,"context_line":"* bios – ``reset`` to indicate if reset is necessary before applying settings"},{"line_number":342,"context_line":"  indicated in the list of BIOS attribute key-value pairs inside ``settings``"},{"line_number":343,"context_line":"  section as in Apply BIOS configuration step [2]_. If ``reset`` is false, then"},{"line_number":344,"context_line":"  settings that are not included in ``settings`` sections are left unchanged."},{"line_number":345,"context_line":"* raid – as in RAID create configuration step with key-value pair settings and"},{"line_number":346,"context_line":"  ``target_raid_config`` property [3]_"},{"line_number":347,"context_line":"* oem – driver specific section with everything else that does not fit into"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_da977d39","line":344,"updated":"2020-08-07 21:59:49.000000000","message":"Is the intent to try and drive standardization with this, or will it just be each vendor\u0027s bmc specific labels? Each vendor\u0027s labels seems to make the most sense.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":341,"context_line":"* bios – ``reset`` to indicate if reset is necessary before applying settings"},{"line_number":342,"context_line":"  indicated in the list of BIOS attribute key-value pairs inside ``settings``"},{"line_number":343,"context_line":"  section as in Apply BIOS configuration step [2]_. If ``reset`` is false, then"},{"line_number":344,"context_line":"  settings that are not included in ``settings`` sections are left unchanged."},{"line_number":345,"context_line":"* raid – as in RAID create configuration step with key-value pair settings and"},{"line_number":346,"context_line":"  ``target_raid_config`` property [3]_"},{"line_number":347,"context_line":"* oem – driver specific section with everything else that does not fit into"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6116ea4b","line":344,"in_reply_to":"9f560f44_da977d39","updated":"2020-08-20 14:22:59.000000000","message":"Each vendor\u0027s labels.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":353,"context_line":"  is that it needs to fit in JSON property."},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":357,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7abd91b5","line":356,"range":{"start_line":356,"start_character":10,"end_line":356,"end_character":21},"updated":"2020-08-07 21:59:49.000000000","message":"s/new section can/new sections may/","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":353,"context_line":"  is that it needs to fit in JSON property."},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":357,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_213eb2b7","line":356,"range":{"start_line":356,"start_character":10,"end_line":356,"end_character":21},"in_reply_to":"9f560f44_7abd91b5","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":356,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":357,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":360,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"},{"line_number":361,"context_line":"configuration data is considered invalid and cleaning/deployment step fails."},{"line_number":362,"context_line":"Depending on vendor\u0027s implementation some settings require additional logic"},{"line_number":363,"context_line":"when determining overlapping. For example, for ``boot`` section, if that was"},{"line_number":364,"context_line":"introduced, vendors can store these settings under OEM\u0027s BIOS section. In that"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7ae2b1d6","line":361,"range":{"start_line":359,"start_character":0,"end_line":361,"end_character":76},"updated":"2020-08-07 21:59:49.000000000","message":"Could you elaborate on this? I\u0027m not sure exactly which overlap is attempting to be conveyed to be considered invalid. I it bios settings in OEM, or is it any settings in OEM as well as bios?\n\nFrankly, adaptation of the following sentences to use the existing interfaces instead of bios would make far more sense and help convey the necessary context.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":356,"context_line":"In future new section can be added, for example, ``boot`` section to indicate"},{"line_number":357,"context_line":"boot mode, NIC configuration for PXE boot."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"There is no overlapping with ``oem`` and vendor-independent sections, like"},{"line_number":360,"context_line":"``bios`` and ``raid``. If overlapping is determined during import, then"},{"line_number":361,"context_line":"configuration data is considered invalid and cleaning/deployment step fails."},{"line_number":362,"context_line":"Depending on vendor\u0027s implementation some settings require additional logic"},{"line_number":363,"context_line":"when determining overlapping. For example, for ``boot`` section, if that was"},{"line_number":364,"context_line":"introduced, vendors can store these settings under OEM\u0027s BIOS section. In that"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_01a28efc","line":361,"range":{"start_line":359,"start_character":0,"end_line":361,"end_character":76},"in_reply_to":"9f560f44_7ae2b1d6","updated":"2020-08-20 14:22:59.000000000","message":"Will clarify, but for now the spec does not require using existing interfaces, but vendors may do so if they want.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":363,"context_line":"when determining overlapping. For example, for ``boot`` section, if that was"},{"line_number":364,"context_line":"introduced, vendors can store these settings under OEM\u0027s BIOS section. In that"},{"line_number":365,"context_line":"and similar cases need to check if OEM\u0027s BIOS section also contains boot"},{"line_number":366,"context_line":"related attributes to determine overlapping when also ``boot`` section is"},{"line_number":367,"context_line":"present."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"Sample of exported data format:"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7a0bd18c","line":367,"range":{"start_line":366,"start_character":43,"end_line":367,"end_character":8},"updated":"2020-08-07 21:59:49.000000000","message":"This implies that sections will be optional?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":363,"context_line":"when determining overlapping. For example, for ``boot`` section, if that was"},{"line_number":364,"context_line":"introduced, vendors can store these settings under OEM\u0027s BIOS section. In that"},{"line_number":365,"context_line":"and similar cases need to check if OEM\u0027s BIOS section also contains boot"},{"line_number":366,"context_line":"related attributes to determine overlapping when also ``boot`` section is"},{"line_number":367,"context_line":"present."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"Sample of exported data format:"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7be4c00d","line":367,"range":{"start_line":366,"start_character":43,"end_line":367,"end_character":8},"in_reply_to":"9f560f44_7a0bd18c","updated":"2020-08-21 14:31:22.000000000","message":"It is not required that all sections are present at all times. Users can still choose to configure only one on several aspects. If a section is not there, existing settings on system are left as they are, but if that\u0027s indicated in 2 places, then it\u0027s invalid configuration mold. If/when this is\nintroduced, support for this section is also added to completeness criteria.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        ]"},{"line_number":416,"context_line":"      }"},{"line_number":417,"context_line":"    }"},{"line_number":418,"context_line":"    \"oem\": {"},{"line_number":419,"context_line":"      \"interface\": \"idrac-redfish\","},{"line_number":420,"context_line":"      \"data\": {"},{"line_number":421,"context_line":"        \"SystemConfiguration\": {"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_9a4ea594","line":418,"updated":"2020-08-07 21:59:49.000000000","message":"Speaking of the OEM section, is there a possibility that vendors may store security, access control, and bmc network or credential information in the OEM data. This could be a huge security issue and should be considered. Seems worthy of a giant warning somewhere in this spec document.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        ]"},{"line_number":416,"context_line":"      }"},{"line_number":417,"context_line":"    }"},{"line_number":418,"context_line":"    \"oem\": {"},{"line_number":419,"context_line":"      \"interface\": \"idrac-redfish\","},{"line_number":420,"context_line":"      \"data\": {"},{"line_number":421,"context_line":"        \"SystemConfiguration\": {"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_21acf2eb","line":418,"in_reply_to":"9f560f44_9a4ea594","updated":"2020-08-20 14:22:59.000000000","message":"Yes, it\u0027s possible, in newly suggested approach proposing to encrypt the data at rest.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":464,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Common functionality among hardware types is the configuration storage. Though"},{"line_number":467,"context_line":"it would be possible for each driver to implement their own storage logic,"},{"line_number":468,"context_line":"common approach makes the solution simpler and save resources on duplicating"},{"line_number":469,"context_line":"the effort when implementing the steps for each driver as there is nothing that"},{"line_number":470,"context_line":"should be driver specific or that different drivers could not handle."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7a30f156","line":467,"range":{"start_line":467,"start_character":0,"end_line":467,"end_character":74},"updated":"2020-08-07 21:59:49.000000000","message":"This is very much not advisable from my perspective as we\u0027ve already seen enough issues where slight differences make it more difficult for common methods and code to be refactored later. If it is common to begin with, then it is a lot easier.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":464,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Common functionality among hardware types is the configuration storage. Though"},{"line_number":467,"context_line":"it would be possible for each driver to implement their own storage logic,"},{"line_number":468,"context_line":"common approach makes the solution simpler and save resources on duplicating"},{"line_number":469,"context_line":"the effort when implementing the steps for each driver as there is nothing that"},{"line_number":470,"context_line":"should be driver specific or that different drivers could not handle."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_818e9e76","line":467,"range":{"start_line":467,"start_character":0,"end_line":467,"end_character":74},"in_reply_to":"9f560f44_7a30f156","updated":"2020-08-20 14:22:59.000000000","message":"Removed to not say this explicitly.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":463,"context_line":"Storage of configuration data"},{"line_number":464,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Common functionality among hardware types is the configuration storage. Though"},{"line_number":467,"context_line":"it would be possible for each driver to implement their own storage logic,"},{"line_number":468,"context_line":"common approach makes the solution simpler and save resources on duplicating"},{"line_number":469,"context_line":"the effort when implementing the steps for each driver as there is nothing that"},{"line_number":470,"context_line":"should be driver specific or that different drivers could not handle."},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"The configuration to re-use is stored in Swift or in web server to support"},{"line_number":473,"context_line":"standalone Ironic. Such approach is already used by Redfish virtual media boot"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_fa24010f","line":470,"range":{"start_line":466,"start_character":0,"end_line":470,"end_character":69},"updated":"2020-08-07 21:59:49.000000000","message":"This paragraph could likely be entirely dropped. The rational attempting to be justified is already the preferred approach.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":463,"context_line":"Storage of configuration data"},{"line_number":464,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Common functionality among hardware types is the configuration storage. Though"},{"line_number":467,"context_line":"it would be possible for each driver to implement their own storage logic,"},{"line_number":468,"context_line":"common approach makes the solution simpler and save resources on duplicating"},{"line_number":469,"context_line":"the effort when implementing the steps for each driver as there is nothing that"},{"line_number":470,"context_line":"should be driver specific or that different drivers could not handle."},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"The configuration to re-use is stored in Swift or in web server to support"},{"line_number":473,"context_line":"standalone Ironic. Such approach is already used by Redfish virtual media boot"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a1ee421f","line":470,"range":{"start_line":466,"start_character":0,"end_line":470,"end_character":69},"in_reply_to":"9f560f44_fa24010f","updated":"2020-08-20 14:22:59.000000000","message":"Removed to not say this explicitly.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":471,"context_line":""},{"line_number":472,"context_line":"The configuration to re-use is stored in Swift or in web server to support"},{"line_number":473,"context_line":"standalone Ironic. Such approach is already used by Redfish virtual media boot"},{"line_number":474,"context_line":"and is controlled by these settings:"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":".. code-block::"},{"line_number":477,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_9a64e54b","line":474,"updated":"2020-08-07 21:59:49.000000000","message":"Also used by the ilo driver... and really it seems redundant to enumerate out the existing settings that are used for object/file storage.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":471,"context_line":""},{"line_number":472,"context_line":"The configuration to re-use is stored in Swift or in web server to support"},{"line_number":473,"context_line":"standalone Ironic. Such approach is already used by Redfish virtual media boot"},{"line_number":474,"context_line":"and is controlled by these settings:"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":".. code-block::"},{"line_number":477,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5bb3bc0a","line":474,"in_reply_to":"9f560f44_9a64e54b","updated":"2020-08-21 14:31:22.000000000","message":"Removed the paragraphs.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":482,"context_line":"  [deploy]http_root"},{"line_number":483,"context_line":"  [deploy]http_url"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"Configuration storage will require same type settings to implement storage"},{"line_number":486,"context_line":"functionality, except ``[redfish]swift_object_expiry_timeout`` that will not be"},{"line_number":487,"context_line":"needed as configuration will be persisted for indefinite time."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"The existing settings are tied to ``[deploy]`` and ``[redfish]`` sections, but"},{"line_number":490,"context_line":"storage configuration is common to all hardware types and not related to"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5a4ecdc0","line":487,"range":{"start_line":485,"start_character":0,"end_line":487,"end_character":62},"updated":"2020-08-07 21:59:49.000000000","message":"This is extraneous information outside the needs to convey the feature and should be removed from the specification document.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":482,"context_line":"  [deploy]http_root"},{"line_number":483,"context_line":"  [deploy]http_url"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"Configuration storage will require same type settings to implement storage"},{"line_number":486,"context_line":"functionality, except ``[redfish]swift_object_expiry_timeout`` that will not be"},{"line_number":487,"context_line":"needed as configuration will be persisted for indefinite time."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"The existing settings are tied to ``[deploy]`` and ``[redfish]`` sections, but"},{"line_number":490,"context_line":"storage configuration is common to all hardware types and not related to"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7bcde083","line":487,"range":{"start_line":485,"start_character":0,"end_line":487,"end_character":62},"in_reply_to":"9f560f44_5a4ecdc0","updated":"2020-08-21 14:31:22.000000000","message":"Removed","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":486,"context_line":"functionality, except ``[redfish]swift_object_expiry_timeout`` that will not be"},{"line_number":487,"context_line":"needed as configuration will be persisted for indefinite time."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"The existing settings are tied to ``[deploy]`` and ``[redfish]`` sections, but"},{"line_number":490,"context_line":"storage configuration is common to all hardware types and not related to"},{"line_number":491,"context_line":"deployment as there are also clean steps introduced.  The implementation will"},{"line_number":492,"context_line":"introduce new settings added to ``[default]`` section. In addition, existing"},{"line_number":493,"context_line":"settings under ``[redfish]`` and ``[deploy]`` can be refactored to use the"},{"line_number":494,"context_line":"driver independent section for coherent solution."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"The new settings are:"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":".. code-block::"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"  [default]use_swift"},{"line_number":501,"context_line":"  [default]configuration_storage_folder"},{"line_number":502,"context_line":"  [default]file_permission"},{"line_number":503,"context_line":"  [default]http_root"},{"line_number":504,"context_line":"  [default]http_url"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"The workflow for storing the configuration data:"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_3a703908","line":504,"range":{"start_line":489,"start_character":0,"end_line":504,"end_character":19},"updated":"2020-08-07 21:59:49.000000000","message":"I get what you guys are trying to propose with renaming settings, and believe it or not based on the number of comments I totally agree. That being said, I\u0027d prefer this just be proposed and approved to help simplify and consolidate things. Largely because this is additional work that is out of scope to this single change and work that can be independently performed.\n\nTo put it another way, this is sort of like increased additional details and context to be juggled in an already very long spec document.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":486,"context_line":"functionality, except ``[redfish]swift_object_expiry_timeout`` that will not be"},{"line_number":487,"context_line":"needed as configuration will be persisted for indefinite time."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"The existing settings are tied to ``[deploy]`` and ``[redfish]`` sections, but"},{"line_number":490,"context_line":"storage configuration is common to all hardware types and not related to"},{"line_number":491,"context_line":"deployment as there are also clean steps introduced.  The implementation will"},{"line_number":492,"context_line":"introduce new settings added to ``[default]`` section. In addition, existing"},{"line_number":493,"context_line":"settings under ``[redfish]`` and ``[deploy]`` can be refactored to use the"},{"line_number":494,"context_line":"driver independent section for coherent solution."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"The new settings are:"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":".. code-block::"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"  [default]use_swift"},{"line_number":501,"context_line":"  [default]configuration_storage_folder"},{"line_number":502,"context_line":"  [default]file_permission"},{"line_number":503,"context_line":"  [default]http_root"},{"line_number":504,"context_line":"  [default]http_url"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"The workflow for storing the configuration data:"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d4d751be","line":504,"range":{"start_line":489,"start_character":0,"end_line":504,"end_character":19},"in_reply_to":"9f560f44_3a703908","updated":"2020-08-08 07:35:44.000000000","message":"we have too much in the default section, I\u0027d prefer to keep deploy related options there.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":486,"context_line":"functionality, except ``[redfish]swift_object_expiry_timeout`` that will not be"},{"line_number":487,"context_line":"needed as configuration will be persisted for indefinite time."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"The existing settings are tied to ``[deploy]`` and ``[redfish]`` sections, but"},{"line_number":490,"context_line":"storage configuration is common to all hardware types and not related to"},{"line_number":491,"context_line":"deployment as there are also clean steps introduced.  The implementation will"},{"line_number":492,"context_line":"introduce new settings added to ``[default]`` section. In addition, existing"},{"line_number":493,"context_line":"settings under ``[redfish]`` and ``[deploy]`` can be refactored to use the"},{"line_number":494,"context_line":"driver independent section for coherent solution."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"The new settings are:"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":".. code-block::"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"  [default]use_swift"},{"line_number":501,"context_line":"  [default]configuration_storage_folder"},{"line_number":502,"context_line":"  [default]file_permission"},{"line_number":503,"context_line":"  [default]http_root"},{"line_number":504,"context_line":"  [default]http_url"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"The workflow for storing the configuration data:"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_9b7ef416","line":504,"range":{"start_line":489,"start_character":0,"end_line":504,"end_character":19},"in_reply_to":"9f560f44_d4d751be","updated":"2020-08-21 14:31:22.000000000","message":"@Julia, it was not meant to be part of MVP as, yes, it\u0027s additional work, but was noted to recognize that by keeping adding more functionality that use these settings they might require some refactoring so everything still makes sense and setting list is not cluttered with repetitive/similar things. Removed.\n\n@Kaifeng, was thinking the same, but as these are proposed also as clean steps, does it make sense to put settings for that in deploy section? Maybe new section?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"The workflow for storing the configuration data:"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"1. Given contents for the storage to save and desired item name,"},{"line_number":509,"context_line":"   validate the item name and if valid save the contents in a file in location"},{"line_number":510,"context_line":"   ``[default]tempdir``. If invalid file name, step fails."},{"line_number":511,"context_line":"2. Based on setting ``[default]use_swift`` determine used storage mechanism."},{"line_number":512,"context_line":"   If Swift is used, then upload the file to container indicated by setting"},{"line_number":513,"context_line":"   ``[default]configuration_storage_folder``. If local web server is used, then"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_da6bfded","line":510,"range":{"start_line":508,"start_character":0,"end_line":510,"end_character":58},"updated":"2020-08-07 21:59:49.000000000","message":"I have an issue with an API user being able to specify an arbitrary name for the end file to be saved on a server. Considering that \"user\" could actually be an attacker that wants to potentially perform harmful actions.\n\nUse of an intermediate temp directory for this also doesn\u0027t really provide any security or prevent such as an attacker could potentially work to escape the folder depending on the file name.\n\nTo make things even worse, Operating System security controls may preserve the security context of a file written to a temporary folder that is then copied or moved elsewhere.\n\nA far more secure solution is for random file names to be used on sever, and those files can either have some sort of name, or ironic simply just returns \"where\" a user can find it in something such as Swift using semi-random filename.\n\nTo provide clarity into just how strongly I feel about this, I\u0027m borderline -2 on the user definable filename being used as the on-disk filename from a security and operational standpoint.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"The workflow for storing the configuration data:"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"1. Given contents for the storage to save and desired item name,"},{"line_number":509,"context_line":"   validate the item name and if valid save the contents in a file in location"},{"line_number":510,"context_line":"   ``[default]tempdir``. If invalid file name, step fails."},{"line_number":511,"context_line":"2. Based on setting ``[default]use_swift`` determine used storage mechanism."},{"line_number":512,"context_line":"   If Swift is used, then upload the file to container indicated by setting"},{"line_number":513,"context_line":"   ``[default]configuration_storage_folder``. If local web server is used, then"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_41dda66e","line":510,"range":{"start_line":508,"start_character":0,"end_line":510,"end_character":58},"in_reply_to":"9f560f44_b4cf3d27","updated":"2020-08-20 14:22:59.000000000","message":"Addressing this in main thread about storage security.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d5bf3fb4693fdb52055eea5f89cac5286e0574a","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"The workflow for storing the configuration data:"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"1. Given contents for the storage to save and desired item name,"},{"line_number":509,"context_line":"   validate the item name and if valid save the contents in a file in location"},{"line_number":510,"context_line":"   ``[default]tempdir``. If invalid file name, step fails."},{"line_number":511,"context_line":"2. Based on setting ``[default]use_swift`` determine used storage mechanism."},{"line_number":512,"context_line":"   If Swift is used, then upload the file to container indicated by setting"},{"line_number":513,"context_line":"   ``[default]configuration_storage_folder``. If local web server is used, then"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_b4cf3d27","line":510,"range":{"start_line":508,"start_character":0,"end_line":510,"end_character":58},"in_reply_to":"9f560f44_da6bfded","updated":"2020-08-08 07:35:44.000000000","message":"I am not sure how it\u0027s useful by saving the configuration file into local filesystem, someone would need to locate the conductor and get it from there.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":508,"context_line":"1. Given contents for the storage to save and desired item name,"},{"line_number":509,"context_line":"   validate the item name and if valid save the contents in a file in location"},{"line_number":510,"context_line":"   ``[default]tempdir``. If invalid file name, step fails."},{"line_number":511,"context_line":"2. Based on setting ``[default]use_swift`` determine used storage mechanism."},{"line_number":512,"context_line":"   If Swift is used, then upload the file to container indicated by setting"},{"line_number":513,"context_line":"   ``[default]configuration_storage_folder``. If local web server is used, then"},{"line_number":514,"context_line":"   upload the file to folder indicated by the same setting"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5aaa4d18","line":511,"updated":"2020-08-07 21:59:49.000000000","message":"The path should be either directly to disk in some way/shape/form or directly to swift in some way/shape/form. Intermediate stops increase the number of IO operations which is not ideal performance wise. Not to temp folder and then swift as this is somewhat implying.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":508,"context_line":"1. Given contents for the storage to save and desired item name,"},{"line_number":509,"context_line":"   validate the item name and if valid save the contents in a file in location"},{"line_number":510,"context_line":"   ``[default]tempdir``. If invalid file name, step fails."},{"line_number":511,"context_line":"2. Based on setting ``[default]use_swift`` determine used storage mechanism."},{"line_number":512,"context_line":"   If Swift is used, then upload the file to container indicated by setting"},{"line_number":513,"context_line":"   ``[default]configuration_storage_folder``. If local web server is used, then"},{"line_number":514,"context_line":"   upload the file to folder indicated by the same setting"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_81e33e34","line":511,"in_reply_to":"9f560f44_5aaa4d18","updated":"2020-08-20 14:22:59.000000000","message":"This is only here because current Swift API in Ironic expects files https://opendev.org/openstack/ironic/src/branch/master/ironic/common/swift.py#L100","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":515,"context_line":"   ``[default]configuration_storage_folder`` under web server root at"},{"line_number":516,"context_line":"   ``[deploy]http_root`` and apply file permissions from"},{"line_number":517,"context_line":"   ``[default]file_permission``."},{"line_number":518,"context_line":"   If there is a storage item with the same name, content is overwritten both"},{"line_number":519,"context_line":"   in Swift and local web server filesystem."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_5a588d54","line":518,"range":{"start_line":518,"start_character":24,"end_line":518,"end_character":49},"updated":"2020-08-07 21:59:49.000000000","message":"Is there any way to prevent unauthorized access if there is potentially sensitive information in the files? An API user may not be an owner, they may only be a leasee. This data being exposed to them could potentially be an issue, or this data being in a predictable location. This kind of leads to my preference that we avoid the problem of storage for external user interaction.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":515,"context_line":"   ``[default]configuration_storage_folder`` under web server root at"},{"line_number":516,"context_line":"   ``[deploy]http_root`` and apply file permissions from"},{"line_number":517,"context_line":"   ``[default]file_permission``."},{"line_number":518,"context_line":"   If there is a storage item with the same name, content is overwritten both"},{"line_number":519,"context_line":"   in Swift and local web server filesystem."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_21c3528b","line":518,"range":{"start_line":518,"start_character":24,"end_line":518,"end_character":49},"in_reply_to":"9f560f44_5a588d54","updated":"2020-08-20 14:22:59.000000000","message":"Addressing this in main thread about storage security.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"77eccf94b4db5b92dc01acb84483f359d0d1e1ab","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"1. Given item name of the configuration and storage type in"},{"line_number":525,"context_line":"   ``[default]use_swift`` and location in"},{"line_number":526,"context_line":"   ``[default]configuration_storage_folder`` fetch the data and read in memory."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_ad5a507f","line":526,"updated":"2020-08-09 10:40:10.000000000","message":"nit: s/folder/dir/","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"1. Given item name of the configuration and storage type in"},{"line_number":525,"context_line":"   ``[default]use_swift`` and location in"},{"line_number":526,"context_line":"   ``[default]configuration_storage_folder`` fetch the data and read in memory."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_c137f6af","line":526,"in_reply_to":"9f560f44_ad5a507f","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":526,"context_line":"   ``[default]configuration_storage_folder`` fetch the data and read in memory."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"},{"line_number":530,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a52a6e7b","line":529,"range":{"start_line":529,"start_character":0,"end_line":529,"end_character":53},"updated":"2020-08-07 21:59:49.000000000","message":"This could be shortened to just \"idrac-redfish implementation\"","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":526,"context_line":"   ``[default]configuration_storage_folder`` fetch the data and read in memory."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"},{"line_number":530,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_013e0e8a","line":529,"range":{"start_line":529,"start_character":0,"end_line":529,"end_character":53},"in_reply_to":"9f560f44_a52a6e7b","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"},{"line_number":530,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"},{"line_number":533,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":534,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a501ce07","line":532,"range":{"start_line":532,"start_character":6,"end_line":532,"end_character":51},"updated":"2020-08-07 21:59:49.000000000","message":"If we can avoid this tentative statement somehow, this would be appreciated. It feels redundant based upon prior wording of the specification document.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"},{"line_number":530,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"},{"line_number":533,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":534,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_3a015907","line":532,"range":{"start_line":532,"start_character":61,"end_line":532,"end_character":67},"updated":"2020-08-07 21:59:49.000000000","message":"s/the new/these proposed/","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":529,"context_line":"idrac-redfish implementation for new deployment steps"},{"line_number":530,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"},{"line_number":533,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":534,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_614eea38","line":532,"range":{"start_line":532,"start_character":6,"end_line":532,"end_character":51},"in_reply_to":"9f560f44_a501ce07","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"},{"line_number":533,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":534,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"},{"line_number":536,"context_line":"intervention and decreasing configuration time\" [4]_."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":539,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_fa0a4123","line":536,"range":{"start_line":534,"start_character":20,"end_line":536,"end_character":48},"updated":"2020-08-07 21:59:49.000000000","message":"If we can avoid the marketing wording, I would be greatly appreciative. Explaining the basic functionality even earlier on and being able to leverage that as the basis for this specification would set a better overall foundation for this specification.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":531,"context_line":""},{"line_number":532,"context_line":"iDRAC could be one of the first hardware types that implement the new clean and"},{"line_number":533,"context_line":"deploy steps. In iDRAC there is functionality for Server Configuration Profile"},{"line_number":534,"context_line":"(SCP) that enables \"rapid, reliable and reproducible configuration\" that \"saves"},{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"},{"line_number":536,"context_line":"intervention and decreasing configuration time\" [4]_."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":539,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_c16096a8","line":536,"range":{"start_line":534,"start_character":20,"end_line":536,"end_character":48},"in_reply_to":"9f560f44_fa0a4123","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"},{"line_number":536,"context_line":"intervention and decreasing configuration time\" [4]_."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":539,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"},{"line_number":540,"context_line":"imported from ``oem`` section as-is without any transformation. In the"},{"line_number":541,"context_line":"following versions this will be improved to start using ``bios`` and ``raid``"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_c50a021e","line":538,"range":{"start_line":538,"start_character":19,"end_line":538,"end_character":29},"updated":"2020-08-07 21:59:49.000000000","message":"s/transforms/would transform/\n\nEverything here is in the future.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":535,"context_line":"time and minimizes configuration error, thereby reducing the need for manual"},{"line_number":536,"context_line":"intervention and decreasing configuration time\" [4]_."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":539,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"},{"line_number":540,"context_line":"imported from ``oem`` section as-is without any transformation. In the"},{"line_number":541,"context_line":"following versions this will be improved to start using ``bios`` and ``raid``"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a165a2b7","line":538,"range":{"start_line":538,"start_character":19,"end_line":538,"end_character":29},"in_reply_to":"9f560f44_c50a021e","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":536,"context_line":"intervention and decreasing configuration time\" [4]_."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":539,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"},{"line_number":540,"context_line":"imported from ``oem`` section as-is without any transformation. In the"},{"line_number":541,"context_line":"following versions this will be improved to start using ``bios`` and ``raid``"},{"line_number":542,"context_line":"sections. The implementation will use Redfish protocol. As this is part of OEM"},{"line_number":543,"context_line":"section in Redfish service, the communication will be implemented in"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_651b3672","line":540,"range":{"start_line":539,"start_character":12,"end_line":540,"end_character":63},"updated":"2020-08-07 21:59:49.000000000","message":"The overall risk to this specification, in general, is the articulation of a much larger vision than the initial MVP and related functionality/substrate.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":536,"context_line":"intervention and decreasing configuration time\" [4]_."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The implementation transforms configuration between SCP data format and Ironic"},{"line_number":539,"context_line":"data format. In the first version (MVP), all SCP data is exported to and"},{"line_number":540,"context_line":"imported from ``oem`` section as-is without any transformation. In the"},{"line_number":541,"context_line":"following versions this will be improved to start using ``bios`` and ``raid``"},{"line_number":542,"context_line":"sections. The implementation will use Redfish protocol. As this is part of OEM"},{"line_number":543,"context_line":"section in Redfish service, the communication will be implemented in"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a10ac2ce","line":540,"range":{"start_line":539,"start_character":12,"end_line":540,"end_character":63},"in_reply_to":"9f560f44_651b3672","updated":"2020-08-20 14:22:59.000000000","message":"Do you mean that need to include only the things that will be in MVP of idrac\u0027s implementation? In any case the goal is to describe overall idea not only what will be in the MVP for idrac.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"When comparing configuration runtime using separate BIOS and RAID configuration"},{"line_number":550,"context_line":"jobs versus SCP approach on R640 the difference was 11 minutes versus 7 minutes"},{"line_number":551,"context_line":"where SCP was faster within one reboot."},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"Alternatives"},{"line_number":554,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_6549765e","line":551,"updated":"2020-08-07 21:59:49.000000000","message":"Question: Where was the time actually saved? Granted, your proposing a meta-step to perform two actions instead of a user defining both explicitly.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"When comparing configuration runtime using separate BIOS and RAID configuration"},{"line_number":550,"context_line":"jobs versus SCP approach on R640 the difference was 11 minutes versus 7 minutes"},{"line_number":551,"context_line":"where SCP was faster within one reboot."},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"Alternatives"},{"line_number":554,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_fb945039","line":551,"in_reply_to":"9f560f44_6549765e","updated":"2020-08-21 14:31:22.000000000","message":"On reboots and going from one step to another in Ironic - depending on how lucky one gets and how big interval is configured for periodic polling there is some time spent on checking async step result too. More steps added to complete what one step could do, more time spent on gaps between the steps. Internally for iDRAC SCP job vs separate jobs does not make much difference as it\u0027s doing the same thing in the end.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":584,"context_line":"Driver API impact"},{"line_number":585,"context_line":"-----------------"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"This defines new clean and deploy steps available to all drivers. These new"},{"line_number":588,"context_line":"steps are optional and do not affect drivers which do not implement them, yet,"},{"line_number":589,"context_line":"or may never do so."},{"line_number":590,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_e56e26c7","line":587,"range":{"start_line":587,"start_character":15,"end_line":587,"end_character":65},"updated":"2020-08-07 21:59:49.000000000","message":"So where would these news steps actually be housed because the steps, at least based on what has been proposed, seem like they would be on the idrac-redfish management interface.\n\nAs such, it seems like either this text, or the text describing the steps needs to be updated.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":584,"context_line":"Driver API impact"},{"line_number":585,"context_line":"-----------------"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"This defines new clean and deploy steps available to all drivers. These new"},{"line_number":588,"context_line":"steps are optional and do not affect drivers which do not implement them, yet,"},{"line_number":589,"context_line":"or may never do so."},{"line_number":590,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_7bc96057","line":587,"range":{"start_line":587,"start_character":15,"end_line":587,"end_character":65},"in_reply_to":"9f560f44_e56e26c7","updated":"2020-08-21 14:31:22.000000000","message":"Related to ln 80 comment, when implemented for each hardware type it will be in vendor module code, e.g, idrac-redfish management interface, otherwise they are on ManagementInterface with \u0027default\u0027 implementation (that does nothing or throws exception, related to ln 698 comment)","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":607,"context_line":"validation and clean up necessary for vendor specific implementation,"},{"line_number":608,"context_line":"for example, OEM section, then that needs to be added to driver\u0027s"},{"line_number":609,"context_line":"implementation."},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"Other end user impact"},{"line_number":612,"context_line":"---------------------"},{"line_number":613,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_05acfaea","line":610,"updated":"2020-08-07 21:59:49.000000000","message":"The proposed file storage is an additional potential security impact.\n\nAlso, multitnancy access, and potentially predictable filenames is another potential risk.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":607,"context_line":"validation and clean up necessary for vendor specific implementation,"},{"line_number":608,"context_line":"for example, OEM section, then that needs to be added to driver\u0027s"},{"line_number":609,"context_line":"implementation."},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"Other end user impact"},{"line_number":612,"context_line":"---------------------"},{"line_number":613,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a133e2aa","line":610,"in_reply_to":"9f560f44_05acfaea","updated":"2020-08-20 14:22:59.000000000","message":"Addressing this in main thread about storage security.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":611,"context_line":"Other end user impact"},{"line_number":612,"context_line":"---------------------"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"The configuration items can accumulate in the storage as there is no default"},{"line_number":615,"context_line":"timeout or logic that deletes them after a while because these configuration"},{"line_number":616,"context_line":"items should be available after node\u0027s cleaning or deployment. If user do not"},{"line_number":617,"context_line":"need the re-usable configuration items anymore, then user should delete those"},{"line_number":618,"context_line":"themselves from the storage directly."},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"This adds new configuration values to ``[default]`` section to control storage"},{"line_number":621,"context_line":"location. Default values are provided."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_c57fa263","line":618,"range":{"start_line":614,"start_character":0,"end_line":618,"end_character":37},"updated":"2020-08-07 21:59:49.000000000","message":"This just further supports why I think persistently storing the documents, combined with the security risks I\u0027ve identified, is a reason we should not be in the business of storing configuration profiles as files disk.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":611,"context_line":"Other end user impact"},{"line_number":612,"context_line":"---------------------"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"The configuration items can accumulate in the storage as there is no default"},{"line_number":615,"context_line":"timeout or logic that deletes them after a while because these configuration"},{"line_number":616,"context_line":"items should be available after node\u0027s cleaning or deployment. If user do not"},{"line_number":617,"context_line":"need the re-usable configuration items anymore, then user should delete those"},{"line_number":618,"context_line":"themselves from the storage directly."},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"This adds new configuration values to ``[default]`` section to control storage"},{"line_number":621,"context_line":"location. Default values are provided."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_61154ae5","line":618,"range":{"start_line":614,"start_character":0,"end_line":618,"end_character":37},"in_reply_to":"9f560f44_c57fa263","updated":"2020-08-20 14:22:59.000000000","message":"Can you elaborate on this? \"As files disk\"? The files/data will be stored in Swift or web server. What would be other options if not these?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"Depending on hardware type implementation, deployments can become faster."},{"line_number":632,"context_line":"When configuration storage data is processed, it is read in memory, but it is"},{"line_number":633,"context_line":"not expected that these storage items will be large."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"Other deployer impact"},{"line_number":636,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_458b9266","line":633,"updated":"2020-08-07 21:59:49.000000000","message":"There is an unidentified impact. Because these configuration changes would need to be before the actual deploy operation, a long-lived lock and thread will need to be consumed while this process executes. Which means potentially an operator may need to adjust the number of workers or suddenly has a long lived limit on how much concurrency they can leverage in their deployment.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"Depending on hardware type implementation, deployments can become faster."},{"line_number":632,"context_line":"When configuration storage data is processed, it is read in memory, but it is"},{"line_number":633,"context_line":"not expected that these storage items will be large."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"Other deployer impact"},{"line_number":636,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_dbd7cced","line":633,"in_reply_to":"9f560f44_458b9266","updated":"2020-08-21 14:31:22.000000000","message":"Added (in patch 13)","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":641,"context_line":"----------------"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"There will be new clean and deploy steps available that each driver can"},{"line_number":644,"context_line":"implement. They are optional and other developers can implement those at their"},{"line_number":645,"context_line":"own time if needed."},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_e5f10603","line":644,"range":{"start_line":644,"start_character":38,"end_line":644,"end_character":50},"updated":"2020-08-07 21:59:49.000000000","message":"s/developers/vendors/ ?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":641,"context_line":"----------------"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"There will be new clean and deploy steps available that each driver can"},{"line_number":644,"context_line":"implement. They are optional and other developers can implement those at their"},{"line_number":645,"context_line":"own time if needed."},{"line_number":646,"context_line":""},{"line_number":647,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_61ea6ad8","line":644,"range":{"start_line":644,"start_character":38,"end_line":644,"end_character":50},"in_reply_to":"9f560f44_e5f10603","updated":"2020-08-20 14:22:59.000000000","message":"This is inside \"Developer impact\". To avoid confusion used Developer. Or should the section be named \"Vendor impact\"?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":666,"context_line":"  base class, class ManagementInterface"},{"line_number":667,"context_line":"* Implement common functionality for configuration storage"},{"line_number":668,"context_line":"* Document new clean and deployment steps"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"* Implement initial idrac hardware type derivations of the new clean and"},{"line_number":671,"context_line":"  deployment steps which use the Redfish protocol (MVP)"},{"line_number":672,"context_line":"* Update the iDRAC driver documentation"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_c5cde2b7","line":669,"updated":"2020-08-07 21:59:49.000000000","message":"nit: empty line","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":666,"context_line":"  base class, class ManagementInterface"},{"line_number":667,"context_line":"* Implement common functionality for configuration storage"},{"line_number":668,"context_line":"* Document new clean and deployment steps"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"* Implement initial idrac hardware type derivations of the new clean and"},{"line_number":671,"context_line":"  deployment steps which use the Redfish protocol (MVP)"},{"line_number":672,"context_line":"* Update the iDRAC driver documentation"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_01b3ae0b","line":669,"in_reply_to":"9f560f44_c5cde2b7","updated":"2020-08-20 14:22:59.000000000","message":"Separate lists, reorganized.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":693,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":694,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"This change is designed to be backwards compatible. The new clean and deploy"},{"line_number":697,"context_line":"steps are optional. When an attempt to use them with a hardware type which does"},{"line_number":698,"context_line":"not implement them, an ``UnsupportedDriverExtension`` exception is raised."},{"line_number":699,"context_line":""},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_45b9d212","line":698,"range":{"start_line":696,"start_character":0,"end_line":698,"end_character":74},"updated":"2020-08-07 21:59:49.000000000","message":"I think I\u0027m going to need to set this in code because we shouldn\u0027t even be returning an un-available step into the list of steps if it is going to raise an exception.","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":693,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":694,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"This change is designed to be backwards compatible. The new clean and deploy"},{"line_number":697,"context_line":"steps are optional. When an attempt to use them with a hardware type which does"},{"line_number":698,"context_line":"not implement them, an ``UnsupportedDriverExtension`` exception is raised."},{"line_number":699,"context_line":""},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_dbf06c94","line":698,"range":{"start_line":696,"start_character":0,"end_line":698,"end_character":74},"in_reply_to":"9f560f44_45b9d212","updated":"2020-08-21 14:31:22.000000000","message":"Yes, this would be caught earlier when validating the steps. Currently idea being that if somehow something manages to call the code, it throws exception. Rephrased. See related comments for ln 80,587","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f8eda51cf25bc50530736e43260c10e476918018","unresolved":false,"context_lines":[{"line_number":709,"context_line":""},{"line_number":710,"context_line":"References"},{"line_number":711,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":712,"context_line":".. [0] https://docs.openstack.org/ironic/queens/admin/cleaning.html#cleaning-steps"},{"line_number":713,"context_line":".. [1] https://docs.openstack.org/ironic/latest/admin/node-deployment.html#node-deployment-deploy-steps"},{"line_number":714,"context_line":".. [2] https://docs.openstack.org/ironic/latest/admin/bios.html#apply-bios-configuration"},{"line_number":715,"context_line":".. [3] https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/raid_config_schema.json"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_71d77c4c","line":712,"range":{"start_line":712,"start_character":40,"end_line":712,"end_character":48},"updated":"2020-08-07 21:59:49.000000000","message":"Any chance this could be set to be the latest document instead of queens?","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cf0ee7f7206bb128ee0351d50762439de23376bb","unresolved":false,"context_lines":[{"line_number":709,"context_line":""},{"line_number":710,"context_line":"References"},{"line_number":711,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":712,"context_line":".. [0] https://docs.openstack.org/ironic/queens/admin/cleaning.html#cleaning-steps"},{"line_number":713,"context_line":".. [1] https://docs.openstack.org/ironic/latest/admin/node-deployment.html#node-deployment-deploy-steps"},{"line_number":714,"context_line":".. [2] https://docs.openstack.org/ironic/latest/admin/bios.html#apply-bios-configuration"},{"line_number":715,"context_line":".. [3] https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/raid_config_schema.json"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_61c38a58","line":712,"range":{"start_line":712,"start_character":40,"end_line":712,"end_character":48},"in_reply_to":"9f560f44_71d77c4c","updated":"2020-08-20 14:22:59.000000000","message":"updated","commit_id":"79d0d3e19b1048f8a09af3bb800b3cbb5d04d6d1"}],"specs/approved/predefined-system-hw-config-single-step.rst":[{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"d0bc0ae26fd483b3419249bb454cb6fc81b0bed5","unresolved":true,"context_lines":[{"line_number":51,"context_line":"wants all of their hardware configured the same."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* In ironic, that can be a tedious, error-prone task."},{"line_number":54,"context_line":"* Ironic is not capable of configuring all of the hardware subsystems for which"},{"line_number":55,"context_line":"  vendors offer configurability."},{"line_number":56,"context_line":"* Applying a configuration can take a great deal of time, often requiring"},{"line_number":57,"context_line":"  multiple reboots."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"fd83be21_c9715e9f","line":55,"range":{"start_line":54,"start_character":2,"end_line":55,"end_character":32},"updated":"2020-12-11 21:23:07.000000000","message":"in one step.\nThis proposal does not address any HW subsystems that Ironic can not manage.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"8371b736c31d6c2c3bb6ff0fb5ecd1aeaba831b7","unresolved":true,"context_lines":[{"line_number":51,"context_line":"wants all of their hardware configured the same."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* In ironic, that can be a tedious, error-prone task."},{"line_number":54,"context_line":"* Ironic is not capable of configuring all of the hardware subsystems for which"},{"line_number":55,"context_line":"  vendors offer configurability."},{"line_number":56,"context_line":"* Applying a configuration can take a great deal of time, often requiring"},{"line_number":57,"context_line":"  multiple reboots."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"d5e408a7_49b2a0ed","line":55,"range":{"start_line":54,"start_character":2,"end_line":55,"end_character":32},"in_reply_to":"334feee3_d1bad348","updated":"2021-02-03 11:02:16.000000000","message":"ok, clarified","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"b195ca4fbd0d92c4ba9adeb9ffeedb64b21e6d2e","unresolved":true,"context_lines":[{"line_number":51,"context_line":"wants all of their hardware configured the same."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* In ironic, that can be a tedious, error-prone task."},{"line_number":54,"context_line":"* Ironic is not capable of configuring all of the hardware subsystems for which"},{"line_number":55,"context_line":"  vendors offer configurability."},{"line_number":56,"context_line":"* Applying a configuration can take a great deal of time, often requiring"},{"line_number":57,"context_line":"  multiple reboots."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"334feee3_d1bad348","line":55,"range":{"start_line":54,"start_character":2,"end_line":55,"end_character":32},"in_reply_to":"bca2464c_44d0c74b","updated":"2021-01-28 13:29:38.000000000","message":"Aija, my point is that if Ironic does not address configuring some HW subsystem than this proposal should not address it either. But since Ironic does address it with vendor pass-thru is this bullet really true. Maybe it is better to state no direct API for HW subsystem configuration.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"69e5bcfb4fe462230f4b2d7cf88e3e6136124435","unresolved":true,"context_lines":[{"line_number":51,"context_line":"wants all of their hardware configured the same."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* In ironic, that can be a tedious, error-prone task."},{"line_number":54,"context_line":"* Ironic is not capable of configuring all of the hardware subsystems for which"},{"line_number":55,"context_line":"  vendors offer configurability."},{"line_number":56,"context_line":"* Applying a configuration can take a great deal of time, often requiring"},{"line_number":57,"context_line":"  multiple reboots."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"bca2464c_44d0c74b","line":55,"range":{"start_line":54,"start_character":2,"end_line":55,"end_character":32},"in_reply_to":"fd83be21_c9715e9f","updated":"2021-01-28 10:46:30.000000000","message":"we still propose OEM section (line 104) and in that, depending on vendor capabilities and implementation, more things can be added.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"d0bc0ae26fd483b3419249bb454cb6fc81b0bed5","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"configuration mold"},{"line_number":71,"context_line":"  A document which expresses the current or desired configuration of a hardware"},{"line_number":72,"context_line":"  system. It also offers an inventory of a system\u0027s hardware configuration."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This specification proposes to:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"7413000b_2fd2efe6","line":72,"range":{"start_line":72,"start_character":9,"end_line":72,"end_character":75},"updated":"2020-12-11 21:23:07.000000000","message":"Is that only applies to HW components that Ironic can handle or all HW components?\nFor example, ironic does not handle SNIC currently.\n\nI think you only cover currently handled Ironic components and more can be added as we go forward.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"b195ca4fbd0d92c4ba9adeb9ffeedb64b21e6d2e","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"configuration mold"},{"line_number":71,"context_line":"  A document which expresses the current or desired configuration of a hardware"},{"line_number":72,"context_line":"  system. It also offers an inventory of a system\u0027s hardware configuration."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This specification proposes to:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"d2163738_0209f10e","line":72,"range":{"start_line":72,"start_character":9,"end_line":72,"end_character":75},"in_reply_to":"504d046b_bbfaa95e","updated":"2021-01-28 13:29:38.000000000","message":"the same comment as above.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"69e5bcfb4fe462230f4b2d7cf88e3e6136124435","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"configuration mold"},{"line_number":71,"context_line":"  A document which expresses the current or desired configuration of a hardware"},{"line_number":72,"context_line":"  system. It also offers an inventory of a system\u0027s hardware configuration."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This specification proposes to:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"504d046b_bbfaa95e","line":72,"range":{"start_line":72,"start_character":9,"end_line":72,"end_character":75},"in_reply_to":"7413000b_2fd2efe6","updated":"2021-01-28 10:46:30.000000000","message":"same as above - OEM section still proposed and in that, depending on vendor capabilities and implementation, can provide more info.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"8371b736c31d6c2c3bb6ff0fb5ecd1aeaba831b7","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"configuration mold"},{"line_number":71,"context_line":"  A document which expresses the current or desired configuration of a hardware"},{"line_number":72,"context_line":"  system. It also offers an inventory of a system\u0027s hardware configuration."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This specification proposes to:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"7a7d80b1_3423ea3e","line":72,"range":{"start_line":72,"start_character":9,"end_line":72,"end_character":75},"in_reply_to":"d2163738_0209f10e","updated":"2021-02-03 11:02:16.000000000","message":"clarified above","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"d0bc0ae26fd483b3419249bb454cb6fc81b0bed5","unresolved":true,"context_lines":[{"line_number":101,"context_line":"  offering configuration support, again RAID and BIOS, is expressed as much as"},{"line_number":102,"context_line":"  possible in ironic terms."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"  To support hardware configuration beyond what ironic defines, but which"},{"line_number":105,"context_line":"  vendors, systems, and their hardware types could offer in a system-specific"},{"line_number":106,"context_line":"  manner, a third section, OEM, is proposed. The OEM section can also be used"},{"line_number":107,"context_line":"  to specify configuration ironic already supports. The content of the OEM"},{"line_number":108,"context_line":"  section is specific to the system and its hardware type."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  More details, along with an example, are in section"},{"line_number":111,"context_line":"  `Format of configuration data`_."}],"source_content_type":"text/x-rst","patch_set":18,"id":"950dcfa9_7707ea18","line":108,"range":{"start_line":104,"start_character":0,"end_line":108,"end_character":58},"updated":"2020-12-11 21:23:07.000000000","message":"good.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"225bcb5abd8e742ee5f30f8d5d3c5988b095bb2a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"  offering configuration support, again RAID and BIOS, is expressed as much as"},{"line_number":102,"context_line":"  possible in ironic terms."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"  To support hardware configuration beyond what ironic defines, but which"},{"line_number":105,"context_line":"  vendors, systems, and their hardware types could offer in a system-specific"},{"line_number":106,"context_line":"  manner, a third section, OEM, is proposed. The OEM section can also be used"},{"line_number":107,"context_line":"  to specify configuration ironic already supports. The content of the OEM"},{"line_number":108,"context_line":"  section is specific to the system and its hardware type."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  More details, along with an example, are in section"},{"line_number":111,"context_line":"  `Format of configuration data`_."}],"source_content_type":"text/x-rst","patch_set":18,"id":"b5b4a931_3b9b2173","line":108,"range":{"start_line":104,"start_character":0,"end_line":108,"end_character":58},"in_reply_to":"950dcfa9_7707ea18","updated":"2021-01-08 23:32:43.000000000","message":"Done","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"d0bc0ae26fd483b3419249bb454cb6fc81b0bed5","unresolved":true,"context_lines":[{"line_number":176,"context_line":"Stoppable"},{"line_number":177,"context_line":"  No"},{"line_number":178,"context_line":"Arguments"},{"line_number":179,"context_line":"  * URL of location to save the configuration to"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Sample of clean/deploy step configuration:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"26fc74d2_f193f269","line":179,"range":{"start_line":179,"start_character":0,"end_line":179,"end_character":48},"updated":"2020-12-11 21:23:07.000000000","message":"OK with it.\nExpect in a long run we will have another options where export URL will be returned.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"69e5bcfb4fe462230f4b2d7cf88e3e6136124435","unresolved":true,"context_lines":[{"line_number":176,"context_line":"Stoppable"},{"line_number":177,"context_line":"  No"},{"line_number":178,"context_line":"Arguments"},{"line_number":179,"context_line":"  * URL of location to save the configuration to"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Sample of clean/deploy step configuration:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"8c0ec0ae_f5216bf1","line":179,"range":{"start_line":179,"start_character":0,"end_line":179,"end_character":48},"in_reply_to":"26fc74d2_f193f269","updated":"2021-01-28 10:46:30.000000000","message":"do you mean the case where user does not provide location and system knows where to store it and returns location after it\u0027s done? If so, currently didn\u0027t go that route because in ironic clean/deploy steps don\u0027t return any custom output (alternative would be to store it on node, but that\u0027s not ideal either) and it does not go together with currently proposed storage solution where storage is outside of ironic and for each project/tenant/account it will be different and not persisted in ironic - user needs to tell ironic where to put it and where to get it from.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"b195ca4fbd0d92c4ba9adeb9ffeedb64b21e6d2e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Stoppable"},{"line_number":177,"context_line":"  No"},{"line_number":178,"context_line":"Arguments"},{"line_number":179,"context_line":"  * URL of location to save the configuration to"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Sample of clean/deploy step configuration:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"49323b76_2a4c6113","line":179,"range":{"start_line":179,"start_character":0,"end_line":179,"end_character":48},"in_reply_to":"8c0ec0ae_f5216bf1","updated":"2021-01-28 13:29:38.000000000","message":"That is what I was suggesting. That is, support for another model when URL is returned parameter not input one. But is cleaning steps do not support it - it is out of scope of this prposal.","commit_id":"dd77eb5fc77a727fe7344194850d717d8c6a4dce"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"28d742b1942b4eb28809b2816be8cbced629b2b6","unresolved":true,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Outline a minimum viable product (MVP) implementation by the ``idrac``"},{"line_number":130,"context_line":"  hardware type in section `idrac-redfish implementation`_. We aim for it to"},{"line_number":131,"context_line":"  offer all three (3) pairs of cleaning and deploy steps. In the MVP, only the"},{"line_number":132,"context_line":"  OEM *configuration mold* section will be supported. Both methods of"},{"line_number":133,"context_line":"  persistent *configuration mold* storage will be implemented and supported."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Illustrate possible implementation for generic ``redfish`` hardware type in"},{"line_number":136,"context_line":"  section `redfish implementation`_."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7622d9bb_c048b2a4","line":134,"range":{"start_line":131,"start_character":57,"end_line":134,"end_character":0},"updated":"2021-02-18 06:45:33.000000000","message":"Okay, no objection here. I think this was the consensus we kind of reached as a group to move this forward.","commit_id":"7f26d32a51aae8d7f9e5e26077ccf02bcbb36496"},{"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":"7d3962bdb415286bfcd52edae6b97d4248619275","unresolved":true,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"For Swift as end-user that initiates cleaning or deploying is different from"},{"line_number":516,"context_line":"the service user that actually does cleaning or deploying, it is necessary to"},{"line_number":517,"context_line":"save end-user\u0027s token so that ironic conductor (service user) can use that to"},{"line_number":518,"context_line":"access Swift. This way also ironic service user does not require access to all"},{"line_number":519,"context_line":"end user\u0027s storage that can pose a risk by, for example, guessing other"},{"line_number":520,"context_line":"tenant\u0027s URL and use that to get or save unauthorized data. To implement this:"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1ba0eafa_cb1a3b1c","line":517,"updated":"2021-02-16 18:52:52.000000000","message":"This was mentioned in the review jam today; but it\u0027s not acceptable for keystone tokens to be stored in the Ironic database.","commit_id":"7f26d32a51aae8d7f9e5e26077ccf02bcbb36496"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"6a90bce965e21de79a10facb03db72e38aea4750","unresolved":true,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"For Swift as end-user that initiates cleaning or deploying is different from"},{"line_number":516,"context_line":"the service user that actually does cleaning or deploying, it is necessary to"},{"line_number":517,"context_line":"save end-user\u0027s token so that ironic conductor (service user) can use that to"},{"line_number":518,"context_line":"access Swift. This way also ironic service user does not require access to all"},{"line_number":519,"context_line":"end user\u0027s storage that can pose a risk by, for example, guessing other"},{"line_number":520,"context_line":"tenant\u0027s URL and use that to get or save unauthorized data. To implement this:"}],"source_content_type":"text/x-rst","patch_set":19,"id":"503afe59_b7f57ddc","line":517,"in_reply_to":"1ba0eafa_cb1a3b1c","updated":"2021-03-10 11:01:45.000000000","message":"thanks Jay for pointing to snapshot spec. I took a look at it and it seems they have the same use case. I have updated this spec to use ironic\u0027s service to access Swift containers and added the known issue to Security impact section. Any feedback welcome.","commit_id":"7f26d32a51aae8d7f9e5e26077ccf02bcbb36496"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"02901ac8ba9e247f1e8dcbebef72c44602613f2b","unresolved":true,"context_lines":[{"line_number":461,"context_line":"  - Full URL points to Swift object within containers"},{"line_number":462,"context_line":"  - Access is restricted by projects/tenants/accounts"},{"line_number":463,"context_line":"  - HTTP GET and HTTP PUT used to get and store data"},{"line_number":464,"context_line":"  - Ironic service account has access to used containers"},{"line_number":465,"context_line":"  - User can manage *configuration molds* by accessing Swift container directly"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"- Web server is used as storage backend for ironic in stand-alone mode"}],"source_content_type":"text/x-rst","patch_set":20,"id":"e289a99f_381ec0ff","line":464,"updated":"2021-03-12 01:59:32.000000000","message":"Awesome, thanks!","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"02901ac8ba9e247f1e8dcbebef72c44602613f2b","unresolved":true,"context_lines":[{"line_number":516,"context_line":"the service user that actually does cleaning or deploying, it is necessary to"},{"line_number":517,"context_line":"allow ironic conductor (service user) access Swift containers used in steps."},{"line_number":518,"context_line":"There is security risk having access to all tenant containers that is described"},{"line_number":519,"context_line":"in `Security impact`_ section."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"Web server support"},{"line_number":522,"context_line":"++++++++++++++++++"}],"source_content_type":"text/x-rst","patch_set":20,"id":"b0bdfc03_135b2607","line":519,"updated":"2021-03-12 01:59:32.000000000","message":"It is far less than system-admin or admin project\u0027s tokens being exposed to the entire cloud 😊","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"02901ac8ba9e247f1e8dcbebef72c44602613f2b","unresolved":true,"context_lines":[{"line_number":686,"context_line":""},{"line_number":687,"context_line":"As cleaning/deploying is executed by ironic service account and not user that"},{"line_number":688,"context_line":"initiated clean or deploy, ironic service account needs access to used Swift"},{"line_number":689,"context_line":"containers provided by users. In multi-tenancy environment this could lead to"},{"line_number":690,"context_line":"accessing data not belonging to the tenant by, e.g., guessing or somehow"},{"line_number":691,"context_line":"finding out another tenant\u0027s URL and feeding that to ironic that has access to"},{"line_number":692,"context_line":"it while end-user does not. This needs to be addressed separately in future"},{"line_number":693,"context_line":"releases. There are possibly other use cases that are affected by this"}],"source_content_type":"text/x-rst","patch_set":20,"id":"ae418969_b6b1c80c","line":690,"range":{"start_line":689,"start_character":33,"end_line":690,"end_character":45},"updated":"2021-03-12 01:59:32.000000000","message":"nit: Multi-tenant, end-user accessible Ironic API.","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5bfc68aef70e9db0bd859c10e3b6e191f1e65ee7","unresolved":false,"context_lines":[{"line_number":686,"context_line":""},{"line_number":687,"context_line":"As cleaning/deploying is executed by ironic service account and not user that"},{"line_number":688,"context_line":"initiated clean or deploy, ironic service account needs access to used Swift"},{"line_number":689,"context_line":"containers provided by users. In multi-tenancy environment this could lead to"},{"line_number":690,"context_line":"accessing data not belonging to the tenant by, e.g., guessing or somehow"},{"line_number":691,"context_line":"finding out another tenant\u0027s URL and feeding that to ironic that has access to"},{"line_number":692,"context_line":"it while end-user does not. This needs to be addressed separately in future"},{"line_number":693,"context_line":"releases. There are possibly other use cases that are affected by this"}],"source_content_type":"text/x-rst","patch_set":20,"id":"d8be5e5b_bc53dc38","line":690,"range":{"start_line":689,"start_character":33,"end_line":690,"end_character":45},"in_reply_to":"ae418969_b6b1c80c","updated":"2021-03-15 18:22:16.000000000","message":"Done","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"02901ac8ba9e247f1e8dcbebef72c44602613f2b","unresolved":true,"context_lines":[{"line_number":689,"context_line":"containers provided by users. In multi-tenancy environment this could lead to"},{"line_number":690,"context_line":"accessing data not belonging to the tenant by, e.g., guessing or somehow"},{"line_number":691,"context_line":"finding out another tenant\u0027s URL and feeding that to ironic that has access to"},{"line_number":692,"context_line":"it while end-user does not. This needs to be addressed separately in future"},{"line_number":693,"context_line":"releases. There are possibly other use cases that are affected by this"},{"line_number":694,"context_line":"limitation and would benefit from addressing this."},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"14884568_bfb16260","line":693,"range":{"start_line":692,"start_character":28,"end_line":693,"end_character":9},"updated":"2021-03-12 01:59:32.000000000","message":"Fully agreed. Of course, as luck would have it, Ironic\u0027s account in many cases *should* have less rights than most API consumers. One thing, I would  prefer that you explicitly state what *this* is, instead of starting the sentence with \"This\".  I recommend you do that as a follow-up. FWIW, the solution for this is Application Credentials.\n\nhttps://docs.openstack.org/keystone/latest/user/application_credentials.html","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5bfc68aef70e9db0bd859c10e3b6e191f1e65ee7","unresolved":false,"context_lines":[{"line_number":689,"context_line":"containers provided by users. In multi-tenancy environment this could lead to"},{"line_number":690,"context_line":"accessing data not belonging to the tenant by, e.g., guessing or somehow"},{"line_number":691,"context_line":"finding out another tenant\u0027s URL and feeding that to ironic that has access to"},{"line_number":692,"context_line":"it while end-user does not. This needs to be addressed separately in future"},{"line_number":693,"context_line":"releases. There are possibly other use cases that are affected by this"},{"line_number":694,"context_line":"limitation and would benefit from addressing this."},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"19b84117_c71c04d9","line":693,"range":{"start_line":692,"start_character":28,"end_line":693,"end_character":9},"in_reply_to":"14884568_bfb16260","updated":"2021-03-15 18:22:16.000000000","message":"Done, thank you for the pointer.","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d0b770fc907bde2335bac0938e587b70c4f3b465","unresolved":true,"context_lines":[{"line_number":701,"context_line":"items should be available after node\u0027s cleaning or deployment. If user do not"},{"line_number":702,"context_line":"need the re-usable configuration items anymore, then user should delete those"},{"line_number":703,"context_line":"themselves from the storage."},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"This adds new configuration values to ``[default]`` section to control storage"},{"line_number":706,"context_line":"location. Default values are provided."},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"Scalability impact"},{"line_number":709,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"6d0566ec_6803326f","line":706,"range":{"start_line":704,"start_character":0,"end_line":706,"end_character":38},"updated":"2021-03-12 16:20:18.000000000","message":"I\u0027m not sure this is what the code, at least the code I looked at last night did, but it is also an implementation detail that can be sorted in review.","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5bfc68aef70e9db0bd859c10e3b6e191f1e65ee7","unresolved":false,"context_lines":[{"line_number":701,"context_line":"items should be available after node\u0027s cleaning or deployment. If user do not"},{"line_number":702,"context_line":"need the re-usable configuration items anymore, then user should delete those"},{"line_number":703,"context_line":"themselves from the storage."},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"This adds new configuration values to ``[default]`` section to control storage"},{"line_number":706,"context_line":"location. Default values are provided."},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"Scalability impact"},{"line_number":709,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3cd28af9_ce1904e9","line":706,"range":{"start_line":704,"start_character":0,"end_line":706,"end_character":38},"in_reply_to":"6d0566ec_6803326f","updated":"2021-03-15 18:22:16.000000000","message":"Ack","commit_id":"2f4edc8320a0594402c41d44ebe4368ec43a5f16"}],"specs/approved/whole-system-configuration-steps.rst":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"5d1d8f46d4f3545bfd8ed7414668ef629ce1a610","unresolved":false,"context_lines":[{"line_number":480,"context_line":"``Components`` section there are attributes listed that can be applied during"},{"line_number":481,"context_line":"import and is controlled by ``Set On Import`` property."},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"Storage of configuration data"},{"line_number":484,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"Common functionality among hardware types is the configuration storage and will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_db518cdb","line":483,"range":{"start_line":483,"start_character":0,"end_line":483,"end_character":29},"updated":"2020-08-21 14:31:22.000000000","message":"This section is waiting for preliminary approval about direction to go. It will be improved to meet security requirements.","commit_id":"5d22e9616193b5500c4f0ca4a85257e5754cbe42"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"ee1fbad689eec98e1a25602d4a4b1e83b6ae6d7b","unresolved":false,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":".. code-block::"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"  [default]use_swift"},{"line_number":495,"context_line":"  [default]configuration_storage_dir"},{"line_number":496,"context_line":"  [default]file_permission"},{"line_number":497,"context_line":"  [default]http_root"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_a300ee35","line":494,"updated":"2020-08-21 19:15:28.000000000","message":"Maybe change the above to something like:\nmold_storage\u003dswift\nThat would allow addition of other stores without having to add additional settings.","commit_id":"5d22e9616193b5500c4f0ca4a85257e5754cbe42"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"af3d54582ae1b4c5d64d83d2eab99ada3aa245a7","unresolved":false,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":".. code-block::"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"  [default]use_swift"},{"line_number":495,"context_line":"  [default]configuration_storage_dir"},{"line_number":496,"context_line":"  [default]file_permission"},{"line_number":497,"context_line":"  [default]http_root"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_7e1ad27c","line":494,"in_reply_to":"9f560f44_a300ee35","updated":"2020-08-24 13:48:47.000000000","message":"changed and updated to mention possibility to support other storage providers. Will detail more when this section gets updated about secure storage.","commit_id":"5d22e9616193b5500c4f0ca4a85257e5754cbe42"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"ee1fbad689eec98e1a25602d4a4b1e83b6ae6d7b","unresolved":false,"context_lines":[{"line_number":739,"context_line":".. [1] https://docs.openstack.org/ironic/latest/admin/node-deployment.html#node-deployment-deploy-steps"},{"line_number":740,"context_line":".. [2] https://docs.openstack.org/ironic/latest/admin/bios.html#apply-bios-configuration"},{"line_number":741,"context_line":".. [3] https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/raid_config_schema.json"},{"line_number":742,"context_line":".. [4] https://downloads.dell.com/solutions/dell-management-solution-resources/ServerCloning_SCP%20v2_50%28DTC%20copy%29.pdf"},{"line_number":743,"context_line":".. [5] https://docs.openstack.org/ironic/latest/admin/cleaning.html"},{"line_number":744,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_c30d223f","line":742,"updated":"2020-08-21 19:15:28.000000000","message":"Looks like the above link may not be correct.","commit_id":"5d22e9616193b5500c4f0ca4a85257e5754cbe42"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"af3d54582ae1b4c5d64d83d2eab99ada3aa245a7","unresolved":false,"context_lines":[{"line_number":739,"context_line":".. [1] https://docs.openstack.org/ironic/latest/admin/node-deployment.html#node-deployment-deploy-steps"},{"line_number":740,"context_line":".. [2] https://docs.openstack.org/ironic/latest/admin/bios.html#apply-bios-configuration"},{"line_number":741,"context_line":".. [3] https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/raid_config_schema.json"},{"line_number":742,"context_line":".. [4] https://downloads.dell.com/solutions/dell-management-solution-resources/ServerCloning_SCP%20v2_50%28DTC%20copy%29.pdf"},{"line_number":743,"context_line":".. [5] https://docs.openstack.org/ironic/latest/admin/cleaning.html"},{"line_number":744,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_6104f715","line":742,"in_reply_to":"9f560f44_3e45fab4","updated":"2020-08-24 13:48:47.000000000","message":"np, in any case updated to the link that has more comprehensive description about SCP and how it can be used.","commit_id":"5d22e9616193b5500c4f0ca4a85257e5754cbe42"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"f9f0a4292db53b125e038e1fe6074a1db4252976","unresolved":false,"context_lines":[{"line_number":739,"context_line":".. [1] https://docs.openstack.org/ironic/latest/admin/node-deployment.html#node-deployment-deploy-steps"},{"line_number":740,"context_line":".. [2] https://docs.openstack.org/ironic/latest/admin/bios.html#apply-bios-configuration"},{"line_number":741,"context_line":".. [3] https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/raid_config_schema.json"},{"line_number":742,"context_line":".. [4] https://downloads.dell.com/solutions/dell-management-solution-resources/ServerCloning_SCP%20v2_50%28DTC%20copy%29.pdf"},{"line_number":743,"context_line":".. [5] https://docs.openstack.org/ironic/latest/admin/cleaning.html"},{"line_number":744,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_3e45fab4","line":742,"in_reply_to":"9f560f44_c30d223f","updated":"2020-08-24 13:31:36.000000000","message":"Please disregard the above comment. Looks like the issue that I was having going to link above was a server side issue because it\u0027s working fine now.","commit_id":"5d22e9616193b5500c4f0ca4a85257e5754cbe42"}]}
