)]}'
{"specs/approved/inspector-network-separation.rst":[{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"19987844800f6466f2a2bea521b25f6832139b10","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   This option allows an operator to state that the network flip is always"},{"line_number":41,"context_line":"   required for all nodes. If it\u0027s set to ``True``, in-band inspection will"},{"line_number":42,"context_line":"   fail for nodes without a port or a portgroup with ``pxe_enabled`` flag set."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_c91c24c4","line":43,"updated":"2016-05-24 08:46:57.000000000","message":"I\u0027d suggest adding a note here such as:\nPlease note that since the ``network.{add,remove}_provisioning_network`` API is internal to Ironic, Inspector can\u0027t utilize it directly. Therefore Inspector\u0027s API endpoint ``POST@/v1/introspection/\u003cnode_id\u003e/`` won\u0027t work with network separation regardless of this proposed change.","commit_id":"16ae434c5c2d7a70b878308986974ee3deb3f03f"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"27fc1972c82a93c66ffa45630783ce9a68f1ed65","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Currently Ironic Inspector does not require ports to be present to conduct"},{"line_number":27,"context_line":"inspection. However, to solve the stated problem we will need the PXE-booting"},{"line_number":28,"context_line":"port to be enrolled and configured with the physical switch information. This"},{"line_number":29,"context_line":"information can be entered manually. Alternatively, in-band inspection can be"},{"line_number":30,"context_line":"conducted the first time with a manual network flip."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Modify InspectorInspect to check if a port or a portgroup with"},{"line_number":33,"context_line":"   ``pxe_enabled`` is created for the node. If so, use"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_a4b9ecee","line":30,"range":{"start_line":29,"start_character":37,"end_line":30,"end_character":52},"updated":"2016-05-24 15:17:49.000000000","message":"Looks like should be moved to alternatives.","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d40eb55e4d614f2ec4e21ddb43fc6a8f17aeb401","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Currently Ironic Inspector does not require ports to be present to conduct"},{"line_number":27,"context_line":"inspection. However, to solve the stated problem we will need the PXE-booting"},{"line_number":28,"context_line":"port to be enrolled and configured with the physical switch information. This"},{"line_number":29,"context_line":"information can be entered manually. Alternatively, in-band inspection can be"},{"line_number":30,"context_line":"conducted the first time with a manual network flip."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Modify InspectorInspect to check if a port or a portgroup with"},{"line_number":33,"context_line":"   ``pxe_enabled`` is created for the node. If so, use"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_7b45a115","line":30,"range":{"start_line":29,"start_character":37,"end_line":30,"end_character":52},"in_reply_to":"bab6814e_a4b9ecee","updated":"2016-06-07 11:55:59.000000000","message":"This is not an alternative to the spec, just to the previous sentence (will clarify)","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"27fc1972c82a93c66ffa45630783ce9a68f1ed65","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   If it\u0027s ``True``, make the above action required."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   This option allows an operator to state that the network flip is always"},{"line_number":41,"context_line":"   required for all nodes. If it\u0027s set to ``True``, in-band inspection will"},{"line_number":42,"context_line":"   fail for nodes without a port or a portgroup with ``pxe_enabled`` flag set."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Note that since the ``network.{add,remove}_provisioning_network`` API is"},{"line_number":45,"context_line":"internal to Ironic, Inspector can\u0027t utilize it. Therefore network flipping"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_e49e5406","line":42,"range":{"start_line":41,"start_character":52,"end_line":42,"end_character":68},"updated":"2016-05-24 15:17:49.000000000","message":"Theoretically virtual media feature can be used for boot w/o pxe support, but this is out of scope of this spec.","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d40eb55e4d614f2ec4e21ddb43fc6a8f17aeb401","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   If it\u0027s ``True``, make the above action required."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   This option allows an operator to state that the network flip is always"},{"line_number":41,"context_line":"   required for all nodes. If it\u0027s set to ``True``, in-band inspection will"},{"line_number":42,"context_line":"   fail for nodes without a port or a portgroup with ``pxe_enabled`` flag set."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Note that since the ``network.{add,remove}_provisioning_network`` API is"},{"line_number":45,"context_line":"internal to Ironic, Inspector can\u0027t utilize it. Therefore network flipping"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_7bb801e6","line":42,"range":{"start_line":41,"start_character":52,"end_line":42,"end_character":68},"in_reply_to":"bab6814e_e49e5406","updated":"2016-06-07 11:55:59.000000000","message":"No, that\u0027s a very good point actually. I\u0027ll remove references to pxe_enabled and let the DHCP implementation figure it out.","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"27fc1972c82a93c66ffa45630783ce9a68f1ed65","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other end user impact"},{"line_number":106,"context_line":"---------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Scalability impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_8493084f","line":107,"updated":"2016-05-24 15:17:49.000000000","message":"User must add physical connections info to port before use this feature.","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d40eb55e4d614f2ec4e21ddb43fc6a8f17aeb401","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other end user impact"},{"line_number":106,"context_line":"---------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Scalability impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_1b4bbdca","line":107,"in_reply_to":"bab6814e_8493084f","updated":"2016-06-07 11:55:59.000000000","message":"Done","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"27fc1972c82a93c66ffa45630783ce9a68f1ed65","unresolved":false,"context_lines":[{"line_number":163,"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":164,"context_line":""},{"line_number":165,"context_line":"The default behaviour will not change for nodes enrolled without ports."},{"line_number":166,"context_line":"However, if ports with ``pxe_enabled`` are present on a node, inspection"},{"line_number":167,"context_line":"will start using network separation features."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Documentation Impact"},{"line_number":170,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_c7a992e1","line":167,"range":{"start_line":166,"start_character":9,"end_line":167,"end_character":45},"updated":"2016-05-24 15:17:49.000000000","message":"There is conflict with behavior defined in l37-42.","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d40eb55e4d614f2ec4e21ddb43fc6a8f17aeb401","unresolved":false,"context_lines":[{"line_number":163,"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":164,"context_line":""},{"line_number":165,"context_line":"The default behaviour will not change for nodes enrolled without ports."},{"line_number":166,"context_line":"However, if ports with ``pxe_enabled`` are present on a node, inspection"},{"line_number":167,"context_line":"will start using network separation features."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Documentation Impact"},{"line_number":170,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_5b7a65f2","line":167,"range":{"start_line":166,"start_character":9,"end_line":167,"end_character":45},"in_reply_to":"bab6814e_c7a992e1","updated":"2016-06-07 11:55:59.000000000","message":"Where do you see the conflict? The require_network_flip option is False by default, so lines 37-42 do not applyl","commit_id":"0b3c72b8fd9ff761517a0df038e93757e700d703"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"1cf832425c630a4ac16bde9755e4d3715a0e0c00","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Modify ``InspectorInspect`` to use ``network.add_provisioning_network``"},{"line_number":27,"context_line":"before and ``network.remove_provisioning_network`` after inspection."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Currently Ironic Inspector does not require ports, port groups or local"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_e9aebc96","line":26,"range":{"start_line":26,"start_character":9,"end_line":26,"end_character":25},"updated":"2017-06-01 03:48:13.000000000","message":"this symbol does not exists, are you referring to inspector.Inspector?","commit_id":"f9e93026e2792dfe568545bba53334117d176dd3"},{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"42169fec7c27dba4a70fc166739b1b875e7c9a53","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Modify ``InspectorInspect`` to use ``network.add_provisioning_network``"},{"line_number":27,"context_line":"before and ``network.remove_provisioning_network`` after inspection."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Currently Ironic Inspector does not require ports, port groups or local"},{"line_number":30,"context_line":"link information to be present to conduct inspection. However, to use network"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_afefa61b","line":27,"range":{"start_line":26,"start_character":7,"end_line":27,"end_character":50},"updated":"2016-06-17 13:36:55.000000000","message":"Is this triggered automatically for all but flat/none drivers? Shouldn\u0027t a custom driver decide on its own whether or not to call these?","commit_id":"f9e93026e2792dfe568545bba53334117d176dd3"},{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"42169fec7c27dba4a70fc166739b1b875e7c9a53","unresolved":false,"context_lines":[{"line_number":33,"context_line":"* entered manually by an operator"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* inspected initially with a node manually put on the right network and"},{"line_number":36,"context_line":"  the network driver set to ``flat`` or ``none``."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. note::"},{"line_number":39,"context_line":"    Since the ``network.{add,remove}_provisioning_network`` API is"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_f4b0658d","line":36,"range":{"start_line":36,"start_character":28,"end_line":36,"end_character":48},"updated":"2016-06-17 13:36:55.000000000","message":"I\u0027m wondering what\u0027s the difference here; should there be a flat option at all? Maybe none\u0026custom are sufficient?","commit_id":"f9e93026e2792dfe568545bba53334117d176dd3"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"fa04db9a7be31173cefd6feec19d195531c65464","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Expose the network interface in Ironic API and make Inspector use it."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We could use a cleaning network instead of a provisioning one. It would be"},{"line_number":52,"context_line":"  inconsistent with how inspection works right now though. There will be a"},{"line_number":53,"context_line":"  high potential of breaking the in-band inspection without ports enrolled."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_5af762d4","line":51,"updated":"2016-06-15 12:09:47.000000000","message":"or an inspecting network? (operators could set all 3 to be the same, but it would provide flexibility).","commit_id":"f9e93026e2792dfe568545bba53334117d176dd3"},{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"42169fec7c27dba4a70fc166739b1b875e7c9a53","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Expose the network interface in Ironic API and make Inspector use it."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We could use a cleaning network instead of a provisioning one. It would be"},{"line_number":52,"context_line":"  inconsistent with how inspection works right now though. There will be a"},{"line_number":53,"context_line":"  high potential of breaking the in-band inspection without ports enrolled."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7aa08908_54d5f940","line":51,"in_reply_to":"7aa08908_5af762d4","updated":"2016-06-17 13:36:55.000000000","message":"I like this idea, esp. if it\u0027s a non-tagged network, enabled as a default on all relevant switch ports, in-band inspection/discovery might work out of the box supposing deployment works over the same net (or virtual media was used if deploy net was tagged/different from inspection net?)\nI\u0027d suggest it to be named discovery network.\nLater on, if in-band introspection is requested, the network driver can flip the switch ports back and forth to this discovery network.","commit_id":"f9e93026e2792dfe568545bba53334117d176dd3"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"d0c31a42ac586012ca4576f3981fb6dfdf841f20","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"With the ``neutron`` network interface nodes are no longer constantly connected"},{"line_number":20,"context_line":"to the provisioning network. We need to connect them manuallyh before in-band"},{"line_number":21,"context_line":"inspection, which is inconvenient and error-prone."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fdfeff1_69452470","line":19,"range":{"start_line":19,"start_character":38,"end_line":19,"end_character":39},"updated":"2019-02-07 18:40:01.000000000","message":"nit: do we need a comma here?","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"With the ``neutron`` network interface nodes are no longer constantly connected"},{"line_number":20,"context_line":"to the provisioning network. We need to connect them manuallyh before in-band"},{"line_number":21,"context_line":"inspection, which is inconvenient and error-prone."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_71ed5824","line":20,"range":{"start_line":20,"start_character":29,"end_line":20,"end_character":52},"updated":"2019-01-04 22:59:28.000000000","message":"Why can\u0027t an operator default the discovery network default to whatever the port default pvid is? That would effectively put them on that network whenever there is no network port configuration.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d0b5c33d690649c3c6d8e4d574bd513f74f6ffc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"With the ``neutron`` network interface nodes are no longer constantly connected"},{"line_number":20,"context_line":"to the provisioning network. We need to connect them manuallyh before in-band"},{"line_number":21,"context_line":"inspection, which is inconvenient and error-prone."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a7a0a2a4","line":20,"range":{"start_line":20,"start_character":53,"end_line":20,"end_character":62},"updated":"2018-12-10 06:26:28.000000000","message":"nit: manually","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0e9dc095b4e162381ae692b813a07553c8e637eb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"With the ``neutron`` network interface nodes are no longer constantly connected"},{"line_number":20,"context_line":"to the provisioning network. We need to connect them manuallyh before in-band"},{"line_number":21,"context_line":"inspection, which is inconvenient and error-prone."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_5f9e0d08","line":20,"range":{"start_line":20,"start_character":29,"end_line":20,"end_character":52},"in_reply_to":"dfd5e7cf_71ed5824","updated":"2019-01-07 10:41:57.000000000","message":"Well, people I talked to didn\u0027t want to do it when they have a BMaaS solution.\n\nAlso at least networking-ansible removes all VLAN configuration from ports between deployments.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    .. note::"},{"line_number":38,"context_line":"      This is to prevent Neutron\u0027s DHCP server from conflicting with"},{"line_number":39,"context_line":"      ironic-inspector\u0027s one. We will recommend not putting ironic-inspector\u0027s"},{"line_number":40,"context_line":"      DHCP server on the inspection network in this case."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  * For the ``flat`` and ``noop`` network interfaces they will be no-op, since"},{"line_number":43,"context_line":"    in the case we expect ironic-inspector to handle everything itself"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_51d13457","line":40,"updated":"2019-01-04 22:59:28.000000000","message":"Could we default this to be able to be used with the provisioning network? That way were just setting the dhcp parameters and possibly... eventually... managing boot?","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0e9dc095b4e162381ae692b813a07553c8e637eb","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    .. note::"},{"line_number":38,"context_line":"      This is to prevent Neutron\u0027s DHCP server from conflicting with"},{"line_number":39,"context_line":"      ironic-inspector\u0027s one. We will recommend not putting ironic-inspector\u0027s"},{"line_number":40,"context_line":"      DHCP server on the inspection network in this case."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  * For the ``flat`` and ``noop`` network interfaces they will be no-op, since"},{"line_number":43,"context_line":"    in the case we expect ironic-inspector to handle everything itself"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_df919df3","line":40,"in_reply_to":"dfd5e7cf_51d13457","updated":"2019-01-07 10:41:57.000000000","message":"I\u0027m all for it, but we don\u0027t do it with cleaning and rescuing where it makes exactly as much sense as here. Why special-case inspect_network?","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* To allow specifying the DHCP options (which are normally hardcoded in the"},{"line_number":51,"context_line":"  ironic-inspector\u0027s configuration files), add a new ``driver_info`` parameter"},{"line_number":52,"context_line":"  ``driver_info[inspector_dhcp_opts]`` and ``[inspector]dhcp_opts`` (the former"},{"line_number":53,"context_line":"  takes priority, if present). These options will be passed from ``Inspector``"},{"line_number":54,"context_line":"  inspect interface to ``add_inspection_network``."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_513614b7","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":79},"updated":"2019-01-04 22:59:28.000000000","message":"I\u0027d really like to see an example of what is being proposed for the data to fit into these fields.  Mainly inquiring because of my experience with ipv4/ipv6 differences.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0e9dc095b4e162381ae692b813a07553c8e637eb","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* To allow specifying the DHCP options (which are normally hardcoded in the"},{"line_number":51,"context_line":"  ironic-inspector\u0027s configuration files), add a new ``driver_info`` parameter"},{"line_number":52,"context_line":"  ``driver_info[inspector_dhcp_opts]`` and ``[inspector]dhcp_opts`` (the former"},{"line_number":53,"context_line":"  takes priority, if present). These options will be passed from ``Inspector``"},{"line_number":54,"context_line":"  inspect interface to ``add_inspection_network``."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_5fb7ed87","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":79},"in_reply_to":"dfd5e7cf_513614b7","updated":"2019-01-07 10:41:57.000000000","message":"Well, I surely don\u0027t have a working example for IPv6 :) I can cargo-cult something from puppet-ironic.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8d0b5c33d690649c3c6d8e4d574bd513f74f6ffc","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_479d0e53","line":71,"updated":"2018-12-10 06:26:28.000000000","message":"this is the exact issue we are facing in the multitenant network, I wonder if there is a way we can utilize neutron dhcp service even we don\u0027t have mac address?","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"627f6172988bc02a3822437d82ab20f83f240f80","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_8aaab8cd","line":71,"in_reply_to":"3f79a3b5_30b24333","updated":"2018-12-17 17:00:46.000000000","message":"I suggest we explicitly decouple the initial discovery from subsequent inspections. We might have different assumptions in each case.\n\nI should be able to PXE boot a node on the inspection network (or perhaps a separate discovery network?) without it being previously registered in ironic.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d2c8562112461c240565c7c0764d9bad1e25cdc8","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_7e63ecde","line":71,"in_reply_to":"3f79a3b5_479d0e53","updated":"2018-12-10 12:39:00.000000000","message":"I think Sam tried pushing Neutron features to allow that, but then it got stuck. I guess there are technical challenges to it.\n\nI understand it\u0027s a bit limited, but in my experience customers know MAC addresses and local_link_connection information up front.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"780f5c59e5b50ca4fddf5176ca50712739437a01","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_30b24333","line":71,"in_reply_to":"3f79a3b5_6dcf88b6","updated":"2018-12-12 16:56:09.000000000","message":"Agreed, it\u0027s beyond the scope of this spec.\n\nI think if we implemented this as described in this spec, the not-relying on link_local_connection idea could be implemented in Neutron/ML2 drivers later and things would just work without additional changes in Ironic and/or Inspector.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dd9b8690bdd03ad6c5a022877e645cc20b30a072","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_6dcf88b6","line":71,"in_reply_to":"3f79a3b5_74c75d9c","updated":"2018-12-12 16:25:47.000000000","message":"I\u0027m not sure I quite understood the proposal, but it seem to go vastly beyond the scope of this spec, including changing ML2 drivers, right?","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"b2865d5bf42fd9bb5aba1a39dbc1c4873a140bb2","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b7f74cd2","line":71,"in_reply_to":"3f79a3b5_7e63ecde","updated":"2018-12-11 13:17:02.000000000","message":"Can we get the MAC addresses via the BMC out-of-band, before powering on the node? (I guess it\u0027s a bit of depends on the hardware ...)\n\ni.e\n1. Get MAC from BMC\n2. Create Neutron port in ``inspection_network``\n3. Set the DHCP opts on the Neutron port using ``extra_dhcp_opts``\n\nAltough, since we still need the operator to provide the local_link_connection info asking for the MAC address as well is\u0027t unresonable ...","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_b169808c","line":71,"in_reply_to":"3f79a3b5_8aaab8cd","updated":"2019-01-04 22:59:28.000000000","message":"I concur with Mark. I also like the MAC based vlan idea at least for finding nodes, but that is an ml2 driver implementation detail. I think it would also depend on the switch forwarding table. I think lower end managed switches can only support a smaller number of mac based vlans typically, where as port based has greater security because we\u0027re no longer trusting that the mac is always going to be the same and not leaked across instances and then used for an attack elsewhere on the network.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"b69580798ca80a336f087a4c5549040fef022d1f","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_74c75d9c","line":71,"in_reply_to":"3f79a3b5_97b490d4","updated":"2018-12-12 07:59:23.000000000","message":"I wonder if MAC based vlans would be an option.\nMany switches support configuring a map of MAC addresses to VLAN, and will place traffic onto VLANs based on the MAC address.\n\nSome switches may need 802.1x authentication configured with MAB (MAC Authentication Bypass) and an external RADIUS server would have to keep the map ...\n\nJuniper example:\nauthenticator {\n    static {\n        00:d0:e9:00:00:00/24 {\n            vlan-assignment inspection;\n        }\n}\n\nThe idea would be to have ML2 driver fall back to MAC based VLAN assignment if link_local_connection data is not available?","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9f48d06235fec31797744164062be3ca95dae143","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* inspected initially with a node manually put on the right network and the"},{"line_number":70,"context_line":"  network interface set to ``flat`` or ``noop``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Example workflow"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_97b490d4","line":71,"in_reply_to":"3f79a3b5_b7f74cd2","updated":"2018-12-11 13:24:49.000000000","message":"Yeah, we can use OOB inspection first (when supported), but local_link_connection still has to be populated. This is not something we can work around for now.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"d0c31a42ac586012ca4576f3981fb6dfdf841f20","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   outside of the ``inspection_network`` (if a separate network is used for"},{"line_number":83,"context_line":"   nodes with the ``flat`` network interface, it is kept there)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. An operator configures ``dhcp_opts`` to match point booted nodes at"},{"line_number":86,"context_line":"   ironic-inspector\u0027s PXE environment, for example, by adapting `puppet-ironic"},{"line_number":87,"context_line":"   dnsmasq templates`_."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fdfeff1_248c237e","line":85,"range":{"start_line":85,"start_character":43,"end_line":85,"end_character":54},"updated":"2019-02-07 18:40:01.000000000","message":"/me is not sure what \u0027match point\u0027 means in the non-tennis context","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   outside of the ``inspection_network`` (if a separate network is used for"},{"line_number":83,"context_line":"   nodes with the ``flat`` network interface, it is kept there)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. An operator configures ``dhcp_opts`` to match point booted nodes at"},{"line_number":86,"context_line":"   ironic-inspector\u0027s PXE environment, for example, by adapting `puppet-ironic"},{"line_number":87,"context_line":"   dnsmasq templates`_."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"#. An operator enrolls nodes with ``network_interface`` set to ``neutron`` and"},{"line_number":90,"context_line":"   at least one port with ``local_link_connection`` populated per node."}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_31135010","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":23},"updated":"2019-01-04 22:59:28.000000000","message":"I think we need an example of dhcp_ops before we merge this spec, even if it is just in discusison and added in follow-up.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0e9dc095b4e162381ae692b813a07553c8e637eb","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   outside of the ``inspection_network`` (if a separate network is used for"},{"line_number":83,"context_line":"   nodes with the ``flat`` network interface, it is kept there)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. An operator configures ``dhcp_opts`` to match point booted nodes at"},{"line_number":86,"context_line":"   ironic-inspector\u0027s PXE environment, for example, by adapting `puppet-ironic"},{"line_number":87,"context_line":"   dnsmasq templates`_."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"#. An operator enrolls nodes with ``network_interface`` set to ``neutron`` and"},{"line_number":90,"context_line":"   at least one port with ``local_link_connection`` populated per node."}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_dfaafd17","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":23},"in_reply_to":"dfd5e7cf_31135010","updated":"2019-01-07 10:41:57.000000000","message":"Will do","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"627f6172988bc02a3822437d82ab20f83f240f80","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"* Expose the network interface in Ironic API and make Inspector use it."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* Implement full support for using boot interfaces in the ``Inspector`` inspect"},{"line_number":125,"context_line":"  interface. The relevant spec was approved, but has been withdrawn due to"},{"line_number":126,"context_line":"  implementation complexity. This spec provides a lightweight variant of it."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Data model impact"},{"line_number":129,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e0f6eb92","line":126,"range":{"start_line":124,"start_character":2,"end_line":126,"end_character":76},"updated":"2018-12-17 17:00:46.000000000","message":"Is there a path forward to using boot interfaces? That could be useful in environments with heterogeneous node types.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"* Expose the network interface in Ironic API and make Inspector use it."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* Implement full support for using boot interfaces in the ``Inspector`` inspect"},{"line_number":125,"context_line":"  interface. The relevant spec was approved, but has been withdrawn due to"},{"line_number":126,"context_line":"  implementation complexity. This spec provides a lightweight variant of it."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Data model impact"},{"line_number":129,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_11dc0c45","line":126,"range":{"start_line":124,"start_character":2,"end_line":126,"end_character":76},"in_reply_to":"3f79a3b5_e0f6eb92","updated":"2019-01-04 22:59:28.000000000","message":"An alternative, why not just record inspection details every time the agent fires up by supplying both urls on the command line?\n\nI\u0027m +1 to boot interface based. I don\u0027t remember quite why we withdrew the spec offhand, but I wonder if we reduced the scope....","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0e9dc095b4e162381ae692b813a07553c8e637eb","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"* Expose the network interface in Ironic API and make Inspector use it."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* Implement full support for using boot interfaces in the ``Inspector`` inspect"},{"line_number":125,"context_line":"  interface. The relevant spec was approved, but has been withdrawn due to"},{"line_number":126,"context_line":"  implementation complexity. This spec provides a lightweight variant of it."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Data model impact"},{"line_number":129,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_3f7309ea","line":126,"range":{"start_line":124,"start_character":2,"end_line":126,"end_character":76},"in_reply_to":"dfd5e7cf_11dc0c45","updated":"2019-01-07 10:41:57.000000000","message":"Using boot interface will mean migrating the whole PXE environment management to ironic. It\u0027s a much bigger scope than this. It also had backward compatibility concerns.\n\nI don\u0027t think that implementing this spec precludes us from adding boot interface support in the future. After all, handling the inspection network will be required anyway.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"05dcae9bd864740517682c569c6b5bbd21a12bb0","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"New configuration options:"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_11a4fb4c","line":222,"range":{"start_line":222,"start_character":4,"end_line":222,"end_character":31},"updated":"2018-12-12 07:44:51.000000000","message":"will we validate this when validating a node? if we do, this has to be set after upgrade, thus has upgrade impact.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"548ea68200d7aab67b683d62272d1998e5eb83fb","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"New configuration options:"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_2d60b09e","line":222,"range":{"start_line":222,"start_character":4,"end_line":222,"end_character":31},"in_reply_to":"3f79a3b5_11a4fb4c","updated":"2018-12-12 16:28:39.000000000","message":"mmmm, not sure. we may need something like network.validate_inspect, we don\u0027t want to fail the network validation for inspection, since it\u0027s optional.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"05dcae9bd864740517682c569c6b5bbd21a12bb0","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_b1d987f3","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"updated":"2018-12-12 07:44:51.000000000","message":"it seems a template would be enough, most of options is known by ironic, we can just leave some key options configurable (if there is any).\nbecause we use a neutron network as inspection network, we don\u0027t want users making conflicting options, dhcp-range for example.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"36ad53b43cd02c85164a6cc3971a1fe11b74673e","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e24a9a23","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_3fcc2b30","updated":"2018-12-14 08:44:01.000000000","message":"Good point Kaifeng, this is going to take some thinkering ...\nMaby we need to add a new group in config, and use MultiString[1]?\n\ndhcp-match (Type: MultiString)\ndhcp-boot \u003d (Type: MultiString)\n\n[neuton-dhcp-opts]\ndhcp-match\u003dipxe,175\ndhcp-match\u003dset:efi,option:client-arch,7\ndhcp-match\u003dset:efi,option:client-arch,9\ndhcp-match\u003dset:efi,option:client-arch,11\ndhcp-boot\u003dtag:ipxe,http://$IPADDRESS:$PORT/inspector.ipxe\ndhcp-boot\u003dtag:efi,tag:!ipxe,ipxe.efi\ndhcp-boot\u003dundionly.kpxe,localhost.localdomain,$IPADDRESS\n\n\n[1] https://docs.openstack.org/oslo.config/latest/reference/types.html#oslo_config.types.MultiString","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"518a4f6b8071778fa818cce524f8387ee96d870f","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a1004006","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_8d4f8430","updated":"2018-12-13 01:59:35.000000000","message":"it seems most options can be filled by the dhcp_options_for_instance.\nI am just not sure why we need a dict-like option, and I have no idea on how the dict is represented in the configuration option.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d1755ee206e8284afc88f768796e762d590e65ff","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_d5264fd3","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_a1004006","updated":"2018-12-13 10:56:27.000000000","message":"dhcp_options_for_instance will point at ironic\u0027s PXE environment, which does not even have to be the same as inspector\u0027s.\n\nThere is a DictType in oslo. I don\u0027t recall how it looks in configuration files.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"548ea68200d7aab67b683d62272d1998e5eb83fb","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_8d4f8430","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_b1d987f3","updated":"2018-12-12 16:28:39.000000000","message":"I\u0027m not sure I get it. what exactly would you change? an operator will have to set something like https://github.com/openstack/puppet-ironic/blob/master/templates/inspector_dnsmasq_http.erb#L24-L33","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"f7ca90eca6e0dc49904d47e8bfd8f9050f3b42aa","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_3fcc2b30","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_d5264fd3","updated":"2018-12-14 08:13:12.000000000","message":"huh, just test on the DictOpt, this doesn\u0027t work well, there are many \":\" or \",\" in dhcp option values..","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9c9149583fd4d091eef420459b4d56f8b4aef48e","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_3fb74b26","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_d5264fd3","updated":"2018-12-14 07:42:41.000000000","message":"okay, so you want to give user full freedom to customize specific parameters. Hmm, I didn\u0027t aware there is a dict opt used in ironic already, but this option will be a quite long one :)\n\ni was thinking ironic can host a pxe environment for inspection too, so we can share some common codes.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3461e0ec2375669f83be83043449e84454c7658e","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_31eb50b1","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"3f79a3b5_e24a9a23","updated":"2019-01-04 22:59:28.000000000","message":"Alternative idea... What if we use the existing dhcp templating and just supplement the pxe/ipxe endpoint url.\n\nFWIW, That whole dhcp logic section in pxe_utils needs to be moved elsewhere and refactored some more for boot from url (and preservation of remaining julia sanity), so perhaps it would be easier to kind of just use that? maybe?\n\nIf we go that route, then maybe it is is just a ipxe_template option for inspection?\n\u003c/ramblingjulia\u003e\n\nOne last note: for v6, we\u0027e had to add an ipxe6 tag due to how dnsmasq does handling internally, so forcing a template or config file params seems less ideal to me when we\u0027ve figured it all out elsewhere for the operators.","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0e9dc095b4e162381ae692b813a07553c8e637eb","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* ``[neutron]inspection_network`` the default inspection network (no default)."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* ``[inspector]dhcp_opts`` DHCP options to configure on inspection ports."},{"line_number":225,"context_line":"  This is a dictionary with keys being option names and values being option"},{"line_number":226,"context_line":"  values. The ``ip_version`` attribute will be added based on the"},{"line_number":227,"context_line":"  ``[pxe]ip_version`` configuration option."}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfd5e7cf_1f2405c6","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":24},"in_reply_to":"dfd5e7cf_31eb50b1","updated":"2019-01-07 10:41:57.000000000","message":"I\u0027m fine with handling DHCP automatically. The ipxe_template path is essentially about using the boot interface, which does have some problems to solve: http://specs.openstack.org/openstack/ironic-specs/specs/backlog/inspector-boot-management.html#unsolved-problems","commit_id":"0d4aab7acc3d4119bee7bd9b3bbc771a13a7ef76"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"50703bf1033695067627781639a8a65b21515c32","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      on the ``inspection_network``."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   #. Calls ``task.driver.boot.prepare_ramdisk`` providing kernel parameters"},{"line_number":47,"context_line":"      from the option ``[inspector]extra_kernel_params``."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   #. Calls the ironic-inspector introspection API with ``manage_boot\u003dFalse``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_6046b852","line":47,"range":{"start_line":47,"start_character":35,"end_line":47,"end_character":54},"updated":"2019-03-20 10:58:12.000000000","message":"Are these specifically \u0027kernel\u0027 params or they are inspector config params?\nIn case of virtual media as a boot device, it would not be able to pass kernel params unless iso is re-created on the fly with these params. It can pass the inspector params as data through floppy as it does for IPA [1]. IPA reads data from kernel params for PXE boot and from floppy for vmedia boot.\n[1] https://github.com/openstack/ironic-python-agent/blob/master/ironic_python_agent/config.py","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f91474c34248f844f4e53c72eff0ace08359d216","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      on the ``inspection_network``."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   #. Calls ``task.driver.boot.prepare_ramdisk`` providing kernel parameters"},{"line_number":47,"context_line":"      from the option ``[inspector]extra_kernel_params``."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   #. Calls the ironic-inspector introspection API with ``manage_boot\u003dFalse``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfbec78f_ed034241","line":47,"range":{"start_line":47,"start_character":35,"end_line":47,"end_character":54},"in_reply_to":"3fce034c_735f5272","updated":"2019-05-27 15:30:04.000000000","message":"Makes sense. If required we can update the spec later.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"758780b0abd14f29abebea8349c26e84e2d669d1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      on the ``inspection_network``."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   #. Calls ``task.driver.boot.prepare_ramdisk`` providing kernel parameters"},{"line_number":47,"context_line":"      from the option ``[inspector]extra_kernel_params``."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   #. Calls the ironic-inspector introspection API with ``manage_boot\u003dFalse``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_83d80953","line":47,"range":{"start_line":47,"start_character":35,"end_line":47,"end_character":54},"in_reply_to":"5fc1f717_6046b852","updated":"2019-03-26 03:11:49.000000000","message":"I guess it contains the parameters originally provided by inspector PXE environment, so it may be a combination of kernel and inspector arguments [1]. But I didn\u0027t aware there is any special kernel argument required for the inspection to work compared with regular node deployment, so maybe we just loose some flexibility. If we are unable to update kernel argument for vmedia, I think the name of the option is kind of misleading.\n\n[1] https://docs.openstack.org/ironic-inspector/latest/install/index.html#configuring-pxe","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f3dc98cb0fe4ababece63457b817495f794b7698","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      on the ``inspection_network``."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   #. Calls ``task.driver.boot.prepare_ramdisk`` providing kernel parameters"},{"line_number":47,"context_line":"      from the option ``[inspector]extra_kernel_params``."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   #. Calls the ironic-inspector introspection API with ``manage_boot\u003dFalse``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_735f5272","line":47,"range":{"start_line":47,"start_character":35,"end_line":47,"end_character":54},"in_reply_to":"5fc1f717_83d80953","updated":"2019-04-15 13:30:26.000000000","message":"After discussions with some other vendors that don\u0027t support multiple vmedia devices (and given floppy devices are kind of dead...) I suspect we should consider the path we\u0027ve discussed for passing network configuration appended to the iso so we\u0027re not remastering the iso every single time.\n\nA path to test is likely just supporting iPXE to iso as well.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"bc42e603e145d5ace489fc13eb4b780a9f386a82","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      on the ``inspection_network``."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   #. Calls ``task.driver.boot.prepare_ramdisk`` providing kernel parameters"},{"line_number":47,"context_line":"      from the option ``[inspector]extra_kernel_params``."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   #. Calls the ironic-inspector introspection API with ``manage_boot\u003dFalse``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bfb3d3c7_e38c70d8","line":47,"range":{"start_line":47,"start_character":35,"end_line":47,"end_character":54},"in_reply_to":"dfbec78f_ed034241","updated":"2019-05-28 02:48:49.000000000","message":"Seems to be overlapping with the DHCP-less/L3 Virtual media boot, maybe we can have another spec targeting the vmedia case after both implemented?","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d7fd27f80b042b8ce66198713cc89bcf6c0d28a0","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Add a new call ``validate_inspection``. It will be implemented the same way"},{"line_number":59,"context_line":"  as ``validate_rescue``, but instead of raising ``MissingParameterValue`` on"},{"line_number":60,"context_line":"  absent parameters it will raise ``UnsupportedDriverExtension`` to indicate"},{"line_number":61,"context_line":"  fall back to the old approach."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  * Implement ``validate_inspection`` for the PXE and iPXE boot interfaces."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bfb3d3c7_2540e907","line":60,"updated":"2019-05-17 08:26:49.000000000","message":"implementation of ``validate_rescue`` for BootInterface also raises UnsupportedDriverExtension\nhttps://github.com/openstack/ironic/blob/master/ironic/drivers/base.py#L516","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f91474c34248f844f4e53c72eff0ace08359d216","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Add a new call ``validate_inspection``. It will be implemented the same way"},{"line_number":59,"context_line":"  as ``validate_rescue``, but instead of raising ``MissingParameterValue`` on"},{"line_number":60,"context_line":"  absent parameters it will raise ``UnsupportedDriverExtension`` to indicate"},{"line_number":61,"context_line":"  fall back to the old approach."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  * Implement ``validate_inspection`` for the PXE and iPXE boot interfaces."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bfb3d3c7_d7b24a49","line":60,"in_reply_to":"bfb3d3c7_2540e907","updated":"2019-05-27 15:30:04.000000000","message":"UnsupportedDriverExtension would be raised if a interface does not implement it. Here the interface that implements validate_inspection() should raise UnsupportedDriverExtension if the required parameters for it are not available so that it could fall back to the older behavior of inspection.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"bc42e603e145d5ace489fc13eb4b780a9f386a82","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Currently Ironic Inspector does not require ports, port groups or local"},{"line_number":100,"context_line":"link information to be present to conduct inspection. However, to use network"},{"line_number":101,"context_line":"flipping we will need this information, which can be:"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* entered manually by an operator (using out-of-band inspection if possible) OR"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bfb3d3c7_63a16046","line":101,"updated":"2019-05-28 02:48:49.000000000","message":"I assume we will validate this before starting inspection.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f3dc98cb0fe4ababece63457b817495f794b7698","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* entered manually by an operator (using out-of-band inspection if possible) OR"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* inspected initially with a node manually put on the right network."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Alternatives"},{"line_number":108,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_d3fde63a","line":105,"range":{"start_line":105,"start_character":43,"end_line":105,"end_character":67},"updated":"2019-04-15 13:30:26.000000000","message":"maybe s/put on the/attached to the/\n\nThere could be OOB automation to enable this, or operators could just use their switch default pvid to make it happen.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d7fd27f80b042b8ce66198713cc89bcf6c0d28a0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        :param task: A TaskManager instance."},{"line_number":159,"context_line":"        :raises: InvalidParameterValue, if the network interface configuration"},{"line_number":160,"context_line":"            is invalid."},{"line_number":161,"context_line":"        :raises: MissingParameterValue, if some parameters are missing."},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        raise exception.UnsupportedDriverExtension("},{"line_number":164,"context_line":"            driver\u003dtask.node.driver, extension\u003d\u0027validate_inspection\u0027)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bfb3d3c7_45139d0e","line":161,"updated":"2019-05-17 08:26:49.000000000","message":"this should be UnsupportedDriverExtension ?","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"758780b0abd14f29abebea8349c26e84e2d669d1","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"The Ironic documentation should be updated to explain using network separation"},{"line_number":283,"context_line":"with in-band inspection."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"References"},{"line_number":286,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_e3946d46","line":284,"updated":"2019-03-26 03:11:49.000000000","message":"the two approaches use different sources of ramdisk and probably not identical, we\u0027d better note that in the document.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f3dc98cb0fe4ababece63457b817495f794b7698","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"The Ironic documentation should be updated to explain using network separation"},{"line_number":283,"context_line":"with in-band inspection."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"References"},{"line_number":286,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_33846ab1","line":284,"in_reply_to":"5fc1f717_e3946d46","updated":"2019-04-15 13:30:26.000000000","message":"They absolutely can be though... I guess a note is a good idea to minimize confusion.","commit_id":"7452ffe6b3ab01fb3b4ff50dbdef90702adad211"}]}
