)]}'
{"etc/ironic/network-data-schema.json":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"df33271e_efb8492b","updated":"2020-04-08 08:55:21.000000000","message":"Let\u0027s not create this /etc directory, it\u0027s probably fine to just put it with the API","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"}],"ironic/conf/redfish.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6833928cc17add7c112bf8c1168d20bd4d5472ab","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                      \u0027/proc/cmdline. Mind severe cmdline size limit! Can be \u0027"},{"line_number":69,"context_line":"                      \u0027overridden by `instance_info/kernel_append_params` \u0027"},{"line_number":70,"context_line":"                      \u0027property.\u0027)),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027network_data_schema\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027/etc/ironic/network-data-schema.json\u0027,"},{"line_number":73,"context_line":"               help\u003d_(\u0027URL, Glance UUID or path to JSON schema file to use \u0027"},{"line_number":74,"context_line":"                      \u0027for node `network_data` field validation. Required \u0027"},{"line_number":75,"context_line":"                      \u0027only if `network_data` field contents is not empty.\u0027)),"},{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_875ab87f","line":75,"range":{"start_line":71,"start_character":0,"end_line":75,"end_character":78},"updated":"2020-04-02 23:53:43.000000000","message":"While redfish is the first in-tree version, it is not specific to the redfish interface nor should we have an ilo, or idrac specific schema setting. Likley I\u0027m guessing this should go under conductor.py","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                      \u0027/proc/cmdline. Mind severe cmdline size limit! Can be \u0027"},{"line_number":69,"context_line":"                      \u0027overridden by `instance_info/kernel_append_params` \u0027"},{"line_number":70,"context_line":"                      \u0027property.\u0027)),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027network_data_schema\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027/etc/ironic/network-data-schema.json\u0027,"},{"line_number":73,"context_line":"               help\u003d_(\u0027URL, Glance UUID or path to JSON schema file to use \u0027"},{"line_number":74,"context_line":"                      \u0027for node `network_data` field validation. Required \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_2f84f15d","line":71,"updated":"2020-04-08 08:55:21.000000000","message":"There is no reason to make it configurable","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5d889c2782172a6d13bee8e382e1cb8c3fb67d68","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                      \u0027/proc/cmdline. Mind severe cmdline size limit! Can be \u0027"},{"line_number":69,"context_line":"                      \u0027overridden by `instance_info/kernel_append_params` \u0027"},{"line_number":70,"context_line":"                      \u0027property.\u0027)),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027network_data_schema\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027/etc/ironic/network-data-schema.json\u0027,"},{"line_number":73,"context_line":"               help\u003d_(\u0027URL, Glance UUID or path to JSON schema file to use \u0027"},{"line_number":74,"context_line":"                      \u0027for node `network_data` field validation. Required \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_c489c375","line":71,"in_reply_to":"df33271e_2f84f15d","updated":"2020-04-09 11:04:47.000000000","message":"I doubt the highly prescriptive and rigid approach to network configuration management is a good thing.\n\nOn the other hand (having read on the competing projects lately) I feel like we should merge this patch chain ASAP to remain relevant.\n\nTherefore - removed.","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"}],"ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from alembic import op"},{"line_number":21,"context_line":"import sqlalchemy as sa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# revision identifiers, used by Alembic."},{"line_number":25,"context_line":"revision \u003d \u0027cf1a80fdb352\u0027"},{"line_number":26,"context_line":"down_revision \u003d \u0027cd2c80feb331\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_0f876d63","line":23,"updated":"2020-04-08 08:55:21.000000000","message":"nit: unrelated whitespace change","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5d889c2782172a6d13bee8e382e1cb8c3fb67d68","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from alembic import op"},{"line_number":21,"context_line":"import sqlalchemy as sa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# revision identifiers, used by Alembic."},{"line_number":25,"context_line":"revision \u003d \u0027cf1a80fdb352\u0027"},{"line_number":26,"context_line":"down_revision \u003d \u0027cd2c80feb331\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_04860b14","line":23,"in_reply_to":"df33271e_0f876d63","updated":"2020-04-09 11:04:47.000000000","message":"Done","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"    with tempfile.NamedTemporaryFile(dir\u003dCONF.tempdir) as fl:"},{"line_number":1249,"context_line":"        network_data_schema \u003d fl.name"},{"line_number":1250,"context_line":"        service \u003d image_service.get_image_service(network_data_schema_ref)"},{"line_number":1251,"context_line":"        service.download(network_data_schema_ref, network_data_schema)"},{"line_number":1252,"context_line":""},{"line_number":1253,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_2fe99119","line":1250,"updated":"2020-04-08 08:55:21.000000000","message":"Why are we downloading the schema? Oo It\u0027s just a local file.","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5d889c2782172a6d13bee8e382e1cb8c3fb67d68","unresolved":false,"context_lines":[{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"    with tempfile.NamedTemporaryFile(dir\u003dCONF.tempdir) as fl:"},{"line_number":1249,"context_line":"        network_data_schema \u003d fl.name"},{"line_number":1250,"context_line":"        service \u003d image_service.get_image_service(network_data_schema_ref)"},{"line_number":1251,"context_line":"        service.download(network_data_schema_ref, network_data_schema)"},{"line_number":1252,"context_line":""},{"line_number":1253,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_448653bb","line":1250,"in_reply_to":"df33271e_2fe99119","updated":"2020-04-09 11:04:47.000000000","message":"Same reason - not to vendor-lock the operator to this specific schema/version.\n\nRemoved.","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"}],"ironic/drivers/modules/redfish/boot.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6833928cc17add7c112bf8c1168d20bd4d5472ab","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                             \"use for node `network_data` field validation. \""},{"line_number":71,"context_line":"                             \"Overrides [redfish]/network_data_schema ironic \""},{"line_number":72,"context_line":"                             \"option. \"),"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RESCUE_PROPERTIES \u003d {"},{"line_number":76,"context_line":"    \u0027rescue_kernel\u0027: _(\u0027URL or Glance UUID of the rescue kernel. This value \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_e748e4b3","line":73,"updated":"2020-04-02 23:53:43.000000000","message":"why are we making the schema node.driver_info settable?","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"67cb526237217c36a3a03ae8157521d467e6e524","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                             \"use for node `network_data` field validation. \""},{"line_number":71,"context_line":"                             \"Overrides [redfish]/network_data_schema ironic \""},{"line_number":72,"context_line":"                             \"option. \"),"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RESCUE_PROPERTIES \u003d {"},{"line_number":76,"context_line":"    \u0027rescue_kernel\u0027: _(\u0027URL or Glance UUID of the rescue kernel. This value \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_c86f5fc3","line":73,"in_reply_to":"df33271e_17305507","updated":"2020-04-07 11:16:07.000000000","message":"Removed","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e725d44f1c794b3db5aeb3a3ca5dbd2a72c74433","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                             \"use for node `network_data` field validation. \""},{"line_number":71,"context_line":"                             \"Overrides [redfish]/network_data_schema ironic \""},{"line_number":72,"context_line":"                             \"option. \"),"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RESCUE_PROPERTIES \u003d {"},{"line_number":76,"context_line":"    \u0027rescue_kernel\u0027: _(\u0027URL or Glance UUID of the rescue kernel. This value \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_17305507","line":73,"in_reply_to":"df33271e_7bea9fac","updated":"2020-04-06 22:33:42.000000000","message":"Best done as a follow-up, the focus for now, is deployment.","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"e8acbc7e74a624413921443a7af5f9136587b657","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                             \"use for node `network_data` field validation. \""},{"line_number":71,"context_line":"                             \"Overrides [redfish]/network_data_schema ironic \""},{"line_number":72,"context_line":"                             \"option. \"),"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RESCUE_PROPERTIES \u003d {"},{"line_number":76,"context_line":"    \u0027rescue_kernel\u0027: _(\u0027URL or Glance UUID of the rescue kernel. This value \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_7bea9fac","line":73,"in_reply_to":"df33271e_e748e4b3","updated":"2020-04-03 16:26:08.000000000","message":"The intent is to support different OS bootstrapping tools e.g. one node boots  image with Glean/cloud-init, while the other node boots image with some site-specific bootstrapping tools.\n\nPerhaps this is a rare use-case, so this option might not normally be used in favor of global configuration option.","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6833928cc17add7c112bf8c1168d20bd4d5472ab","unresolved":false,"context_lines":[{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        with tempfile.NamedTemporaryFile(dir\u003dCONF.tempdir) as fl:"},{"line_number":685,"context_line":"            network_data_schema \u003d fl.name"},{"line_number":686,"context_line":"            service \u003d image_service.get_image_service(network_data_schema_ref)"},{"line_number":687,"context_line":"            service.download(network_data_schema_ref, network_data_schema)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_e7dd84dd","line":686,"updated":"2020-04-02 23:53:43.000000000","message":"shouln\u0027t it just be a local file on the conductor that the admin has to pair with the install? In Metal3, surely we would supply a stock file and not expect operators to supply it.\n\nAlso, no glance in the metal3 case. :)","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"e8acbc7e74a624413921443a7af5f9136587b657","unresolved":false,"context_lines":[{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        with tempfile.NamedTemporaryFile(dir\u003dCONF.tempdir) as fl:"},{"line_number":685,"context_line":"            network_data_schema \u003d fl.name"},{"line_number":686,"context_line":"            service \u003d image_service.get_image_service(network_data_schema_ref)"},{"line_number":687,"context_line":"            service.download(network_data_schema_ref, network_data_schema)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_9b332363","line":686,"in_reply_to":"df33271e_e7dd84dd","updated":"2020-04-03 16:26:08.000000000","message":"Well, Glance is purely optional here. The intent is to have some degree of centralization e.g. in the case of many conductors sourcing the same schema from HTTP/Glance.","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6833928cc17add7c112bf8c1168d20bd4d5472ab","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        :raises: MissingParameterValue on missing parameter(s)"},{"line_number":708,"context_line":"        \"\"\""},{"line_number":709,"context_line":"        self._validate_driver_info(task)"},{"line_number":710,"context_line":"        self._validate_network_data(task)"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        if task.driver.storage.should_write_image(task):"},{"line_number":713,"context_line":"            self._validate_instance_info(task)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_67eb3477","line":710,"updated":"2020-04-02 23:53:43.000000000","message":"lets make a deploy_utils helper and call that from each driver that obtains support for dhcp-less virtual media. I\u0027d like to be able to adapt the ilo driver to support this without copying any code.","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"67cb526237217c36a3a03ae8157521d467e6e524","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        :raises: MissingParameterValue on missing parameter(s)"},{"line_number":708,"context_line":"        \"\"\""},{"line_number":709,"context_line":"        self._validate_driver_info(task)"},{"line_number":710,"context_line":"        self._validate_network_data(task)"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        if task.driver.storage.should_write_image(task):"},{"line_number":713,"context_line":"            self._validate_instance_info(task)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_d321d4a1","line":710,"in_reply_to":"df33271e_67eb3477","updated":"2020-04-07 11:16:07.000000000","message":"Done","commit_id":"3e4f095098a3b320bb7879e3bd569419caf15c15"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"83a24207de8be0c623875376a84f10ad206ed233","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        deploy_utils.validate_image_properties(task.context, d_info, props)"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"    @classmethod"},{"line_number":662,"context_line":"    def _validate_network_data(cls, task):"},{"line_number":663,"context_line":"        \"\"\"Validates node network_data field."},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"        This method validates network data configuration against JSON"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_b72a498d","line":662,"range":{"start_line":662,"start_character":0,"end_line":662,"end_character":42},"updated":"2020-04-06 22:35:02.000000000","message":"This should be in deploy_utils or some other driver common code file  so it can be reused/adopted by other drivers.","commit_id":"0af63ec60a988d3cb304e444cd6b746327642d33"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                    \"used by ironic when building UEFI-bootable ISO \""},{"line_number":64,"context_line":"                    \"out of kernel and ramdisk. Required for UEFI \""},{"line_number":65,"context_line":"                    \"boot from partition images.\"),"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"RESCUE_PROPERTIES \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_6ff3990b","side":"PARENT","line":66,"updated":"2020-04-08 08:55:21.000000000","message":"nit: unrelated whitespace change","commit_id":"de04e4a4104d99e4e14fb0b88d29b0dbda12210d"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5d889c2782172a6d13bee8e382e1cb8c3fb67d68","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                    \"used by ironic when building UEFI-bootable ISO \""},{"line_number":64,"context_line":"                    \"out of kernel and ramdisk. Required for UEFI \""},{"line_number":65,"context_line":"                    \"boot from partition images.\"),"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"RESCUE_PROPERTIES \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_84a5fb49","side":"PARENT","line":66,"in_reply_to":"df33271e_6ff3990b","updated":"2020-04-09 11:04:47.000000000","message":"Done","commit_id":"de04e4a4104d99e4e14fb0b88d29b0dbda12210d"}],"ironic/tests/unit/drivers/modules/test_deploy_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[{"line_number":2298,"context_line":"        self.node \u003d obj_utils.create_test_node("},{"line_number":2299,"context_line":"            self.context, driver\u003d\"fake-hardware\")"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"    @mock.patch.object(tempfile, \u0027NamedTemporaryFile\u0027,"},{"line_number":2302,"context_line":"                       autospec\u003dTrue)"},{"line_number":2303,"context_line":"    @mock.patch.object(image_service, \u0027get_image_service\u0027,"},{"line_number":2304,"context_line":"                       autospec\u003dTrue)"},{"line_number":2305,"context_line":"    @mock.patch.object(jsonschema, \u0027validate\u0027,"},{"line_number":2306,"context_line":"                       autospec\u003dTrue)"},{"line_number":2307,"context_line":"    def test__validate_network_data_default("},{"line_number":2308,"context_line":"            self, mock_validate, mock_gis, mock_tempfile):"},{"line_number":2309,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_4ff695fb","line":2306,"range":{"start_line":2301,"start_character":0,"end_line":2306,"end_character":37},"updated":"2020-04-08 08:55:21.000000000","message":"nit: move to the class level","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5d889c2782172a6d13bee8e382e1cb8c3fb67d68","unresolved":false,"context_lines":[{"line_number":2298,"context_line":"        self.node \u003d obj_utils.create_test_node("},{"line_number":2299,"context_line":"            self.context, driver\u003d\"fake-hardware\")"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"    @mock.patch.object(tempfile, \u0027NamedTemporaryFile\u0027,"},{"line_number":2302,"context_line":"                       autospec\u003dTrue)"},{"line_number":2303,"context_line":"    @mock.patch.object(image_service, \u0027get_image_service\u0027,"},{"line_number":2304,"context_line":"                       autospec\u003dTrue)"},{"line_number":2305,"context_line":"    @mock.patch.object(jsonschema, \u0027validate\u0027,"},{"line_number":2306,"context_line":"                       autospec\u003dTrue)"},{"line_number":2307,"context_line":"    def test__validate_network_data_default("},{"line_number":2308,"context_line":"            self, mock_validate, mock_gis, mock_tempfile):"},{"line_number":2309,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_0448cb84","line":2306,"range":{"start_line":2301,"start_character":0,"end_line":2306,"end_character":37},"in_reply_to":"df33271e_4ff695fb","updated":"2020-04-09 11:04:47.000000000","message":"Good point! Done.","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"}],"releasenotes/notes/add-network-data-validation-5fad1245abca73fd.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ebecc5a91aa81c9451a33a4561cc181cef55aae9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"df33271e_8fd7fd4f","updated":"2020-04-08 08:55:21.000000000","message":"Not needed, implied by the field\u0027s existence","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"5d889c2782172a6d13bee8e382e1cb8c3fb67d68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"df33271e_445db345","in_reply_to":"df33271e_8fd7fd4f","updated":"2020-04-09 11:04:47.000000000","message":"Removed","commit_id":"fb8cec94cd033a53e4b3019cbdda6ca206442bea"}]}
