)]}'
{"plugins/modules/federation_mapping.py":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"4baaa0b43ac01337688a4ba26bfada5e0b4fccd6","unresolved":true,"context_lines":[{"line_number":105,"context_line":"    argument_spec \u003d dict("},{"line_number":106,"context_line":"        name\u003ddict(required\u003dTrue, aliases\u003d[\u0027id\u0027]),"},{"line_number":107,"context_line":"        rules\u003ddict("},{"line_number":108,"context_line":"            type\u003d\u0027list\u0027,"},{"line_number":109,"context_line":"            elements\u003d\u0027dict\u0027,"},{"line_number":110,"context_line":"            options\u003ddict("},{"line_number":111,"context_line":"                local\u003ddict(required\u003dTrue, type\u003d\u0027list\u0027, elements\u003d\u0027dict\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab1ec6c6_df497cd2","line":108,"range":{"start_line":108,"start_character":12,"end_line":108,"end_character":24},"updated":"2022-11-10 11:18:23.000000000","message":"worth to add default\u003d[], see below","commit_id":"cb1c1ee28b6824bc0e40b0ab5fff2ec4ed39f939"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"0d4345e55daaaa31fdcc282850f14358d660517a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    argument_spec \u003d dict("},{"line_number":106,"context_line":"        name\u003ddict(required\u003dTrue, aliases\u003d[\u0027id\u0027]),"},{"line_number":107,"context_line":"        rules\u003ddict("},{"line_number":108,"context_line":"            type\u003d\u0027list\u0027,"},{"line_number":109,"context_line":"            elements\u003d\u0027dict\u0027,"},{"line_number":110,"context_line":"            options\u003ddict("},{"line_number":111,"context_line":"                local\u003ddict(required\u003dTrue, type\u003d\u0027list\u0027, elements\u003d\u0027dict\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"f882ce88_5276ecde","line":108,"range":{"start_line":108,"start_character":12,"end_line":108,"end_character":24},"in_reply_to":"ab1ec6c6_df497cd2","updated":"2022-11-10 18:55:26.000000000","message":"solved differently, see below ;)","commit_id":"cb1c1ee28b6824bc0e40b0ab5fff2ec4ed39f939"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"4baaa0b43ac01337688a4ba26bfada5e0b4fccd6","unresolved":true,"context_lines":[{"line_number":155,"context_line":"    def _build_update(self, mapping):"},{"line_number":156,"context_line":"        update \u003d {}"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if len(self.params[\u0027rules\u0027]) \u003c 1:"},{"line_number":159,"context_line":"            self.fail_json(msg\u003d\u0027At least one rule must be passed\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        attributes \u003d dict("}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2a86ab_ca562253","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":41},"updated":"2022-11-10 11:18:23.000000000","message":"it can be None if not set and no default","commit_id":"cb1c1ee28b6824bc0e40b0ab5fff2ec4ed39f939"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"0d4345e55daaaa31fdcc282850f14358d660517a","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def _build_update(self, mapping):"},{"line_number":156,"context_line":"        update \u003d {}"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if len(self.params[\u0027rules\u0027]) \u003c 1:"},{"line_number":159,"context_line":"            self.fail_json(msg\u003d\u0027At least one rule must be passed\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        attributes \u003d dict("}],"source_content_type":"text/x-python","patch_set":1,"id":"3403ca88_c414c309","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":41},"in_reply_to":"5f2a86ab_ca562253","updated":"2022-11-10 18:55:26.000000000","message":"Actually i dropped the whole check code. Lets Keystsone handle this case, no need to add additional checks here. If we would decide to go that route and add checks, then we should do it properly which would be much more work.","commit_id":"cb1c1ee28b6824bc0e40b0ab5fff2ec4ed39f939"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"4baaa0b43ac01337688a4ba26bfada5e0b4fccd6","unresolved":true,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        attributes \u003d dict("},{"line_number":162,"context_line":"            (k, self.params[p])"},{"line_number":163,"context_line":"            for (p, k) in {\u0027rules\u0027: \u0027rules\u0027}.items()"},{"line_number":164,"context_line":"            if p in self.params and self.params[p] is not None"},{"line_number":165,"context_line":"            and self.params[p] !\u003d mapping[k])"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fdee925b_d86ee886","line":163,"range":{"start_line":163,"start_character":26,"end_line":163,"end_character":52},"updated":"2022-11-10 11:18:23.000000000","message":"not sure I understand this statement.. {\u0027rules\u0027: \u0027rules\u0027}.items() is (\u0027rules\u0027, \u0027rules\u0027)\ndid you mean \u0027rules\u0027: self.params[\u0027rules\u0027]}.items() ?","commit_id":"cb1c1ee28b6824bc0e40b0ab5fff2ec4ed39f939"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"0d4345e55daaaa31fdcc282850f14358d660517a","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        attributes \u003d dict("},{"line_number":162,"context_line":"            (k, self.params[p])"},{"line_number":163,"context_line":"            for (p, k) in {\u0027rules\u0027: \u0027rules\u0027}.items()"},{"line_number":164,"context_line":"            if p in self.params and self.params[p] is not None"},{"line_number":165,"context_line":"            and self.params[p] !\u003d mapping[k])"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"6920a38a_2e0d787b","line":163,"range":{"start_line":163,"start_character":26,"end_line":163,"end_character":52},"in_reply_to":"fdee925b_d86ee886","updated":"2022-11-10 18:55:26.000000000","message":"I am using the same kind of functionality in keystone_federation_protocol module where it is necessary because the module parameter name and the protocol attribute name are different. I copied the code over to this module to make it easier to diff both modules.\n\nBut yeah, its kind of complicated and thus i simplified the code.","commit_id":"cb1c1ee28b6824bc0e40b0ab5fff2ec4ed39f939"}]}
