)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"7776a8b09d12fa1b0e13e9b4f4e889cdf444105b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added test of default domain in Keystone"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default domain is feature in Grizzly release and it provides"},{"line_number":10,"context_line":"back-compatibility to access users etc. made by APIv3 via APIv2"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added several tests of default domain, if it exists."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAPX%2F%2F2hc%3D","line":9,"updated":"2013-06-07 15:27:12.000000000","message":"Default domain is part of Keystone APIv3 domains feature added in Grizzly","commit_id":"479310dd885339374e1a3834533b8c07797b5d26"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"7776a8b09d12fa1b0e13e9b4f4e889cdf444105b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Added test of default domain in Keystone"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default domain is feature in Grizzly release and it provides"},{"line_number":10,"context_line":"back-compatibility to access users etc. made by APIv3 via APIv2"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added several tests of default domain, if it exists."},{"line_number":13,"context_line":"* added new variable \u0027default_domain\u0027 to temtest.conf with name of default domain"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAPX%2F%2F2hs%3D","line":10,"updated":"2013-06-07 15:27:12.000000000","message":"backward compatibility for APIv2 which is not aware of domains concept.","commit_id":"479310dd885339374e1a3834533b8c07797b5d26"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"7776a8b09d12fa1b0e13e9b4f4e889cdf444105b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Default domain is feature in Grizzly release and it provides"},{"line_number":10,"context_line":"back-compatibility to access users etc. made by APIv3 via APIv2"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added several tests of default domain, if it exists."},{"line_number":13,"context_line":"* added new variable \u0027default_domain\u0027 to temtest.conf with name of default domain"},{"line_number":14,"context_line":"* default domain must exists"},{"line_number":15,"context_line":"* it couldn\u0027t be deleted"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAPX%2F%2F2hI%3D","line":12,"updated":"2013-06-07 15:27:12.000000000","message":"\u0027if it exists\u0027 is not correct, is it?","commit_id":"479310dd885339374e1a3834533b8c07797b5d26"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"d5e131f73a5c867939c31763a5194cd9fcf15b85","unresolved":false,"context_lines":[{"line_number":10,"context_line":"backward compatibility for APIv2 which is not aware of domain concept."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Added several tests of domains:"},{"line_number":13,"context_line":"* added new variable \u0027default_domain\u0027 to temtest.conf with name of default domain"},{"line_number":14,"context_line":"* new test default domain must exists"},{"line_number":15,"context_line":"* new test for incorrect deleting default domain"},{"line_number":16,"context_line":"* new simply test to create domain, check name and description with received"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAPX%2F%2Fpmc%3D","line":13,"updated":"2013-06-13 14:26:13.000000000","message":"typo, tempest.conf","commit_id":"bb5fee2edc5482fff49946cf34141a6ad14ff20c"}],"etc/tempest.conf.sample":[{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"cfb5738b557b21ed849973257ddd8593792260e1","unresolved":false,"context_lines":[{"line_number":491,"context_line":"#default_domain_enabled\u003dtrue"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"# Name of the default domain. (string value)"},{"line_number":494,"context_line":"#default_domain_id\u003ddefault"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"[identity-feature-enabled]"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"AAAAW3%2F%2Fjeg%3D","line":494,"updated":"2014-04-12 19:54:37.000000000","message":"not sure if it\u0027s possible but - couldn\u0027t be empty value used as \u0027default_domain_enabled\u003dfalse\u0027 ?","commit_id":"572eb05488d434de9422ca050d8f328e53a132d1"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"57df6195d556da94c95baaeeec60f27db0db241b","unresolved":false,"context_lines":[{"line_number":491,"context_line":"#default_domain_enabled\u003dtrue"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"# Name of the default domain. (string value)"},{"line_number":494,"context_line":"#default_domain_id\u003ddefault"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"[identity-feature-enabled]"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"AAAAW3%2F%2FSGw%3D","line":494,"in_reply_to":"AAAAW3%2F%2Fjeg%3D","updated":"2014-04-15 15:30:46.000000000","message":"Yes, this value can be omitted if is variable above False.","commit_id":"572eb05488d434de9422ca050d8f328e53a132d1"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"12f67aa273613c05c7d54d2961ac6e0227da7d4a","unresolved":false,"context_lines":[{"line_number":584,"context_line":"# Domains was added in API v3. Default domain is used if you need"},{"line_number":585,"context_line":"# access to projects, users, groups created via API v2.0. It can be"},{"line_number":586,"context_line":"# disabled manually. (boolean value)"},{"line_number":587,"context_line":"#default_domain_enabled \u003d true"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"# Name of the default domain. This value is applied only if"},{"line_number":590,"context_line":"# default_domain_enabled is True. (string value)"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"3a961159_cace72b4","line":587,"updated":"2014-12-16 13:40:36.000000000","message":"You might want to move this to the \u0027identity-feature-enabled\u0027. I don\u0027t have any opinion on this.","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8e004412e4e6fe4cedeb104d19de4a2270c0708e","unresolved":false,"context_lines":[{"line_number":584,"context_line":"# Domains was added in API v3. Default domain is used if you need"},{"line_number":585,"context_line":"# access to projects, users, groups created via API v2.0. It can be"},{"line_number":586,"context_line":"# disabled manually. (boolean value)"},{"line_number":587,"context_line":"#default_domain_enabled \u003d true"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"# Name of the default domain. This value is applied only if"},{"line_number":590,"context_line":"# default_domain_enabled is True. (string value)"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"ba7be1f8_d7909497","line":587,"in_reply_to":"3a961159_cace72b4","updated":"2015-02-23 15:36:36.000000000","message":"Yes this option should be move to the identity-feature-enabled group","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"},{"author":{"_account_id":7217,"name":"Hugh Saunders","email":"hugh@wherenow.org","username":"hughsaunders"},"change_message_id":"f7dc00001b8a24eecf6bc305c3dab1c0a7d4222f","unresolved":false,"context_lines":[{"line_number":607,"context_line":"#api_v3 \u003d true"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"# Name of the default domain (string value)"},{"line_number":610,"context_line":"#default_domain_id \u003d default"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"[image]"}],"source_content_type":"application/octet-stream","patch_set":41,"id":"baa041b7_b4a56a05","line":610,"updated":"2015-04-02 15:22:24.000000000","message":"As this is a string not a toggle, it should probably go back to the identity group, rather than the identity-feature-enabled group?","commit_id":"69139fd82791346106ede4d8a46a9996ee9faa5b"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"b3f0ac9edfc11bacb52127d80bf2e28d5a268708","unresolved":false,"context_lines":[{"line_number":607,"context_line":"#api_v3 \u003d true"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"# Name of the default domain (string value)"},{"line_number":610,"context_line":"#default_domain_id \u003d default"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"[image]"}],"source_content_type":"application/octet-stream","patch_set":41,"id":"9aa53dc9_41ad40e8","line":610,"in_reply_to":"baa041b7_b4a56a05","updated":"2015-04-07 14:19:02.000000000","message":"Indeed :-)","commit_id":"69139fd82791346106ede4d8a46a9996ee9faa5b"}],"tempest/api/identity/admin/v3/test_domains.py":[{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"7776a8b09d12fa1b0e13e9b4f4e889cdf444105b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.identity import base"},{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest.test import attr"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F2fY%3D","side":"PARENT","line":17,"updated":"2013-06-07 15:27:12.000000000","message":"LEAVE THE LICENSE IN PLACE!\n\nOnly Copyright part can be removed - for example see https://review.openstack.org/#/c/30760/9/tempest/api/volume/admin/test_multi_backend.py","commit_id":"71d6633b5260efe5c62ea9bc232b0786604737c1"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"7776a8b09d12fa1b0e13e9b4f4e889cdf444105b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":48,"context_line":"    def test_default_domain_delete(self):"},{"line_number":49,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.assertRaises(exceptions.Unauthorized,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F2gs%3D","line":48,"updated":"2013-06-07 15:27:12.000000000","message":"This is not valid - domain has to be disabled first, before it can be deleted see https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/markdown/identity-api-v3.md#delete-domain-delete-domainsdomain_id .\n\nAnd I would suggest be careful here - see end of section  https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/markdown/identity-api-v3.md#domains-v3domains which states \"prevents users owned by this domain from authenticating or receiving any other authorization. Additionally, all pre-existing tokens applicable to the above entities are immediately invalidated\" ... that maybe could include admin access from tempest?","commit_id":"479310dd885339374e1a3834533b8c07797b5d26"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"90b9fb053182df20072907d9fac47c0195d2c842","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":53,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":54,"context_line":"        resp, domain \u003d self.v3_client.get_domain(domain_id)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        self.assertEqual(domain[\u0027id\u0027], domain_id)"},{"line_number":57,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPX%2F%2Fris%3D","line":55,"updated":"2013-06-12 21:51:07.000000000","message":"Please assert the HTTP response status code.","commit_id":"901779998bf6d6b56c0b6c5f96fd1034329b05a9"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"90b9fb053182df20072907d9fac47c0195d2c842","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        name \u003d rand_name(\u0027domain-\u0027)"},{"line_number":70,"context_line":"        descr \u003d rand_name(\u0027description-\u0027)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        _, body \u003d self.v3_client.create_domain(name, description\u003ddescr)"},{"line_number":73,"context_line":"        domain_id \u003d body[\u0027id\u0027]"},{"line_number":74,"context_line":"        self.addCleanup(self._delete_domain, domain_id)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPX%2F%2Fri0%3D","line":72,"updated":"2013-06-12 21:51:07.000000000","message":"Please assert the status codes.","commit_id":"901779998bf6d6b56c0b6c5f96fd1034329b05a9"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"d5e131f73a5c867939c31763a5194cd9fcf15b85","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        missing_doms \u003d [d for d in domain_ids if d not in fetched_ids]"},{"line_number":48,"context_line":"        self.assertEqual(0, len(missing_doms))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":51,"context_line":"    def test_default_domain_exists(self):"},{"line_number":52,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":53,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPX%2F%2Fpj0%3D","line":50,"updated":"2013-06-13 14:26:13.000000000","message":"it\u0027s should be: @attr(type\u003d\u0027negative\u0027)\nand I think we should also add a test for domain delete.","commit_id":"bb5fee2edc5482fff49946cf34141a6ad14ff20c"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"154db84dff7483d3eb723d5b2a92492c5da7c4ed","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        missing_doms \u003d [d for d in domain_ids if d not in fetched_ids]"},{"line_number":48,"context_line":"        self.assertEqual(0, len(missing_doms))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":51,"context_line":"    def test_default_domain_exists(self):"},{"line_number":52,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":53,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPX%2F%2FpSQ%3D","line":50,"in_reply_to":"AAAAPX%2F%2Fpj0%3D","updated":"2013-06-13 18:49:15.000000000","message":"I also have had same idea, but to delete is necessary disable the domain at first. Disabling causes immediate invalidation of all tokens belongs to the domain. If Tempest will run in multiple threads I\u0027m afraid of that could break other tests of APIv2.","commit_id":"bb5fee2edc5482fff49946cf34141a6ad14ff20c"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"047fe535b60825c2e60458708a6baf67aa07df66","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FoC4%3D","side":"PARENT","line":3,"updated":"2013-06-26 14:26:29.000000000","message":"Why are you pulling out the copyright statement?","commit_id":"71d6633b5260efe5c62ea9bc232b0786604737c1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"047fe535b60825c2e60458708a6baf67aa07df66","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.assertEqual(0, len(missing_doms))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":51,"context_line":"    def test_default_domain_exists(self):"},{"line_number":52,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":53,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":54,"context_line":"        resp, domain \u003d self.v3_client.get_domain(domain_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FoCg%3D","line":51,"updated":"2013-06-26 14:26:29.000000000","message":"Is this test just for a config option? Shouldn\u0027t this be part of test setup then instead of an individual test?","commit_id":"173883f39b8016253ee3703987455da1aced1cf8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9c270f6856889eae999bc834d77793fc404ee406","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.assertEqual(0, len(missing_doms))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":51,"context_line":"    def test_default_domain_exists(self):"},{"line_number":52,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":53,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":54,"context_line":"        resp, domain \u003d self.v3_client.get_domain(domain_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FaTU%3D","line":51,"in_reply_to":"AAAAPn%2F%2Fcjc%3D","updated":"2013-07-02 14:34:48.000000000","message":"No, what Matt is saying is that this should be in setUpClass because if it fails, the below test of test_default_domain_incorrect_delete() will not be valid. If the default domain doesn\u0027t exist, the test_default_domain_incorrect_delete() test should be skipped.","commit_id":"173883f39b8016253ee3703987455da1aced1cf8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"a864d7b50607c3cd3dee46df422b308b71397339","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.assertEqual(0, len(missing_doms))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":51,"context_line":"    def test_default_domain_exists(self):"},{"line_number":52,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":53,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":54,"context_line":"        resp, domain \u003d self.v3_client.get_domain(domain_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2Fcjc%3D","line":51,"in_reply_to":"AAAAPn%2F%2FoCg%3D","updated":"2013-07-01 19:41:56.000000000","message":"The \"default domain\" a is special domain.\nThe setup cannot verify this with XML and it is relatively cheap operation.","commit_id":"173883f39b8016253ee3703987455da1aced1cf8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9c270f6856889eae999bc834d77793fc404ee406","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def test_default_domain_incorrect_delete(self):"},{"line_number":62,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # before action \u0027delete\u0027 is necessary to disable the domain"},{"line_number":65,"context_line":"        self.assertRaises(exceptions.Unauthorized,"},{"line_number":66,"context_line":"                          self.v3_client.delete_domain, domain_id)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FaTM%3D","line":64,"updated":"2013-07-02 14:34:48.000000000","message":"Do you plan to have a test for the above disabling behaviour?","commit_id":"173883f39b8016253ee3703987455da1aced1cf8"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"03378cc6ea47a82ba2e337c80be2358bdf2c54d4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def test_default_domain_incorrect_delete(self):"},{"line_number":62,"context_line":"        domain_id \u003d self.config.identity.default_domain_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # before action \u0027delete\u0027 is necessary to disable the domain"},{"line_number":65,"context_line":"        self.assertRaises(exceptions.Unauthorized,"},{"line_number":66,"context_line":"                          self.v3_client.delete_domain, domain_id)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FXM8%3D","line":64,"in_reply_to":"AAAAPn%2F%2FaTM%3D","updated":"2013-07-03 09:42:06.000000000","message":"Yes, this should be changed to general delete test, as this is not specific to default domain at all.","commit_id":"173883f39b8016253ee3703987455da1aced1cf8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9c270f6856889eae999bc834d77793fc404ee406","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        resp, body \u003d self.v3_client.get_domain(body[\u0027id\u0027])"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # do asserts"},{"line_number":81,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027200\u0027)"},{"line_number":82,"context_line":"        self.assertEqual(body[\u0027id\u0027], domain_id)"},{"line_number":83,"context_line":"        self.assertEqual(body[\u0027name\u0027], name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FaTA%3D","line":80,"updated":"2013-07-02 14:34:48.000000000","message":"Please remove unnecessary comments like above....","commit_id":"173883f39b8016253ee3703987455da1aced1cf8"},{"author":{"_account_id":8085,"name":"anju Tiwari","email":"anjutiwari5@gmail.com","username":"Anju"},"change_message_id":"3d7a7419ac50cfec24b3aa071dd6166cb669fc95","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        self.assertEqual(\u0027true\u0027, str(fetched_domain[\u0027enabled\u0027]).lower())"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":91,"context_line":"    def test_create_domain(self):"},{"line_number":92,"context_line":"        name \u003d data_utils.rand_name(\u0027domain-\u0027)"},{"line_number":93,"context_line":"        descr \u003d data_utils.rand_name(\u0027description-\u0027)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9Uq8%3D","line":91,"updated":"2014-04-07 04:05:52.000000000","message":"In the above test already domain have been created . I do not think this is needed again.","commit_id":"c05b75013085791ee17bd0ef2ae999945b3c9c5e"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"c02411deed764569c2f5f7d4ec803c2d88f7ea09","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        self.assertEqual(\u0027true\u0027, str(fetched_domain[\u0027enabled\u0027]).lower())"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":91,"context_line":"    def test_create_domain(self):"},{"line_number":92,"context_line":"        name \u003d data_utils.rand_name(\u0027domain-\u0027)"},{"line_number":93,"context_line":"        descr \u003d data_utils.rand_name(\u0027description-\u0027)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9T50%3D","line":91,"in_reply_to":"AAAAWH%2F9Uq8%3D","updated":"2014-04-07 07:34:57.000000000","message":"Indeed, thanks for note.","commit_id":"c05b75013085791ee17bd0ef2ae999945b3c9c5e"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"07f22d61e7a4fedc9ad74d90d2b24bf2a1229a74","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":112,"context_line":"        resp, domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027200\u0027)"},{"line_number":115,"context_line":"        self.assertEqual(domain[\u0027id\u0027], self.domain_id)"},{"line_number":116,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAW3%2F%2F7LI%3D","line":114,"updated":"2014-04-09 13:14:44.000000000","message":"usually self.assertEqual(expected result, actual result)","commit_id":"aac50a7b1745ed1bc76f4d3cecb6c9a7995ae691"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"a9eb9bd57cb4a932c4bfae6f9ff0f43b058128f2","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        resp, domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":115,"context_line":"        self.assertEqual(domain[\u0027id\u0027], self.domain_id)"},{"line_number":116,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAW3%2F%2FrpE%3D","line":115,"updated":"2014-04-11 07:02:44.000000000","message":"usually self.assertEqual(expected result, actual result)","commit_id":"4711ed0d0925bffcaf969374ed266e7f4fa84fdf"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1907972e5df4df20a569227152418c993ba2def2","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            domain_ids.append(domain[\u0027id\u0027])"},{"line_number":40,"context_line":"        # List and Verify Domains"},{"line_number":41,"context_line":"        resp, body \u003d self.client.list_domains()"},{"line_number":42,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":43,"context_line":"        for d in body:"},{"line_number":44,"context_line":"            fetched_ids.append(d[\u0027id\u0027])"},{"line_number":45,"context_line":"        missing_doms \u003d [d for d in domain_ids if d not in fetched_ids]"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_143edfb8","line":42,"updated":"2014-12-08 14:21:56.000000000","message":"Have a look at tempest/services/identity/v3/json/identity_client.py :: list_domains()\n\nYou\u0027ll see that this kind of check is already done. No need to do it twice.","commit_id":"354755ba85dbb755e122308a722fa1d581472ced"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1907972e5df4df20a569227152418c993ba2def2","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # Check if default domain exists and is enabled to use."},{"line_number":109,"context_line":"        resp, domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":112,"context_line":"        self.assertEqual(self.domain_id, domain[\u0027id\u0027])"},{"line_number":113,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_d4aa97d3","line":111,"updated":"2014-12-08 14:21:56.000000000","message":"Same here. The response code is already done in the client class.","commit_id":"354755ba85dbb755e122308a722fa1d581472ced"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8e004412e4e6fe4cedeb104d19de4a2270c0708e","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class DomainsTestXML(DomainsTestJSON):"},{"line_number":88,"context_line":"    _interface \u003d \u0027xml\u0027"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class DefaultDomainTestJSON(base.BaseDomainsTest):"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba7be1f8_b7d88080","line":88,"updated":"2015-02-23 15:36:36.000000000","message":"XML tests have been official deprecated and removed from tempest. So these are no longer needed.","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8e004412e4e6fe4cedeb104d19de4a2270c0708e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class DefaultDomainTestXML(DefaultDomainTestJSON):"},{"line_number":115,"context_line":"    _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba7be1f8_2968b886","line":114,"updated":"2015-02-23 15:36:36.000000000","message":"Same here","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"797982483e03e3c2352c8bc3f7397c25cc09a4aa","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":113,"context_line":"    @test.idempotent_id(\u002717a5de24-e6a0-4e4a-a9ee-d85b6e5612b5\u0027)"},{"line_number":114,"context_line":"    def test_default_domain_exists(self):"},{"line_number":115,"context_line":"        domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        self.assertEqual(self.domain_id, domain[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":40,"id":"1a6ced46_3669d0be","line":114,"updated":"2015-03-25 05:36:13.000000000","message":"This test verifies that a domain exists and it\u0027s enabled. There\u0027s nothing in the API call made which is specific to default domain. I think this belongs in the DomainTestJSON, and should be called test_get_domain, and it should create a domain before getting it.\nOtherwise we\u0027re just testing that the provided tempest.conf is valid for the cloud under test.","commit_id":"b5a24605ad887f44bb31543516a4d42858615fe1"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"aad5ca15132af9089b91e1cab04f03e333e90f3a","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":113,"context_line":"    @test.idempotent_id(\u002717a5de24-e6a0-4e4a-a9ee-d85b6e5612b5\u0027)"},{"line_number":114,"context_line":"    def test_default_domain_exists(self):"},{"line_number":115,"context_line":"        domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        self.assertEqual(self.domain_id, domain[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":40,"id":"baa041b7_cba73d4e","line":114,"in_reply_to":"1a6ced46_3669d0be","updated":"2015-04-02 12:27:03.000000000","message":"default domain is already created, so there is no need to try create it again. There is already DomainsTestJSON.test_create_update_delete_domain. Ok, agree that\n\n  assert some_str \u003d\u003d some_str\n\nshoudn\u0027t be there and I will fix it in upcomming patchset.\n\nBut main purpose of this test is to verify, that the default domain *exists*. It\u0027s special domain, that wasn\u0027t created by user, but is present in openstack environment by default without any intervention. That\u0027s why I think it should be here. If it fail, it would be on line with self.client.get_domain.","commit_id":"b5a24605ad887f44bb31543516a4d42858615fe1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c83926bfdbdf97b62a2a49557151a912aeca7ef2","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        fetched_domain \u003d self.client.get_domain(domain[\u0027id\u0027])"},{"line_number":86,"context_line":"        self.assertEqual(new_name, fetched_domain[\u0027name\u0027])"},{"line_number":87,"context_line":"        self.assertEqual(new_desc, fetched_domain[\u0027description\u0027])"},{"line_number":88,"context_line":"        self.assertEqual(\u0027true\u0027, str(fetched_domain[\u0027enabled\u0027]).lower())"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":42,"id":"3ab451fb_c68753d6","line":87,"updated":"2015-04-17 02:03:52.000000000","message":"Here","commit_id":"a0265e18ccae4c51c551391d5d10c6e8fa8ad235"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c83926bfdbdf97b62a2a49557151a912aeca7ef2","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def test_default_domain_exists(self):"},{"line_number":126,"context_line":"        domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":42,"id":"3ab451fb_c65e3376","line":128,"updated":"2015-04-17 02:03:52.000000000","message":"Line88 already checks that the response of get_domain should contain \u0027enabled\u0027 and the value should True.\n\nIt it necessary to add more test here?","commit_id":"a0265e18ccae4c51c551391d5d10c6e8fa8ad235"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"07502fc8920bf455dd4049e7e6ac646ebba6b5e4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def test_default_domain_exists(self):"},{"line_number":126,"context_line":"        domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":42,"id":"3ab451fb_f472eeac","line":128,"in_reply_to":"3ab451fb_c65e3376","updated":"2015-04-17 08:31:23.000000000","message":"He is using assertTrue here which is stricter than the weak assertEqual L88.","commit_id":"a0265e18ccae4c51c551391d5d10c6e8fa8ad235"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"7c2c6ce0c8aeadfb7fe82d0074502efbf6844c33","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def test_default_domain_exists(self):"},{"line_number":126,"context_line":"        domain \u003d self.client.get_domain(self.domain_id)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.assertTrue(domain[\u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":42,"id":"bab921fb_1d5fb342","line":128,"in_reply_to":"3ab451fb_c65e3376","updated":"2015-04-23 14:17:10.000000000","message":"default domain is special domain, it\u0027s not created by user, present in openstack itself - hardcoded. So it is different case, that\u0027s why I\u0027ve separated that.\n\ndomain_id can be changed in keystone.conf","commit_id":"a0265e18ccae4c51c551391d5d10c6e8fa8ad235"}],"tempest/api/identity/admin/v3/test_domains_negative.py":[{"author":{"_account_id":8085,"name":"anju Tiwari","email":"anjutiwari5@gmail.com","username":"Anju"},"change_message_id":"51d2ef296d2b121d43bd764ab3e7ce63b1867ab3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9Uqo%3D","line":1,"updated":"2014-04-07 04:08:13.000000000","message":"It must be 2014 . and should be copyright of Red Hat.","commit_id":"c05b75013085791ee17bd0ef2ae999945b3c9c5e"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"c02411deed764569c2f5f7d4ec803c2d88f7ea09","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9T5w%3D","line":1,"in_reply_to":"AAAAWH%2F9Uqo%3D","updated":"2014-04-07 07:34:57.000000000","message":"Done","commit_id":"c05b75013085791ee17bd0ef2ae999945b3c9c5e"},{"author":{"_account_id":8085,"name":"anju Tiwari","email":"anjutiwari5@gmail.com","username":"Anju"},"change_message_id":"54b42c271c83b6f16c04b83bf647bd1d1a8870bf","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":63,"context_line":"    def test_delete_default_domain(self):"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        _, body \u003d self.client.update_domain(self.domain_id, enabled\u003dFalse)"},{"line_number":67,"context_line":"        self.addCleanup(self.client.update_domain, self.domain_id,"},{"line_number":68,"context_line":"                        enabled\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWn%2F%2F%2FRM%3D","line":65,"updated":"2014-04-08 03:40:43.000000000","message":"What is the use of return here? I am not understanding this.","commit_id":"a3517ff6cb16a7b2b1039c82521dd859324ca590"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"86cdf99ca88e8579fbe5b64d0f7f8e7b00182c9d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":63,"context_line":"    def test_delete_default_domain(self):"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        _, body \u003d self.client.update_domain(self.domain_id, enabled\u003dFalse)"},{"line_number":67,"context_line":"        self.addCleanup(self.client.update_domain, self.domain_id,"},{"line_number":68,"context_line":"                        enabled\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWn%2F%2F9J4%3D","line":65,"in_reply_to":"AAAAWn%2F%2F%2FRM%3D","updated":"2014-04-08 09:10:12.000000000","message":"It was snippet from debugging, I will remove that.","commit_id":"a3517ff6cb16a7b2b1039c82521dd859324ca590"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"a9eb9bd57cb4a932c4bfae6f9ff0f43b058128f2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            d_name, description\u003dd_desc)"},{"line_number":34,"context_line":"        domain_id \u003d domain[\u0027id\u0027]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027201\u0027)"},{"line_number":37,"context_line":"        self.addCleanup(self.delete_domain, domain_id)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        # domain need to be disabled before deleting"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAW3%2F%2Fro8%3D","line":36,"updated":"2014-04-11 07:02:44.000000000","message":"usually self.assertEqual(expected result, actual result)","commit_id":"4711ed0d0925bffcaf969374ed266e7f4fa84fdf"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1907972e5df4df20a569227152418c993ba2def2","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":29,"context_line":"    def test_delete_active_domain(self):"},{"line_number":30,"context_line":"        d_name \u003d data_utils.rand_name(\u0027domain-\u0027)"},{"line_number":31,"context_line":"        d_desc \u003d data_utils.rand_name(\u0027domain-desc-\u0027)"},{"line_number":32,"context_line":"        resp, domain \u003d self.client.create_domain("},{"line_number":33,"context_line":"            d_name, description\u003dd_desc)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_94ee4f21","line":30,"updated":"2014-12-08 14:21:56.000000000","message":"Useless trailing \u0027-\u0027. It\u0027s already part of the rand_name method.","commit_id":"354755ba85dbb755e122308a722fa1d581472ced"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1907972e5df4df20a569227152418c993ba2def2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            d_name, description\u003dd_desc)"},{"line_number":34,"context_line":"        domain_id \u003d domain[\u0027id\u0027]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":37,"context_line":"        self.addCleanup(self.delete_domain, domain_id)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        # domain need to be disabled before deleting"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_b47c2b74","line":36,"updated":"2014-12-08 14:21:56.000000000","message":"Same","commit_id":"354755ba85dbb755e122308a722fa1d581472ced"}],"tempest/api/identity/base.py":[{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"07f22d61e7a4fedc9ad74d90d2b24bf2a1229a74","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    def delete_domain(self, domain_id):"},{"line_number":114,"context_line":"        # It is necessary to disable the domain before deleting,"},{"line_number":115,"context_line":"        # or else it would result in unauthorized error"},{"line_number":116,"context_line":"        _, body \u003d self.client.update_domain(domain_id, enabled\u003dFalse)"},{"line_number":117,"context_line":"        resp, _ \u003d self.client.delete_domain(domain_id)"},{"line_number":118,"context_line":"        self.assertEqual(204, resp.status)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAW3%2F%2F7KA%3D","line":116,"updated":"2014-04-09 13:14:44.000000000","message":"unused variable body, may be would better:\n\nself.client.update_domain(domain_id, enabled\u003dFalse)\n\ninstead:\n\n_, body \u003d self.client.update_domain(domain_id, enabled\u003dFalse)\n\n?","commit_id":"aac50a7b1745ed1bc76f4d3cecb6c9a7995ae691"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8e004412e4e6fe4cedeb104d19de4a2270c0708e","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        super(BaseIdentityV3AdminTest, cls).resource_cleanup()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class BaseDomainsTest(BaseIdentityV3AdminTest):"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def delete_domain(self, domain_id):"},{"line_number":119,"context_line":"        # It is necessary to disable the domain before deleting,"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba7be1f8_6930f09e","line":116,"updated":"2015-02-23 15:36:36.000000000","message":"Why does this need to be a subclass? You\u0027re only adding one method, why not just put that in the base identity class?","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"12f67aa273613c05c7d54d2961ac6e0227da7d4a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        # It is necessary to disable the domain before deleting,"},{"line_number":120,"context_line":"        # or else it would result in unauthorized error"},{"line_number":121,"context_line":"        resp, _ \u003d self.client.update_domain(domain_id, enabled\u003dFalse)"},{"line_number":122,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":123,"context_line":"        resp, _ \u003d self.client.delete_domain(domain_id)"},{"line_number":124,"context_line":"        self.assertEqual(204, resp.status)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_ea708e75","line":122,"updated":"2014-12-16 13:40:36.000000000","message":"This check is useless because it\u0027s already done in : services/identity/v3/json/identity_client.py::update_domain()","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"12f67aa273613c05c7d54d2961ac6e0227da7d4a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        resp, _ \u003d self.client.update_domain(domain_id, enabled\u003dFalse)"},{"line_number":122,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":123,"context_line":"        resp, _ \u003d self.client.delete_domain(domain_id)"},{"line_number":124,"context_line":"        self.assertEqual(204, resp.status)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"class DataGenerator(object):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_4a68c287","line":124,"updated":"2014-12-16 13:40:36.000000000","message":"Same","commit_id":"8fba013f20f3007752e1f58b407a08c937a11f8e"}],"tempest/config.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"799b3f94ad060cced06e3676de24a1bd125818bd","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                default\u003dTrue,"},{"line_number":154,"context_line":"                help\u003d\"Domains was added in API v3. Default domain is used \""},{"line_number":155,"context_line":"                     \"if you need access to projects, users, groups created \""},{"line_number":156,"context_line":"                     \"via API v2.0. It can be disabled manually.\"),"},{"line_number":157,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":158,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":159,"context_line":"               help\u003d\"Name of the default domain. This value is applied \""}],"source_content_type":"text/x-python","patch_set":35,"id":"9a80dd14_fa0fac2b","line":156,"updated":"2015-03-16 10:05:25.000000000","message":"I\u0027m not sure what the point of disabling the default domain is. It\u0027s not something that can be disabled from a keystone perspective. It\u0027s simply a stop gap between the v2 and v3 apis.\n\nIs it normal to allow disabling a group of tests like this?","commit_id":"551ec9c99ab4767aa9fe13a75695cff0881f7bc4"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"9328fcb34646f3c36d08edfa59bf65e88784b11e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                default\u003dTrue,"},{"line_number":154,"context_line":"                help\u003d\"Domains was added in API v3. Default domain is used \""},{"line_number":155,"context_line":"                     \"if you need access to projects, users, groups created \""},{"line_number":156,"context_line":"                     \"via API v2.0. It can be disabled manually.\"),"},{"line_number":157,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":158,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":159,"context_line":"               help\u003d\"Name of the default domain. This value is applied \""}],"source_content_type":"text/x-python","patch_set":35,"id":"9a80dd14_eefa8ebb","line":156,"in_reply_to":"9a80dd14_fa0fac2b","updated":"2015-03-16 12:01:40.000000000","message":"Thanks for notice, you are correct. Now there is no reason to have this option.","commit_id":"551ec9c99ab4767aa9fe13a75695cff0881f7bc4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"425f042fae85000171e5e56436c71b5a7c059710","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":153,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":154,"context_line":"               help\u003d\"Name of the default domain. This value is applied \""},{"line_number":155,"context_line":"                    \"only if default_domain_enabled is True.\"),"},{"line_number":156,"context_line":"]"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"compute_group \u003d cfg.OptGroup(name\u003d\u0027compute\u0027,"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_3e870614","line":155,"updated":"2015-03-18 09:04:54.000000000","message":"There\u0027s no more a \u0027default_domain_enabled\u0027 config flag.","commit_id":"33f5a6ce381980c0bb621d8621fa8dc206388a43"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"029824338c8de4b537cc3e1346225c3f21a48829","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":153,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":154,"context_line":"               help\u003d\"Name of the default domain. This value is applied \""},{"line_number":155,"context_line":"                    \"only if default_domain_enabled is True.\"),"},{"line_number":156,"context_line":"]"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"compute_group \u003d cfg.OptGroup(name\u003d\u0027compute\u0027,"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_1966dcbb","line":155,"in_reply_to":"9a80dd14_3e870614","updated":"2015-03-18 09:25:24.000000000","message":"Leftovers... thanks","commit_id":"33f5a6ce381980c0bb621d8621fa8dc206388a43"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"797982483e03e3c2352c8bc3f7397c25cc09a4aa","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    cfg.BoolOpt(\u0027api_v3\u0027,"},{"line_number":150,"context_line":"                default\u003dTrue,"},{"line_number":151,"context_line":"                help\u003d\u0027Is the v3 identity API enabled\u0027),"},{"line_number":152,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":153,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":154,"context_line":"               help\u003d\"Name of the default domain\"),"},{"line_number":155,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":40,"id":"1a6ced46_56648ce4","line":152,"updated":"2015-03-25 05:36:13.000000000","message":"It does not look like this is needed for the tests in this patch.\nI\u0027m not against this configuration option, I just don\u0027t see its use here.","commit_id":"b5a24605ad887f44bb31543516a4d42858615fe1"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"aad5ca15132af9089b91e1cab04f03e333e90f3a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    cfg.BoolOpt(\u0027api_v3\u0027,"},{"line_number":150,"context_line":"                default\u003dTrue,"},{"line_number":151,"context_line":"                help\u003d\u0027Is the v3 identity API enabled\u0027),"},{"line_number":152,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":153,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":154,"context_line":"               help\u003d\"Name of the default domain\"),"},{"line_number":155,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":40,"id":"1a6ced46_0239e440","line":152,"in_reply_to":"1a6ced46_56648ce4","updated":"2015-04-02 12:27:03.000000000","message":"Actually it is used, please see https://review.openstack.org/#/c/31782/40/tempest/api/identity/admin/v3/test_domains.py line 109 in example.","commit_id":"b5a24605ad887f44bb31543516a4d42858615fe1"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"07502fc8920bf455dd4049e7e6ac646ebba6b5e4","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                    \"The same domain applies to user and project\"),"},{"line_number":145,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":146,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":147,"context_line":"               help\u003d\"Name of the default domain\"),"},{"line_number":148,"context_line":"]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"identity_feature_group \u003d cfg.OptGroup(name\u003d\u0027identity-feature-enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":42,"id":"3ab451fb_d496d293","line":147,"updated":"2015-04-17 08:31:23.000000000","message":"The help string says \"name of the...\" but the option is named \"..domain_id\". It\u0027s confusing.","commit_id":"a0265e18ccae4c51c551391d5d10c6e8fa8ad235"},{"author":{"_account_id":6890,"name":"Martin Pavlásek","email":"mpavlase@redhat.com","username":"mpavlase"},"change_message_id":"7c2c6ce0c8aeadfb7fe82d0074502efbf6844c33","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                    \"The same domain applies to user and project\"),"},{"line_number":145,"context_line":"    cfg.StrOpt(\u0027default_domain_id\u0027,"},{"line_number":146,"context_line":"               default\u003d\u0027default\u0027,"},{"line_number":147,"context_line":"               help\u003d\"Name of the default domain\"),"},{"line_number":148,"context_line":"]"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"identity_feature_group \u003d cfg.OptGroup(name\u003d\u0027identity-feature-enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":42,"id":"bab921fb_a874079c","line":147,"in_reply_to":"3ab451fb_d496d293","updated":"2015-04-23 14:17:10.000000000","message":"Yes, it\u0027s correct. it\u0027s still ID although it seems like name.\n\nhttps://github.com/openstack/keystone/blob/2f9a6668d9e472e07eff765666a7d272e55c047a/etc/keystone.conf.sample#L681\n\n... and ...\n\nhttps://github.com/openstack/keystone/blob/e567e26025f5227dd6ae2413cdb2e6fb90f45dfc/keystone/resource/core.py#L42","commit_id":"a0265e18ccae4c51c551391d5d10c6e8fa8ad235"}]}
