)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"36e31b36100605da6ccf56f312a4a92a6757a2b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fb82aa40_5760c14d","updated":"2023-08-14 15:43:51.000000000","message":"These comments were made in an interactive review over video and are just being posted here for documentation.","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"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":"0171d803790dcc193819c2168ccfe0086eb8b070","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fd06aa41_5cd8a35b","updated":"2023-08-15 20:33:06.000000000","message":"Ah, you need to add a release note. Please also consider adding/updating documentation.","commit_id":"32739a906a80fa1083be7be285597060877f4c94"},{"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":"e02b572e057968a991b6d8abc16ee0bbc8f24cf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b42cdacc_16664383","updated":"2023-08-15 20:14:23.000000000","message":"This looks OK; have you tested it?","commit_id":"32739a906a80fa1083be7be285597060877f4c94"}],"ironic/conf/conductor.py":[{"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":"0360eb2db5dd409dbde6136723e2f7cfc1554c78","unresolved":true,"context_lines":[{"line_number":206,"context_line":"    cfg.StrOpt(\u0027deploy_kernel\u0027,"},{"line_number":207,"context_line":"               mutable\u003dTrue,"},{"line_number":208,"context_line":"               help\u003d_(\u0027Glance ID, http:// or file:// URL of the kernel of \u0027"},{"line_number":209,"context_line":"                      \u0027the default deploy image.\u0027)),"},{"line_number":210,"context_line":"    cfg.DictOpt(\u0027deploy_kernel_by_arch\u0027,"},{"line_number":211,"context_line":"                default\u003d{},"},{"line_number":212,"context_line":"                mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c6fc6ead_1f214502","line":209,"updated":"2023-08-08 17:48:44.000000000","message":"I wonder if we should deprecate this (and the singular _ramdisk) option. If not, we need to be explicit about order of operations in help here.","commit_id":"7433c139cd252059de139fcf34c797f3992b0b1c"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"d216014bd49c080ec7cb9cedd2c0e61f1398c6bd","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    cfg.StrOpt(\u0027deploy_kernel\u0027,"},{"line_number":207,"context_line":"               mutable\u003dTrue,"},{"line_number":208,"context_line":"               help\u003d_(\u0027Glance ID, http:// or file:// URL of the kernel of \u0027"},{"line_number":209,"context_line":"                      \u0027the default deploy image.\u0027)),"},{"line_number":210,"context_line":"    cfg.DictOpt(\u0027deploy_kernel_by_arch\u0027,"},{"line_number":211,"context_line":"                default\u003d{},"},{"line_number":212,"context_line":"                mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"f0e07e26_d2e9778f","line":209,"in_reply_to":"c6fc6ead_1f214502","updated":"2023-08-21 16:21:33.000000000","message":"Ack","commit_id":"7433c139cd252059de139fcf34c797f3992b0b1c"},{"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":"36e31b36100605da6ccf56f312a4a92a6757a2b0","unresolved":true,"context_lines":[{"line_number":203,"context_line":"    cfg.BoolOpt(\u0027enable_mdns\u0027, default\u003dFalse,"},{"line_number":204,"context_line":"                help\u003d_(\u0027Whether to enable publishing the baremetal API \u0027"},{"line_number":205,"context_line":"                       \u0027endpoint via multicast DNS.\u0027)),"},{"line_number":206,"context_line":"    cfg.DictOpt(\u0027deploy_kernel_by_arch\u0027,"},{"line_number":207,"context_line":"                default\u003d{},"},{"line_number":208,"context_line":"                mutable\u003dTrue,"},{"line_number":209,"context_line":"                help\u003d_(\u0027A dictionary of key-value pairs of each architecture \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bd07ebf4_3abd3d47","line":206,"updated":"2023-08-14 15:43:51.000000000","message":"We should keep deploy_kernel and deploy_ramdisk... maybe deprecate them but I\u0027m not sure.\n\nIn the code, we should use precedence of the following:\n\n(in order of most to least preferred)\nNode-configured kernel/ramdisk\nArch-specific kernel/ramdisk\nGeneric deploy_kernel/deploy_ramdisk value\n\nWhy should we do this? Because it will reduce friction for operators upgrading who do not care about multiple architectures.\n\nEither way is probably OK; but it\u0027s worth discussing.","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"d216014bd49c080ec7cb9cedd2c0e61f1398c6bd","unresolved":false,"context_lines":[{"line_number":203,"context_line":"    cfg.BoolOpt(\u0027enable_mdns\u0027, default\u003dFalse,"},{"line_number":204,"context_line":"                help\u003d_(\u0027Whether to enable publishing the baremetal API \u0027"},{"line_number":205,"context_line":"                       \u0027endpoint via multicast DNS.\u0027)),"},{"line_number":206,"context_line":"    cfg.DictOpt(\u0027deploy_kernel_by_arch\u0027,"},{"line_number":207,"context_line":"                default\u003d{},"},{"line_number":208,"context_line":"                mutable\u003dTrue,"},{"line_number":209,"context_line":"                help\u003d_(\u0027A dictionary of key-value pairs of each architecture \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"23cab47b_42acf15f","line":206,"in_reply_to":"58826a33_4034515c","updated":"2023-08-21 16:21:33.000000000","message":"Ack","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5ce4e14be4f2b8751320619b2a132a8725a98811","unresolved":true,"context_lines":[{"line_number":203,"context_line":"    cfg.BoolOpt(\u0027enable_mdns\u0027, default\u003dFalse,"},{"line_number":204,"context_line":"                help\u003d_(\u0027Whether to enable publishing the baremetal API \u0027"},{"line_number":205,"context_line":"                       \u0027endpoint via multicast DNS.\u0027)),"},{"line_number":206,"context_line":"    cfg.DictOpt(\u0027deploy_kernel_by_arch\u0027,"},{"line_number":207,"context_line":"                default\u003d{},"},{"line_number":208,"context_line":"                mutable\u003dTrue,"},{"line_number":209,"context_line":"                help\u003d_(\u0027A dictionary of key-value pairs of each architecture \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"58826a33_4034515c","line":206,"in_reply_to":"bd07ebf4_3abd3d47","updated":"2023-08-14 18:35:14.000000000","message":"Realistically, we can\u0027t just remove, we have to deprecate because stable policy wise, sudden removal or rename of configuration properties is just not permitted. We, ideally, want to permit an operator to be able to upgrade ironic and not *have* to touch their config between releases unless the configuration option has been deprecated for some period of time.  On base options, like critical configuration, we lean towards longish deprecation periods, just because we want to enable operators to upgrade and not be broken.\n\n\nAs for JayF\u0027s suggested precedence, I think that makes sense.","commit_id":"193a2a9654f38c50ea848c489930081958a825de"}],"ironic/drivers/utils.py":[{"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":"36e31b36100605da6ccf56f312a4a92a6757a2b0","unresolved":true,"context_lines":[{"line_number":451,"context_line":"        # prioritise them"},{"line_number":452,"context_line":"        if mode \u003d\u003d \"deploy\":"},{"line_number":453,"context_line":"            deploy_kernel_dict \u003d getattr("},{"line_number":454,"context_line":"                CONF.conductor, \"deploy_kernel_by_arch\", None)"},{"line_number":455,"context_line":"            deploy_ramdisk_dict \u003d getattr("},{"line_number":456,"context_line":"                CONF.conductor, \"deploy_ramdisk_by_arch\", None)"},{"line_number":457,"context_line":"            cpu_arch \u003d node.properties.get(\u0027cpu_arch\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"013d5178_b7db1227","line":454,"updated":"2023-08-14 15:43:51.000000000","message":"Please be less defensive here.\n\nWill CONF.conductor.deploy_kernel_by_arch ever not be a dict or not exist? I don\u0027t think so, so we should not need to use getattr() here.","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"d216014bd49c080ec7cb9cedd2c0e61f1398c6bd","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        # prioritise them"},{"line_number":452,"context_line":"        if mode \u003d\u003d \"deploy\":"},{"line_number":453,"context_line":"            deploy_kernel_dict \u003d getattr("},{"line_number":454,"context_line":"                CONF.conductor, \"deploy_kernel_by_arch\", None)"},{"line_number":455,"context_line":"            deploy_ramdisk_dict \u003d getattr("},{"line_number":456,"context_line":"                CONF.conductor, \"deploy_ramdisk_by_arch\", None)"},{"line_number":457,"context_line":"            cpu_arch \u003d node.properties.get(\u0027cpu_arch\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ef99cb73_29d00368","line":454,"in_reply_to":"013d5178_b7db1227","updated":"2023-08-21 16:21:33.000000000","message":"Ack","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"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":"36e31b36100605da6ccf56f312a4a92a6757a2b0","unresolved":true,"context_lines":[{"line_number":460,"context_line":"            if kernel_for_this_arch:"},{"line_number":461,"context_line":"                kernel \u003d kernel_for_this_arch"},{"line_number":462,"context_line":"            if ramdisk_for_this_arch:"},{"line_number":463,"context_line":"                ramdisk \u003d ramdisk_for_this_arch"},{"line_number":464,"context_line":"        else:"},{"line_number":465,"context_line":"            kernel \u003d getattr(CONF.conductor, kernel_name)"},{"line_number":466,"context_line":"            ramdisk \u003d getattr(CONF.conductor, ramdisk_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a47fa021_66ac7efc","line":463,"updated":"2023-08-14 15:43:51.000000000","message":"We need to ensure we have both a kernel and a ramdisk here, or else raise an error. We may need to change validation logic on the agent driver to check for this config(?)","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"d216014bd49c080ec7cb9cedd2c0e61f1398c6bd","unresolved":false,"context_lines":[{"line_number":460,"context_line":"            if kernel_for_this_arch:"},{"line_number":461,"context_line":"                kernel \u003d kernel_for_this_arch"},{"line_number":462,"context_line":"            if ramdisk_for_this_arch:"},{"line_number":463,"context_line":"                ramdisk \u003d ramdisk_for_this_arch"},{"line_number":464,"context_line":"        else:"},{"line_number":465,"context_line":"            kernel \u003d getattr(CONF.conductor, kernel_name)"},{"line_number":466,"context_line":"            ramdisk \u003d getattr(CONF.conductor, ramdisk_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"efa24ac6_68ae5e17","line":463,"in_reply_to":"a47fa021_66ac7efc","updated":"2023-08-21 16:21:33.000000000","message":"Done","commit_id":"193a2a9654f38c50ea848c489930081958a825de"},{"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":"e02b572e057968a991b6d8abc16ee0bbc8f24cf7","unresolved":true,"context_lines":[{"line_number":447,"context_line":"    # from driver_info but deploy_ramdisk comes from configuration,"},{"line_number":448,"context_line":"    # since it\u0027s a sign of a potential operator\u0027s mistake."},{"line_number":449,"context_line":"    if not kernel or not ramdisk:"},{"line_number":450,"context_line":"        # If kernel and/or ramdisk are specified by architecture,"},{"line_number":451,"context_line":"        # prioritise them, otherwise use the default."},{"line_number":452,"context_line":"        kernel_dict_param_name \u003d f\u0027{mode}_kernel_by_arch\u0027"},{"line_number":453,"context_line":"        ramdisk_dict_param_name \u003d f\u0027{mode}_ramdisk_by_arch\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"bc10dc82_01b58756","line":450,"updated":"2023-08-15 20:14:23.000000000","message":"Practice in openstack is to provide an intro to your comment, e.g. NOTE(jjelinek)","commit_id":"32739a906a80fa1083be7be285597060877f4c94"},{"author":{"_account_id":35099,"name":"Jakub Jelinek","email":"jakub.jelinek@cern.ch","username":"kubajj"},"change_message_id":"d216014bd49c080ec7cb9cedd2c0e61f1398c6bd","unresolved":false,"context_lines":[{"line_number":447,"context_line":"    # from driver_info but deploy_ramdisk comes from configuration,"},{"line_number":448,"context_line":"    # since it\u0027s a sign of a potential operator\u0027s mistake."},{"line_number":449,"context_line":"    if not kernel or not ramdisk:"},{"line_number":450,"context_line":"        # If kernel and/or ramdisk are specified by architecture,"},{"line_number":451,"context_line":"        # prioritise them, otherwise use the default."},{"line_number":452,"context_line":"        kernel_dict_param_name \u003d f\u0027{mode}_kernel_by_arch\u0027"},{"line_number":453,"context_line":"        ramdisk_dict_param_name \u003d f\u0027{mode}_ramdisk_by_arch\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"2000a72d_92e6d58f","line":450,"in_reply_to":"bc10dc82_01b58756","updated":"2023-08-21 16:21:33.000000000","message":"Done","commit_id":"32739a906a80fa1083be7be285597060877f4c94"}],"releasenotes/notes/kernel-ramdisk-by-arch-c35cd2fe09f6ee98.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":"d1b61cdd28fc0cf12288c56b10be1b2e43b4c58f","unresolved":true,"context_lines":[{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    The `deploy_kernel`, `deploy_ramdisk`, `rescue_kernel`, and"},{"line_number":12,"context_line":"    `rescue_ramdisk` parameters have been marked as deprecated as the new"},{"line_number":13,"context_line":"    parameters allow for "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3185f194_f002f8cf","line":13,"updated":"2023-08-28 15:41:13.000000000","message":"this sorta trails off","commit_id":"8d09b349ccf2149cfea9c0e3c49d0c95eb11d53a"}]}
