)]}'
{"shade/operatorcloud.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb3b44f140eb85ac08b6add3c08c35856796e2c2","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"        return _utils.normalize_domains([domain])[0]"},{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"    def update_domain("},{"line_number":1037,"context_line":"            self, name_or_id, name\u003dNone, description\u003dNone, enabled\u003dNone):"},{"line_number":1038,"context_line":"        dom \u003d self.get_domain(name_or_id)"},{"line_number":1039,"context_line":"        if dom is None:"},{"line_number":1040,"context_line":"            raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_f4fd9509","line":1037,"updated":"2016-03-04 21:33:15.000000000","message":"API break","commit_id":"f25d347d0f64b22faebeb940b54b8652973ab752"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb3b44f140eb85ac08b6add3c08c35856796e2c2","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"                enabled\u003denabled))"},{"line_number":1049,"context_line":"        return _utils.normalize_domains([domain])[0]"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    def delete_domain(self, name_or_id):"},{"line_number":1052,"context_line":"        \"\"\"Delete a Keystone domain."},{"line_number":1053,"context_line":""},{"line_number":1054,"context_line":"        :param name_or_id: Name or ID of the domain to delete."}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_d4021909","line":1051,"updated":"2016-03-04 21:33:15.000000000","message":"API break","commit_id":"f25d347d0f64b22faebeb940b54b8652973ab752"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb3b44f140eb85ac08b6add3c08c35856796e2c2","unresolved":false,"context_lines":[{"line_number":1081,"context_line":"            domains \u003d self.manager.submitTask(_tasks.DomainList())"},{"line_number":1082,"context_line":"        return _utils.normalize_domains(domains)"},{"line_number":1083,"context_line":""},{"line_number":1084,"context_line":"    def search_domains(self, name_or_id, filters\u003dNone):"},{"line_number":1085,"context_line":"        \"\"\"Search Keystone domains."},{"line_number":1086,"context_line":""},{"line_number":1087,"context_line":"        :param name_or_id: domain name or id"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_b41cad6b","line":1084,"updated":"2016-03-04 21:33:15.000000000","message":"API break","commit_id":"f25d347d0f64b22faebeb940b54b8652973ab752"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb3b44f140eb85ac08b6add3c08c35856796e2c2","unresolved":false,"context_lines":[{"line_number":1100,"context_line":"        domains \u003d self.list_domains()"},{"line_number":1101,"context_line":"        return _utils._filter_list(domains, name_or_id, filters)"},{"line_number":1102,"context_line":""},{"line_number":1103,"context_line":"    def get_domain(self, name_or_id, filters\u003dNone):"},{"line_number":1104,"context_line":"        \"\"\"Get exactly one Keystone domain."},{"line_number":1105,"context_line":""},{"line_number":1106,"context_line":"        :param name_or_id: domain name or id."}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_f42475b3","line":1103,"updated":"2016-03-04 21:33:15.000000000","message":"API break","commit_id":"f25d347d0f64b22faebeb940b54b8652973ab752"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"429273421a3927a59d40686966ecb9fbe2881e86","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"        return _utils.normalize_domains([domain])[0]"},{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"    def update_domain("},{"line_number":1037,"context_line":"            self, domain_id, name_or_id\u003dNone, name\u003dNone, description\u003dNone,"},{"line_number":1038,"context_line":"            enabled\u003dNone):"},{"line_number":1039,"context_line":"        if name_or_id is not None:"},{"line_number":1040,"context_line":"            dom \u003d self.get_domain(None, name_or_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_3d6224ae","line":1037,"updated":"2016-03-06 20:59:29.000000000","message":"need to set domain_id\u003dNone","commit_id":"cb8378657e3eb36769782ad290dcd183051f3594"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"429273421a3927a59d40686966ecb9fbe2881e86","unresolved":false,"context_lines":[{"line_number":1036,"context_line":"    def update_domain("},{"line_number":1037,"context_line":"            self, domain_id, name_or_id\u003dNone, name\u003dNone, description\u003dNone,"},{"line_number":1038,"context_line":"            enabled\u003dNone):"},{"line_number":1039,"context_line":"        if name_or_id is not None:"},{"line_number":1040,"context_line":"            dom \u003d self.get_domain(None, name_or_id)"},{"line_number":1041,"context_line":"            if dom is None:"},{"line_number":1042,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_9d57f8c9","line":1039,"updated":"2016-03-06 20:59:29.000000000","message":"This gives the preference to name_or_id and not domain_id and domain_id is still required param to be passed.\n\nsomething like this might work...\n\n    if not domain_id:\n        #errcheck here for name_or_id is set\n        dom \u003d self.getdomain(None, name_or_id)\n        #errcheck domain is found\n        domain_id \u003d dom[\u0027id\u0027]\n\nThen none of the rest of the code needs to be touched","commit_id":"cb8378657e3eb36769782ad290dcd183051f3594"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"429273421a3927a59d40686966ecb9fbe2881e86","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"                enabled\u003denabled))"},{"line_number":1055,"context_line":"        return _utils.normalize_domains([domain])[0]"},{"line_number":1056,"context_line":""},{"line_number":1057,"context_line":"    def delete_domain(self, domain_id, name_or_id\u003dNone):"},{"line_number":1058,"context_line":"        \"\"\"Delete a Keystone domain."},{"line_number":1059,"context_line":""},{"line_number":1060,"context_line":"        :param domain_id: ID of the domain to delete."}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_7d5caced","line":1057,"updated":"2016-03-06 20:59:29.000000000","message":"domain_id\u003dNone","commit_id":"cb8378657e3eb36769782ad290dcd183051f3594"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"a8d6f18497eba2ef322a2ae700cfa43f3bc85003","unresolved":false,"context_lines":[{"line_number":1049,"context_line":"            domain_id \u003d dom[\u0027id\u0027]"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"        with _utils.shade_exceptions("},{"line_number":1052,"context_line":"                \"Error in updating domain {domain}\".format("},{"line_number":1053,"context_line":"                    domain\u003ddomain_id)):"},{"line_number":1054,"context_line":"            domain \u003d self.manager.submitTask(_tasks.DomainUpdate("},{"line_number":1055,"context_line":"                domain\u003ddomain_id, name\u003dname, description\u003ddescription,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_398d1632","line":1052,"updated":"2016-03-07 21:10:47.000000000","message":"no reason to split this line anymore","commit_id":"c9b82ef14ba8466482e35a678c85fb182f36d39b"},{"author":{"_account_id":1106,"name":"Ricardo Carrillo Cruz","email":"ricardo.carrillo.cruz@gmail.com","username":"rcc"},"change_message_id":"5d9aaf1e1822699f8daa39f30675ccf7250f133a","unresolved":false,"context_lines":[{"line_number":1049,"context_line":"            domain_id \u003d dom[\u0027id\u0027]"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"        with _utils.shade_exceptions("},{"line_number":1052,"context_line":"                \"Error in updating domain {domain}\".format("},{"line_number":1053,"context_line":"                    domain\u003ddomain_id)):"},{"line_number":1054,"context_line":"            domain \u003d self.manager.submitTask(_tasks.DomainUpdate("},{"line_number":1055,"context_line":"                domain\u003ddomain_id, name\u003dname, description\u003ddescription,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_592bc2eb","line":1052,"in_reply_to":"5aef4532_398d1632","updated":"2016-03-07 21:15:13.000000000","message":"don\u0027t follow here, what split you mean?","commit_id":"c9b82ef14ba8466482e35a678c85fb182f36d39b"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"a8d6f18497eba2ef322a2ae700cfa43f3bc85003","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"                    _tasks.DomainList(**filters))"},{"line_number":1123,"context_line":"            return _utils.normalize_domains(domains)"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"    def get_domain(self, domain_id, name_or_id\u003dNone, filters\u003dNone):"},{"line_number":1126,"context_line":"        \"\"\"Get exactly one Keystone domain."},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        :param domain_id: domain id."}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_99826aff","line":1125,"updated":"2016-03-07 21:10:47.000000000","message":"domain_id\u003dNone","commit_id":"c9b82ef14ba8466482e35a678c85fb182f36d39b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3bdc60b5b961d7c1684e5a3f5e64b680fb24e0f1","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"                    _tasks.DomainList(**filters))"},{"line_number":1122,"context_line":"            return _utils.normalize_domains(domains)"},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"    def get_domain(self, domain_id\u003dNone, name_or_id\u003dNone, filters\u003dNone):"},{"line_number":1125,"context_line":"        \"\"\"Get exactly one Keystone domain."},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        :param domain_id: domain id."}],"source_content_type":"text/x-python","patch_set":5,"id":"5aef4532_196f472c","line":1124,"updated":"2016-03-08 18:27:55.000000000","message":"I do not  agree with the use of \u0027filters\u0027 here. Adding this duplicates the functionality of search_domains. get_domain() is meant to return one and only one domain.","commit_id":"5ad732e6a7339d9b98ce4ad0ffd9472d356c6496"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3ae9119435068d705e37e2bbff23081600151597","unresolved":false,"context_lines":[{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"    def update_domain("},{"line_number":1037,"context_line":"            self, domain_id\u003dNone, name_or_id\u003dNone, name\u003dNone, description\u003dNone,"},{"line_number":1038,"context_line":"            enabled\u003dNone):"},{"line_number":1039,"context_line":"        if domain_id is None:"},{"line_number":1040,"context_line":"            if name_or_id is None:"},{"line_number":1041,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":12,"id":"5aef4532_37871eb6","line":1038,"updated":"2016-03-10 20:18:00.000000000","message":"You should move name_or_id to the last parameter, otherwise you\u0027d be breaking anyone depending on the current parameter order.","commit_id":"3b0780c154f3340025c3f9928a31e5902aeeeb1c"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"37555d7f30d6fc4ec54fa4f2e451a328f740bd8b","unresolved":false,"context_lines":[{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"    def update_domain("},{"line_number":1037,"context_line":"            self, domain_id\u003dNone, name_or_id\u003dNone, name\u003dNone, description\u003dNone,"},{"line_number":1038,"context_line":"            enabled\u003dNone):"},{"line_number":1039,"context_line":"        if domain_id is None:"},{"line_number":1040,"context_line":"            if name_or_id is None:"},{"line_number":1041,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":12,"id":"5aef4532_5a4e4f3b","line":1038,"in_reply_to":"5aef4532_37871eb6","updated":"2016-03-10 20:20:00.000000000","message":"on that note, should we be warning on positional args? i feel this will just be more and more of an issue as time goes on","commit_id":"3b0780c154f3340025c3f9928a31e5902aeeeb1c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3ae9119435068d705e37e2bbff23081600151597","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"            domains \u003d self.manager.submitTask(_tasks.DomainList())"},{"line_number":1097,"context_line":"        return _utils.normalize_domains(domains)"},{"line_number":1098,"context_line":""},{"line_number":1099,"context_line":"    def search_domains(self, name_or_id\u003dNone, filters\u003dNone):"},{"line_number":1100,"context_line":"        \"\"\"Search Keystone domains."},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"        :param name_or_id: domain name or id"}],"source_content_type":"text/x-python","patch_set":12,"id":"5aef4532_7729a69a","line":1099,"updated":"2016-03-10 20:18:00.000000000","message":"Again, name_or_id needs to be the last parameter to not break folks (although I know it will suck being different from all of the other search methods).","commit_id":"3b0780c154f3340025c3f9928a31e5902aeeeb1c"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"dc7a6e707985336a8c585151c736ffa6b85878b8","unresolved":false,"context_lines":[{"line_number":1074,"context_line":"            dom \u003d self.get_domain(None, name_or_id)"},{"line_number":1075,"context_line":"            if dom is None:"},{"line_number":1076,"context_line":"                self.log.debug("},{"line_number":1077,"context_line":"                    \"Domain {0} not found for deleting\".format(name_or_id))"},{"line_number":1078,"context_line":"            domain_id \u003d dom[\u0027id\u0027]"},{"line_number":1079,"context_line":""},{"line_number":1080,"context_line":"        with _utils.shade_exceptions("}],"source_content_type":"text/x-python","patch_set":16,"id":"1af94dfe_75e28c30","line":1077,"updated":"2016-03-17 20:43:22.000000000","message":"It makes no sense to continue on at this point if the domain does not exist. In fact, I believe this would likely cause an exception because the very next line will attempt to access the \u0027id\u0027 attribute of a None object. I suspect we need a new test for deleting a non-existing domain.\n\nI think we need to change this delete to match the pattern of other deletes. Return True if the delete succeeded, False if there is nothing to delete (that would go here after the log message), or raise exception on error.","commit_id":"a4dd447884e894bf4c63168610edecd0799bcf3d"},{"author":{"_account_id":1106,"name":"Ricardo Carrillo Cruz","email":"ricardo.carrillo.cruz@gmail.com","username":"rcc"},"change_message_id":"1f2eb2ae1b12ae428778a3b67d2a6518fce0d598","unresolved":false,"context_lines":[{"line_number":1074,"context_line":"            dom \u003d self.get_domain(None, name_or_id)"},{"line_number":1075,"context_line":"            if dom is None:"},{"line_number":1076,"context_line":"                self.log.debug("},{"line_number":1077,"context_line":"                    \"Domain {0} not found for deleting\".format(name_or_id))"},{"line_number":1078,"context_line":"            domain_id \u003d dom[\u0027id\u0027]"},{"line_number":1079,"context_line":""},{"line_number":1080,"context_line":"        with _utils.shade_exceptions("}],"source_content_type":"text/x-python","patch_set":16,"id":"1af94dfe_edd99e58","line":1077,"in_reply_to":"1af94dfe_75e28c30","updated":"2016-03-18 10:46:41.000000000","message":"Good catch, thanks","commit_id":"a4dd447884e894bf4c63168610edecd0799bcf3d"}]}
