)]}'
{"etc/ironic/ks.cfg.template":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"25ad44bad11a6d0893aa22063ead5b4353d92fa2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"lang en_US"},{"line_number":2,"context_line":"keyboard us"},{"line_number":3,"context_line":"timezone America/Los_Angeles --isUtc"},{"line_number":4,"context_line":"#platform x86, AMD64, or Intel EM64T"},{"line_number":5,"context_line":"text"},{"line_number":6,"context_line":"install"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"a607f807_49b2a50b","line":3,"range":{"start_line":3,"start_character":29,"end_line":3,"end_character":36},"updated":"2021-01-26 10:30:43.000000000","message":"I believe \"--isUtc\" is an alternative to the main option \"--utc\"","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"25ad44bad11a6d0893aa22063ead5b4353d92fa2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"lang en_US"},{"line_number":2,"context_line":"keyboard us"},{"line_number":3,"context_line":"timezone America/Los_Angeles --isUtc"},{"line_number":4,"context_line":"#platform x86, AMD64, or Intel EM64T"},{"line_number":5,"context_line":"text"},{"line_number":6,"context_line":"install"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"44b39c43_686809b9","line":3,"range":{"start_line":3,"start_character":9,"end_line":3,"end_character":28},"updated":"2021-01-26 10:30:43.000000000","message":"actual timezone name is optional if you specify --utc","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"25ad44bad11a6d0893aa22063ead5b4353d92fa2","unresolved":true,"context_lines":[{"line_number":18,"context_line":"autopart"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Downloading and installing OS image using liveimg section is mandatory"},{"line_number":21,"context_line":"liveimg --url\u003d{{ liveimg_url }}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Following %pre, %onerror and %trackback sections are mandatory"},{"line_number":24,"context_line":"%pre"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"f529ac75_e7ae5854","line":21,"updated":"2021-01-26 10:30:43.000000000","message":"implementing a mechanism to verify the mandatory sections are present in the file would be nice to have","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"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":"2b20aa5dfcd5dbfe8d6604538411da5c705be39b","unresolved":true,"context_lines":[{"line_number":18,"context_line":"autopart"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Downloading and installing OS image using liveimg section is mandatory"},{"line_number":21,"context_line":"liveimg --url\u003d{{ liveimg_url }}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Following %pre, %onerror and %trackback sections are mandatory"},{"line_number":24,"context_line":"%pre"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"edad657f_7161b800","line":21,"in_reply_to":"e2a3cbee_fafff087","updated":"2021-02-07 21:58:24.000000000","message":"I\u0027d suggest considering two things:\n - A simple match in the file to ensure ironic-required items such as {{ liveimg_url }} are in the kickstart file at all. This would help guard against a deployer uploading a file completely unsuited for use in Ironic.\n - Using ksvalidator against the file after templateing the file with \"dummy\" values which should validate (since we likely won\u0027t know the real values at upload time).","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"e8ef674673a8eaff49b832a99fe134c1214347a4","unresolved":true,"context_lines":[{"line_number":18,"context_line":"autopart"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Downloading and installing OS image using liveimg section is mandatory"},{"line_number":21,"context_line":"liveimg --url\u003d{{ liveimg_url }}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Following %pre, %onerror and %trackback sections are mandatory"},{"line_number":24,"context_line":"%pre"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"f8fa4fb8_04eb941d","line":21,"in_reply_to":"edad657f_7161b800","updated":"2021-02-20 01:16:51.000000000","message":"Sure. I will try to add address this suggestions in code in the next revision to this patch. The kickstart file will be \"rendered\" in later patch sets, so will do the validation using ksvalidator on it once it is rendered.","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"9208605b434d9a9181ac451000b42500410c4820","unresolved":true,"context_lines":[{"line_number":18,"context_line":"autopart"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Downloading and installing OS image using liveimg section is mandatory"},{"line_number":21,"context_line":"liveimg --url\u003d{{ liveimg_url }}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Following %pre, %onerror and %trackback sections are mandatory"},{"line_number":24,"context_line":"%pre"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"e2a3cbee_fafff087","line":21,"in_reply_to":"f529ac75_e7ae5854","updated":"2021-01-28 08:31:29.000000000","message":"Ack. It is viable to validate the entire kickstart file itself using \u0027ksvalidator\u0027.  It is hard to validate the template since it includes variables like {{ liveimg_url }}","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d49ff90c67646c03d83e76cd737e4d0639fe411a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e544b5a2_c098d2cb","line":41,"updated":"2021-01-26 18:53:13.000000000","message":"Other \u0027driver\u0027-related templates are in ironic.drivers.modules (https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules). I can\u0027t recall what goes in etc/ironic vs elsewhere. Hopefully someone else knows.","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"}],"ironic/conf/anaconda.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ec1632caffb6235e35820e57849e43de1ed7fad0","unresolved":true,"context_lines":[{"line_number":21,"context_line":"                        title\u003d\u0027Anaconda/kickstart interface options\u0027)"},{"line_number":22,"context_line":"opts \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027default_ks_template\u0027,"},{"line_number":24,"context_line":"               default\u003d\u0027/etc/ironic/ks.cfg\u0027,"},{"line_number":25,"context_line":"               help\u003d_(\u0027kickstart template to use when no kickstart template \u0027"},{"line_number":26,"context_line":"                      \u0027is specified in the instance_info or the glance OS \u0027"},{"line_number":27,"context_line":"                      \u0027image.\u0027)),"}],"source_content_type":"text/x-python","patch_set":8,"id":"d6a544e4_52b5a716","line":24,"range":{"start_line":24,"start_character":24,"end_line":24,"end_character":42},"updated":"2021-02-17 10:32:51.000000000","message":"The system may not have a kickstart config at /etc/ironic. Normally we provide a system default from ironic tree. See [1]\n[1] https://github.com/openstack/ironic/blob/master/ironic/conf/ansible.py#L45-L50","commit_id":"9fa68dc097e52ae2fbf6c98a663990e4c1d8c449"}],"ironic/conf/kickstart.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d49ff90c67646c03d83e76cd737e4d0639fe411a","unresolved":true,"context_lines":[{"line_number":17,"context_line":"from ironic.common.i18n import _"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"ks_group \u003d cfg.OptGroup(name\u003d\u0027kickstart\u0027,"},{"line_number":21,"context_line":"                        title\u003d\u0027Anaconda/kickstart interface options\u0027)"},{"line_number":22,"context_line":"opts \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027default_ks_template\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7c2b690b_486531bb","line":20,"updated":"2021-01-26 18:53:13.000000000","message":"I think we will need to be careful of when we use \u0027anaconda\u0027 vs \u0027kickstart\u0027. If the only config option here is the kickstart template, then \u0027kickstart\u0027 is ok here. If other config options are added that relate to anaconda (not specifically about the kickstart file itself), then maybe this ought to be \u0027anaconda\u0027.","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d49ff90c67646c03d83e76cd737e4d0639fe411a","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def register_opts(conf):"},{"line_number":32,"context_line":"    conf.register_group(ks_group)"},{"line_number":33,"context_line":"    conf.register_opts(opts, group\u003d\u0027kickstart\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"95761266_69fac91d","line":33,"updated":"2021-01-26 18:53:13.000000000","message":"nit. given that the group name is in ks_group, might as well do \u0027group\u003dks_group\u0027 here so that the string isn\u0027t duplicated.","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d49ff90c67646c03d83e76cd737e4d0639fe411a","unresolved":true,"context_lines":[{"line_number":55,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"SUPPORTED_CAPABILITIES \u003d {"},{"line_number":58,"context_line":"    \u0027boot_option\u0027: (\u0027local\u0027, \u0027netboot\u0027, \u0027ramdisk\u0027, \u0027kickstart\u0027),"},{"line_number":59,"context_line":"    \u0027boot_mode\u0027: (\u0027bios\u0027, \u0027uefi\u0027),"},{"line_number":60,"context_line":"    \u0027secure_boot\u0027: (\u0027true\u0027, \u0027false\u0027),"},{"line_number":61,"context_line":"    \u0027trusted_boot\u0027: (\u0027true\u0027, \u0027false\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"a253f1b4_5fac6425","line":58,"updated":"2021-01-26 18:53:13.000000000","message":"I\u0027m not sure why this is needed. If I understand, this means that instance_info[\u0027capabilities\u0027] can have boot_option \u003d\u003d kickstart.\n\nAre we going to allow kickstart if the deploy_interface is NOT anaconda (or whatever it will be called?) Also, does this mean that the instance_info for the node has to have this capability set? OR will the anaconda deploy interface work w/o this?\n\nWhat about doing something like this, where \u0027kickstart\u0027 is returned if the deploy interface is anaconda: https://opendev.org/openstack/ironic/src/commit/2a7871d060ecaef8b0bba48a5481a3a1bb24669f/ironic/drivers/modules/deploy_utils.py#L574","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"9208605b434d9a9181ac451000b42500410c4820","unresolved":true,"context_lines":[{"line_number":55,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"SUPPORTED_CAPABILITIES \u003d {"},{"line_number":58,"context_line":"    \u0027boot_option\u0027: (\u0027local\u0027, \u0027netboot\u0027, \u0027ramdisk\u0027, \u0027kickstart\u0027),"},{"line_number":59,"context_line":"    \u0027boot_mode\u0027: (\u0027bios\u0027, \u0027uefi\u0027),"},{"line_number":60,"context_line":"    \u0027secure_boot\u0027: (\u0027true\u0027, \u0027false\u0027),"},{"line_number":61,"context_line":"    \u0027trusted_boot\u0027: (\u0027true\u0027, \u0027false\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ec9aa37_77fceb74","line":58,"in_reply_to":"a253f1b4_5fac6425","updated":"2021-01-28 08:31:29.000000000","message":"i see what you are saying. Instead of expecting instance_info.boot_option to be \u0027kickstart\u0027. Check if the deployinterface is \"PXEAnacondaDeploy\" and automatically make the boot_option \u0027kickstart\u0027?","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a38b9e868b0e0668f304072e7bb134f98ee23fe9","unresolved":true,"context_lines":[{"line_number":576,"context_line":"        return \u0027kickstart\u0027"},{"line_number":577,"context_line":"    capabilities \u003d utils.parse_instance_info_capabilities(node)"},{"line_number":578,"context_line":"    return capabilities.get(\u0027boot_option\u0027,"},{"line_number":579,"context_line":"                            CONF.deploy.default_boot_option).lower()"},{"line_number":580,"context_line":""},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"def is_anaconda_deploy(node):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ab0eeaf4_7033a51c","line":579,"updated":"2021-03-09 18:48:36.000000000","message":"just want to make sure. if node.deploy_interface is not \u0027anaconda\u0027, but the capabilities has \u0027kickstart\u0027, we\u0027re good with returning \u0027kickstart\u0027 ?","commit_id":"b13e3ed1dd7e9290c4a27841d6b2f3de37a73784"}],"ironic/drivers/modules/ks.cfg.template":[{"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":"3e8d199a5d844ae994595cd779ba0dfd4d13eade","unresolved":true,"context_lines":[{"line_number":1,"context_line":"lang en_US"},{"line_number":2,"context_line":"keyboard us"},{"line_number":3,"context_line":"timezone UTC --utc"},{"line_number":4,"context_line":"#platform x86, AMD64, or Intel EM64T"},{"line_number":5,"context_line":"text"},{"line_number":6,"context_line":"cmdline"},{"line_number":7,"context_line":"reboot"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"1151f807_e88b7abd","line":4,"updated":"2021-02-07 22:11:21.000000000","message":"Why is this commented out? Is a user expected to edit this? If so can we indicate that here, or pick a sane (AMD64?) default and a comment.","commit_id":"10b3de06a9d0d71d06bc40de2b805a965af06995"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"e8ef674673a8eaff49b832a99fe134c1214347a4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"lang en_US"},{"line_number":2,"context_line":"keyboard us"},{"line_number":3,"context_line":"timezone UTC --utc"},{"line_number":4,"context_line":"#platform x86, AMD64, or Intel EM64T"},{"line_number":5,"context_line":"text"},{"line_number":6,"context_line":"cmdline"},{"line_number":7,"context_line":"reboot"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"133c9e7c_4547286c","line":4,"in_reply_to":"1151f807_e88b7abd","updated":"2021-02-20 01:16:51.000000000","message":"No the user isn\u0027t expected to edit this. Redhat has automated tools for generating kickstart files. That comment was generated from that tool and it indicates that this kickstart file is generated to be used in x86/AMD64/IntelEM64T based systems.","commit_id":"10b3de06a9d0d71d06bc40de2b805a965af06995"}],"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ec1632caffb6235e35820e57849e43de1ed7fad0","unresolved":true,"context_lines":[{"line_number":136,"context_line":"    @METRICS.timer(\u0027AnacondaDeploy.prepare\u0027)"},{"line_number":137,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":138,"context_line":"    def prepare(self, task):"},{"line_number":139,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"9779c62b_48fc7b61","line":139,"updated":"2021-02-17 10:32:51.000000000","message":"Not sure if we should have a dummy implementation here. Better to have a concrete implementation in later patch when rest of the plumbing is ready.","commit_id":"9fa68dc097e52ae2fbf6c98a663990e4c1d8c449"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"e8ef674673a8eaff49b832a99fe134c1214347a4","unresolved":true,"context_lines":[{"line_number":136,"context_line":"    @METRICS.timer(\u0027AnacondaDeploy.prepare\u0027)"},{"line_number":137,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":138,"context_line":"    def prepare(self, task):"},{"line_number":139,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"49444355_63619ed1","line":139,"in_reply_to":"9779c62b_48fc7b61","updated":"2021-02-20 01:16:51.000000000","message":"To declare a an anaconda deploy interface i need this dummy implementation to be here. Otherwise i can\u0027t declare a \"anaconda\" deploy interface. get_boot_option function looks if the deploy interface is \"anaconda\"","commit_id":"9fa68dc097e52ae2fbf6c98a663990e4c1d8c449"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a38b9e868b0e0668f304072e7bb134f98ee23fe9","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @METRICS.timer(\u0027AnacondaDeploy.deploy\u0027)"},{"line_number":131,"context_line":"    @base.deploy_step(priority\u003d100)"},{"line_number":132,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":133,"context_line":"    def deploy(self, task):"},{"line_number":134,"context_line":"        pass"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5800b1e9_df535de5","line":132,"updated":"2021-03-09 18:48:36.000000000","message":"Wondering if we need the task manager to have an exclusive lock on this node, given that it isn\u0027t doing anything. but maybe later it will 😊","commit_id":"b13e3ed1dd7e9290c4a27841d6b2f3de37a73784"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4c82d0565c328c75fbb4fcfcd79584f090586eee","unresolved":true,"context_lines":[{"line_number":136,"context_line":"    @METRICS.timer(\u0027AnacondaDeploy.prepare\u0027)"},{"line_number":137,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":138,"context_line":"    def prepare(self, task):"},{"line_number":139,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":10,"id":"76ea74d3_37e5fbac","line":139,"updated":"2021-03-08 19:36:02.000000000","message":"It feels like we\u0027re missing one thing in this class. A periodic task to clean-up config files from the disk after deployment. At least, looking at things now, it doesn\u0027t seem like it is a thing here. Of course, that is not a thing at all today so I\u0027m good with it.","commit_id":"b13e3ed1dd7e9290c4a27841d6b2f3de37a73784"}],"ironic/drivers/modules/pxe_base.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d49ff90c67646c03d83e76cd737e4d0639fe411a","unresolved":true,"context_lines":[{"line_number":347,"context_line":"                    \"root was specified.\"))"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        # NOTE(zer0c00l): When \u0027kickstart\u0027 boot option is used we need to store"},{"line_number":350,"context_line":"        # kickstart and squashfs files in  http_root directory. These files"},{"line_number":351,"context_line":"        # will be eventually requested by anaconda installer during deployment"},{"line_number":352,"context_line":"        # over http(s)."},{"line_number":353,"context_line":"        if deploy_utils.get_boot_option(node) \u003d\u003d \u0027kickstart\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"65f1c211_8b5eea16","line":350,"updated":"2021-01-26 18:53:13.000000000","message":"nit, extra space I think: s/in  http_root/in http_root/","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d49ff90c67646c03d83e76cd737e4d0639fe411a","unresolved":true,"context_lines":[{"line_number":359,"context_line":"            if not CONF.kickstart.default_ks_template:"},{"line_number":360,"context_line":"                raise exception.MissingParameterValue(_("},{"line_number":361,"context_line":"                    \"\u0027kickstart\u0027 boot option is set on the node but no \""},{"line_number":362,"context_line":"                    \"default kickstart template is specified.\"))"},{"line_number":363,"context_line":"        # Check the trusted_boot capabilities value."},{"line_number":364,"context_line":"        deploy_utils.validate_capabilities(node)"},{"line_number":365,"context_line":"        if deploy_utils.is_trusted_boot_requested(node):"}],"source_content_type":"text/x-python","patch_set":4,"id":"25a1cbc8_50e0d080","line":362,"updated":"2021-01-26 18:53:13.000000000","message":"please add a blank line after this.","commit_id":"f027c46ef846040850a5cc2256d67e0fc4347cdd"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ec1632caffb6235e35820e57849e43de1ed7fad0","unresolved":true,"context_lines":[{"line_number":341,"context_line":"                    \"\u0027kickstart\u0027 boot option is set on the node but no HTTP \""},{"line_number":342,"context_line":"                    \"URL or HTTP root was specified.\"))"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"            if not CONF.anaconda.default_ks_template:"},{"line_number":345,"context_line":"                raise exception.MissingParameterValue(_("},{"line_number":346,"context_line":"                    \"\u0027kickstart\u0027 boot option is set on the node but no \""},{"line_number":347,"context_line":"                    \"default kickstart template is specified.\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"830b85f2_e6786aab","line":344,"range":{"start_line":344,"start_character":12,"end_line":344,"end_character":52},"updated":"2021-02-17 10:32:51.000000000","message":"This will not be True as \u0027default_ks_template\u0027 have default value.\n\nAlso, can\u0027t one set the kickstart template file per node basis?","commit_id":"9fa68dc097e52ae2fbf6c98a663990e4c1d8c449"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"e8ef674673a8eaff49b832a99fe134c1214347a4","unresolved":true,"context_lines":[{"line_number":341,"context_line":"                    \"\u0027kickstart\u0027 boot option is set on the node but no HTTP \""},{"line_number":342,"context_line":"                    \"URL or HTTP root was specified.\"))"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"            if not CONF.anaconda.default_ks_template:"},{"line_number":345,"context_line":"                raise exception.MissingParameterValue(_("},{"line_number":346,"context_line":"                    \"\u0027kickstart\u0027 boot option is set on the node but no \""},{"line_number":347,"context_line":"                    \"default kickstart template is specified.\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"f11ba66a_b50a1c2c","line":344,"range":{"start_line":344,"start_character":12,"end_line":344,"end_character":52},"in_reply_to":"830b85f2_e6786aab","updated":"2021-02-20 01:16:51.000000000","message":"There are three places the kickstart_template can be set in order of precedence\n\n1. node.instance_info\n2. As property in the image_source\n3. default_ks_template configuration variable.\n\nIf the user wants per node basis it needs to be either set in instance_info.\n\n\u003e This will not be True as \u0027default_ks_template\u0027 have default value.\nIf the user decides to use their own default_ks_template and set it to an empty string. This check ought to catch that.","commit_id":"9fa68dc097e52ae2fbf6c98a663990e4c1d8c449"}],"releasenotes/notes/anaconda-deploy-d748bed761bce7a3.yaml":[{"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":"8ddad554ce084db942f8ca487984e195174a2113","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    the OS using anaconda installer and kickstart file instead of IPA. To"},{"line_number":6,"context_line":"    support this feature  a new configuration group ``anaconda`` is added to"},{"line_number":7,"context_line":"    Ironic configuration file along with ``default_ks_template`` configuration"},{"line_number":8,"context_line":"    option."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"deb55555_a0a0b3bc","line":8,"updated":"2021-02-22 23:56:50.000000000","message":"What does this option do? Can we elaborate a little more on what the config is and what the feature does?","commit_id":"9bc36b1246d0d3230582998e6321a4153f605be5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"650bbc6c20fae6a2cc7c23c90e717137f7e48b42","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``anaconda`` deploy driver to Ironic. This driver will deploy the"},{"line_number":5,"context_line":"    the OS using anaconda installer and kickstart file instead of IPA. To"},{"line_number":6,"context_line":"    support this feature  a new configuration group ``anaconda`` is added to"},{"line_number":7,"context_line":"    Ironic configuration file along with ``default_ks_template`` configuration"},{"line_number":8,"context_line":"    option."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"0a7410f0_d175af42","line":5,"updated":"2021-03-08 19:36:58.000000000","message":"Actually, is the interface fully  usable in this patch? if not, we should hold this back to a later patch.","commit_id":"b13e3ed1dd7e9290c4a27841d6b2f3de37a73784"}],"setup.cfg":[{"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":"3e8d199a5d844ae994595cd779ba0dfd4d13eade","unresolved":true,"context_lines":[{"line_number":85,"context_line":"    no-console \u003d ironic.drivers.modules.noop:NoConsole"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"ironic.hardware.interfaces.deploy \u003d"},{"line_number":88,"context_line":"    anaconda \u003d ironic.drivers.modules.pxe:PXEAnacondaDeploy"},{"line_number":89,"context_line":"    ansible \u003d ironic.drivers.modules.ansible.deploy:AnsibleDeploy"},{"line_number":90,"context_line":"    direct \u003d ironic.drivers.modules.agent:AgentDeploy"},{"line_number":91,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeDeploy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"cfa0963c_a3a5ce8c","line":88,"updated":"2021-02-07 22:11:21.000000000","message":"Why named PXEAnacondaDeploy instead of just AnacondaDeploy?","commit_id":"10b3de06a9d0d71d06bc40de2b805a965af06995"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"52b1c03ba672fd9b22169103354a3a49da914865","unresolved":true,"context_lines":[{"line_number":85,"context_line":"    no-console \u003d ironic.drivers.modules.noop:NoConsole"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"ironic.hardware.interfaces.deploy \u003d"},{"line_number":88,"context_line":"    anaconda \u003d ironic.drivers.modules.pxe:PXEAnacondaDeploy"},{"line_number":89,"context_line":"    ansible \u003d ironic.drivers.modules.ansible.deploy:AnsibleDeploy"},{"line_number":90,"context_line":"    direct \u003d ironic.drivers.modules.agent:AgentDeploy"},{"line_number":91,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeDeploy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"08d16590_2f653595","line":88,"in_reply_to":"cfa0963c_a3a5ce8c","updated":"2021-02-20 00:03:53.000000000","message":"It is named to mirror the PXERamdiskDeploy ramdisk https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/pxe.py#L40","commit_id":"10b3de06a9d0d71d06bc40de2b805a965af06995"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"ceb0b5344ede43587021c28797ed66d8973fb0e3","unresolved":true,"context_lines":[{"line_number":85,"context_line":"    no-console \u003d ironic.drivers.modules.noop:NoConsole"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"ironic.hardware.interfaces.deploy \u003d"},{"line_number":88,"context_line":"    anaconda \u003d ironic.drivers.modules.pxe:PXEAnacondaDeploy"},{"line_number":89,"context_line":"    ansible \u003d ironic.drivers.modules.ansible.deploy:AnsibleDeploy"},{"line_number":90,"context_line":"    direct \u003d ironic.drivers.modules.agent:AgentDeploy"},{"line_number":91,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeDeploy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"ed2cfeda_3d1becea","line":88,"updated":"2021-03-09 18:37:29.000000000","message":"Add anaconda deploy interface to the list of supported deploy interfaces into generic.py","commit_id":"b13e3ed1dd7e9290c4a27841d6b2f3de37a73784"}]}
