)]}'
{"ironic/api/controllers/v1/driver.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"13da2ce013b647aee98c32c93fcd0ed1b69bd326","unresolved":false,"context_lines":[{"line_number":221,"context_line":"    @method.expose()"},{"line_number":222,"context_line":"    @method.body(\u0027data\u0027)"},{"line_number":223,"context_line":"    @args.validate(driver_name\u003dargs.string, method\u003dargs.string)"},{"line_number":224,"context_line":"    def _default(self, driver_name, method, data\u003dNone):"},{"line_number":225,"context_line":"        \"\"\"Call a driver API extension."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param driver_name: name of the driver to call."}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_78e639eb","line":224,"updated":"2020-11-18 22:14:11.000000000","message":"method is treated as a mandatory argument by args.validate when it has no default value","commit_id":"9a3a0ba32183d09add3085d80f6df7067f91dd0b"}],"ironic/api/controllers/v1/node.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"13da2ce013b647aee98c32c93fcd0ed1b69bd326","unresolved":false,"context_lines":[{"line_number":1283,"context_line":"        # with support for the ssh power driver."},{"line_number":1284,"context_line":"        if node[\u0027driver_info\u0027].get(\u0027ssh_key_contents\u0027):"},{"line_number":1285,"context_line":"            node[\u0027driver_info\u0027][\u0027ssh_key_contents\u0027] \u003d \"******\""},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"    if not show_instance_secrets and node.get(\u0027instance_info\u0027):"},{"line_number":1288,"context_line":"        node[\u0027instance_info\u0027] \u003d strutils.mask_dict_password("},{"line_number":1289,"context_line":"            node[\u0027instance_info\u0027], \"******\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_58eb75af","side":"PARENT","line":1286,"updated":"2020-11-18 22:14:11.000000000","message":"This driver was deleted in queens","commit_id":"f408d63adceb6809d9bb62321493cbc0f18d1a20"}],"ironic/api/controllers/v1/utils.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"13da2ce013b647aee98c32c93fcd0ed1b69bd326","unresolved":false,"context_lines":[{"line_number":226,"context_line":"    return to_dict"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"def populate_node_uuid(obj, to_dict, raise_notfound\u003dTrue):"},{"line_number":230,"context_line":"    \"\"\"Look up the node referenced in the object and populate a dict."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    The node is fetched with the object ``node_id`` attribute and the"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_f8d98922","side":"PARENT","line":229,"updated":"2020-11-18 22:14:11.000000000","message":"Only one caller needed raise_notfound\u003dFalse, so it does the try/except itself now","commit_id":"f408d63adceb6809d9bb62321493cbc0f18d1a20"}],"ironic/common/args.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ac5e56878924b9d1caa3a35edc6e1cf6d6804a20","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"\"\""},{"line_number":274,"context_line":"    if None in types:"},{"line_number":275,"context_line":"        types \u003d list(types)"},{"line_number":276,"context_line":"        types[types.index(None)] \u003d type(None)"},{"line_number":277,"context_line":"    return functools.partial(_validate_types, types\u003dtuple(types))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"04c2b6d1_99fd9e83","line":276,"updated":"2020-11-23 11:14:08.000000000","message":"maybe\n\n types \u003d tuple((type(None) if tp is None else tp) for tp in types)\n\n?","commit_id":"a8b5413d45bd61bb711699f117987fe3b5869c43"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"f5c7db50543723e5aa7101deb772df245db9318d","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"\"\""},{"line_number":274,"context_line":"    if None in types:"},{"line_number":275,"context_line":"        types \u003d list(types)"},{"line_number":276,"context_line":"        types[types.index(None)] \u003d type(None)"},{"line_number":277,"context_line":"    return functools.partial(_validate_types, types\u003dtuple(types))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"b4bfa3f4_a172d975","line":276,"in_reply_to":"02ce9b5d_2836c9d9","updated":"2020-11-24 02:14:17.000000000","message":"Done","commit_id":"a8b5413d45bd61bb711699f117987fe3b5869c43"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"da9f0744b02879e3f13701241c7fb98567f8b24d","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"\"\""},{"line_number":274,"context_line":"    if None in types:"},{"line_number":275,"context_line":"        types \u003d list(types)"},{"line_number":276,"context_line":"        types[types.index(None)] \u003d type(None)"},{"line_number":277,"context_line":"    return functools.partial(_validate_types, types\u003dtuple(types))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"02ce9b5d_2836c9d9","line":276,"in_reply_to":"04c2b6d1_99fd9e83","updated":"2020-11-23 20:28:10.000000000","message":"oh thats much nicer","commit_id":"a8b5413d45bd61bb711699f117987fe3b5869c43"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ac5e56878924b9d1caa3a35edc6e1cf6d6804a20","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    if None in types:"},{"line_number":275,"context_line":"        types \u003d list(types)"},{"line_number":276,"context_line":"        types[types.index(None)] \u003d type(None)"},{"line_number":277,"context_line":"    return functools.partial(_validate_types, types\u003dtuple(types))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"def _apply_validator(name, value, val_functions):"}],"source_content_type":"text/x-python","patch_set":2,"id":"e6104dfa_9fba081f","line":277,"updated":"2020-11-23 11:14:08.000000000","message":".. and then you won\u0027t need the tuple() call here","commit_id":"a8b5413d45bd61bb711699f117987fe3b5869c43"}]}
