)]}'
{"ironic_discoverd/plugins/edeploy.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"995211b08049642495904d7c1a657e539bda92c8","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            capabilities \u003d node.properties.get(\u0027capabilities\u0027)"},{"line_number":107,"context_line":"            if capabilities:"},{"line_number":108,"context_line":"                capabilities \u003d \u0027,\u0027.join([capabilities, new_capability])"},{"line_number":109,"context_line":"            else:"},{"line_number":110,"context_line":"                capabilities \u003d new_capability"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_891eceb9","line":108,"updated":"2015-02-24 16:47:58.000000000","message":"we should check if \u0027profile\u0027 is already in capabilities","commit_id":"58cb41e1cdd40df00631acf496acd21bf3947da1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dcc90892beab27e713d1de60ff14a6cabfb67640","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            if capabilities:"},{"line_number":106,"context_line":"                capabilities_dict \u003d utils.capabilities_to_dict(capabilities)"},{"line_number":107,"context_line":"                # Remove profile the old profile, if present"},{"line_number":108,"context_line":"                capabilities_dict.pop(\u0027profile\u0027, None)"},{"line_number":109,"context_line":"                # Add the new profile"},{"line_number":110,"context_line":"                capabilities_dict[\u0027profile\u0027] \u003d node_info[\u0027hardware\u0027][\u0027profile\u0027]"},{"line_number":111,"context_line":"                capabilities \u003d utils.dict_to_capabilities(capabilities_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_6ae5ecda","line":108,"updated":"2015-02-25 08:51:27.000000000","message":"this is not required, X[K] \u003d overwrites value anyway","commit_id":"d5d880883c59e9636b3c5180e244086418ecf402"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5b47da4f210aae75338779b04bcaa28fc12e688c","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            if capabilities:"},{"line_number":106,"context_line":"                capabilities_dict \u003d utils.capabilities_to_dict(capabilities)"},{"line_number":107,"context_line":"                # Remove profile the old profile, if present"},{"line_number":108,"context_line":"                capabilities_dict.pop(\u0027profile\u0027, None)"},{"line_number":109,"context_line":"                # Add the new profile"},{"line_number":110,"context_line":"                capabilities_dict[\u0027profile\u0027] \u003d node_info[\u0027hardware\u0027][\u0027profile\u0027]"},{"line_number":111,"context_line":"                capabilities \u003d utils.dict_to_capabilities(capabilities_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_69189775","line":108,"in_reply_to":"ba7be1f8_6ae5ecda","updated":"2015-02-25 10:20:22.000000000","message":"Done","commit_id":"d5d880883c59e9636b3c5180e244086418ecf402"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dcc90892beab27e713d1de60ff14a6cabfb67640","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                capabilities_dict[\u0027profile\u0027] \u003d node_info[\u0027hardware\u0027][\u0027profile\u0027]"},{"line_number":111,"context_line":"                capabilities \u003d utils.dict_to_capabilities(capabilities_dict)"},{"line_number":112,"context_line":"            else:"},{"line_number":113,"context_line":"                capabilities \u003d \u0027profile:%s\u0027 % node_info[\u0027hardware\u0027][\u0027profile\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            return ["},{"line_number":116,"context_line":"                {\u0027op\u0027: \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_2a9774ed","line":113,"updated":"2015-02-25 08:51:27.000000000","message":"instead of having an else branch here, I suggest making capabilities_to_dict playing nice with empty value, e.g.\n\n if not capabilities:\n   return {}","commit_id":"d5d880883c59e9636b3c5180e244086418ecf402"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5b47da4f210aae75338779b04bcaa28fc12e688c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                capabilities_dict[\u0027profile\u0027] \u003d node_info[\u0027hardware\u0027][\u0027profile\u0027]"},{"line_number":111,"context_line":"                capabilities \u003d utils.dict_to_capabilities(capabilities_dict)"},{"line_number":112,"context_line":"            else:"},{"line_number":113,"context_line":"                capabilities \u003d \u0027profile:%s\u0027 % node_info[\u0027hardware\u0027][\u0027profile\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            return ["},{"line_number":116,"context_line":"                {\u0027op\u0027: \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_29393fd7","line":113,"in_reply_to":"ba7be1f8_2a9774ed","updated":"2015-02-25 10:20:22.000000000","message":"Done","commit_id":"d5d880883c59e9636b3c5180e244086418ecf402"}],"ironic_discoverd/utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dcc90892beab27e713d1de60ff14a6cabfb67640","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def capabilities_to_dict(caps):"},{"line_number":101,"context_line":"    \"\"\"Convert the Node\u0027s capabilities into a dictionary.\"\"\""},{"line_number":102,"context_line":"    return dict([key.split(\u0027:\u0027) for key in caps.split(\u0027,\u0027)])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"def dict_to_capabilities(caps_dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_ca24180f","line":102,"updated":"2015-02-25 08:51:27.000000000","message":"key.split(\u0027:\u0027, 1) because as we figured out with Nisha, capabilities can be like x:y:z","commit_id":"d5d880883c59e9636b3c5180e244086418ecf402"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5b47da4f210aae75338779b04bcaa28fc12e688c","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def capabilities_to_dict(caps):"},{"line_number":101,"context_line":"    \"\"\"Convert the Node\u0027s capabilities into a dictionary.\"\"\""},{"line_number":102,"context_line":"    return dict([key.split(\u0027:\u0027) for key in caps.split(\u0027,\u0027)])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"def dict_to_capabilities(caps_dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_a9960f3d","line":102,"in_reply_to":"ba7be1f8_ca24180f","updated":"2015-02-25 10:20:22.000000000","message":"Done","commit_id":"d5d880883c59e9636b3c5180e244086418ecf402"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"da1d5bb32927c7614d99822487e01c1aee13ea51","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    \"\"\"Convert the Node\u0027s capabilities into a dictionary.\"\"\""},{"line_number":102,"context_line":"    if not caps:"},{"line_number":103,"context_line":"        return {}"},{"line_number":104,"context_line":"    return dict([key.split(\u0027:\u0027, 1) for key in caps.split(\u0027,\u0027)])"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"def dict_to_capabilities(caps_dict):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_3a9dfb66","line":104,"updated":"2015-02-25 11:34:18.000000000","message":"nit for the future: [] are not required at all here and below","commit_id":"cea076b4570f5f60ada9cae6eb7658b3ae4cc4fe"}]}
