)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"59d5be87a49a4ad8da259d6b13b449fa5b184234","unresolved":false,"context_lines":[{"line_number":10,"context_line":"via the REST API."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Domain configs are JSON blobs and we have fine grained control on them"},{"line_number":13,"context_line":"via the Identity API. This fine grained control is not useful in the"},{"line_number":14,"context_line":"client perspective, though - we can manage everything like Python"},{"line_number":15,"context_line":"dictionaries and use operations like \"update\" whenever we want to delete"},{"line_number":16,"context_line":"a specific group or option. This approach is similar to what is done in"},{"line_number":17,"context_line":"the federation mapping API to handle mapping rules."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ac06dbe_6cb12b47","line":14,"range":{"start_line":13,"start_character":22,"end_line":14,"end_character":26},"updated":"2016-08-23 09:45:20.000000000","message":"I actually think it could bd useful...e.g. name of url has changes so to just be able to execute (something like):\n\n\nopenstack domain_config set --group ldap --url http://mynewsever\n\n\n...however, I agree that this level of support is a lot more work! So I think initial support of just treating the domain_config as a blob is fine...as long as we leave room for the fine grained support later (if needed)","commit_id":"f8cc2b5390bdbbcd953811c90a2185cf18578e98"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c3592be7414c54f9709b82f3d63ebba4d2e66dad","unresolved":false,"context_lines":[{"line_number":10,"context_line":"via the REST API."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Domain configs are JSON blobs and we have fine grained control on them"},{"line_number":13,"context_line":"via the Identity API. This fine grained control is not useful in the"},{"line_number":14,"context_line":"client perspective, though - we can manage everything like Python"},{"line_number":15,"context_line":"dictionaries and use operations like \"update\" whenever we want to delete"},{"line_number":16,"context_line":"a specific group or option. This approach is similar to what is done in"},{"line_number":17,"context_line":"the federation mapping API to handle mapping rules."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ac06dbe_ef7ea868","line":14,"range":{"start_line":13,"start_character":22,"end_line":14,"end_character":26},"in_reply_to":"1ac06dbe_6cb12b47","updated":"2016-08-23 11:18:08.000000000","message":"hmm right, will remove this sentence from the commit message.","commit_id":"f8cc2b5390bdbbcd953811c90a2185cf18578e98"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"477dd836745eaa5359f934f13f840e3c9a8ee1d4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"via the REST API."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Domain configs are JSON blobs and we have fine grained control on them"},{"line_number":13,"context_line":"via the Identity API. This fine grained control is not useful in the"},{"line_number":14,"context_line":"client perspective, though - we can manage everything like Python"},{"line_number":15,"context_line":"dictionaries and use operations like \"update\" whenever we want to delete"},{"line_number":16,"context_line":"a specific group or option. This approach is similar to what is done in"},{"line_number":17,"context_line":"the federation mapping API to handle mapping rules."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_2c6d03cc","line":14,"range":{"start_line":13,"start_character":22,"end_line":14,"end_character":26},"in_reply_to":"1ac06dbe_b1cf4eb2","updated":"2016-08-30 14:49:36.000000000","message":"sure, yes, when dealing with the whole config, as long as they ready it out first, remove the attire and update, I think that works....not as perhaps easy as a command to update/remove the one item...but still workable for now","commit_id":"f8cc2b5390bdbbcd953811c90a2185cf18578e98"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b3f4f625f95b073b99d4573b7e2edb30d16c36ef","unresolved":false,"context_lines":[{"line_number":10,"context_line":"via the REST API."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Domain configs are JSON blobs and we have fine grained control on them"},{"line_number":13,"context_line":"via the Identity API. This fine grained control is not useful in the"},{"line_number":14,"context_line":"client perspective, though - we can manage everything like Python"},{"line_number":15,"context_line":"dictionaries and use operations like \"update\" whenever we want to delete"},{"line_number":16,"context_line":"a specific group or option. This approach is similar to what is done in"},{"line_number":17,"context_line":"the federation mapping API to handle mapping rules."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ac06dbe_b1cf4eb2","line":14,"range":{"start_line":13,"start_character":22,"end_line":14,"end_character":26},"in_reply_to":"1ac06dbe_ef7ea868","updated":"2016-08-25 12:28:57.000000000","message":"just thought about a way for the client implement this: since it is pure JSON/Python dics, the client can remove the given attribute and send a PATCH (update) to the server. It will have the same result.","commit_id":"f8cc2b5390bdbbcd953811c90a2185cf18578e98"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"a1249195c166c9a6322ef2f759e5d60e51c4ee56","unresolved":false,"context_lines":[{"line_number":13,"context_line":"via the Identity API. This fine grained control is not defined yet in the"},{"line_number":14,"context_line":"client, though - for now, we can manage everything like Python dictionaries"},{"line_number":15,"context_line":"and use operations like \"update\" whenever we want to delete a specific group"},{"line_number":16,"context_line":"or option. This approach is similar to what is done in the federation mapping"},{"line_number":17,"context_line":"API to handle mapping rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-Auhtored-By: Henry Nash \u003chenryn@linux.vnet.ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_f27a40f0","line":16,"updated":"2016-09-07 17:14:58.000000000","message":"Please justify these lines.","commit_id":"4318b40466effa95f1cfd311f08303097875f50e"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"bfb6073102c27746a520a5e6e0109f3a6191040e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"via the Identity API. This fine grained control is not defined yet in the"},{"line_number":14,"context_line":"client, though - for now, we can manage everything like Python dictionaries"},{"line_number":15,"context_line":"and use operations like \"update\" whenever we want to delete a specific group"},{"line_number":16,"context_line":"or option. This approach is similar to what is done in the federation mapping"},{"line_number":17,"context_line":"API to handle mapping rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-Auhtored-By: Henry Nash \u003chenryn@linux.vnet.ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a89bdaa_b6117e06","line":16,"in_reply_to":"9a89bdaa_f27a40f0","updated":"2016-09-07 22:26:22.000000000","message":"the justification is in the sentence before it.","commit_id":"4318b40466effa95f1cfd311f08303097875f50e"}],"keystoneclient/base.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"92e883398240aa6b48be8b6dfda4f9d1bbbe2ed4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        :param kwargs: Additional arguments will be passed to the request."},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        resp, body \u003d self.client.get(url, **kwargs)"},{"line_number":150,"context_line":"        print(\u0027$$$$$$$$$$$$$$$$$$$$$\u0027)"},{"line_number":151,"context_line":"        print(body)"},{"line_number":152,"context_line":"        print(\u0027$$$$$$$$$$$$$$$$$$$$$\u0027)"},{"line_number":153,"context_line":"        return self.resource_class(self, body[response_key], loaded\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_592a582d","line":150,"range":{"start_line":150,"start_character":13,"end_line":150,"end_character":38},"updated":"2016-08-22 17:03:25.000000000","message":"rm please :)","commit_id":"65257c67b9237bf54c10855ba627ceffd10618d2"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a5fd3591fe6639da6dce68506195ab035cd96b05","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        :param kwargs: Additional arguments will be passed to the request."},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        resp, body \u003d self.client.get(url, **kwargs)"},{"line_number":150,"context_line":"        print(\u0027$$$$$$$$$$$$$$$$$$$$$\u0027)"},{"line_number":151,"context_line":"        print(body)"},{"line_number":152,"context_line":"        print(\u0027$$$$$$$$$$$$$$$$$$$$$\u0027)"},{"line_number":153,"context_line":"        return self.resource_class(self, body[response_key], loaded\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_f907c419","line":150,"range":{"start_line":150,"start_character":13,"end_line":150,"end_character":38},"in_reply_to":"1ac06dbe_592a582d","updated":"2016-08-22 17:08:57.000000000","message":"removed :)","commit_id":"65257c67b9237bf54c10855ba627ceffd10618d2"}],"keystoneclient/tests/functional/v3/test_domain_configs.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"1a9627762407790753e63022ba0b3ec1782fe4ef","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class DomainConfigsTestCase(base.V3ClientTestCase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def check_domain_config(self, config, config_ref):"},{"line_number":23,"context_line":"        for attr in config_ref:"},{"line_number":24,"context_line":"            self.assertEqual("},{"line_number":25,"context_line":"                getattr(config, attr),"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_a7c23332","line":22,"updated":"2016-09-16 15:25:50.000000000","message":"a better name would be \u0027assert_valid_domain_config\u0027","commit_id":"110f1a25b0102d9a050b48b2a12d5ef236035c45"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"4a4e27a61d9bfa51fef7ab29095d7c05fee5f684","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class DomainConfigsTestCase(base.V3ClientTestCase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def check_domain_config(self, config, config_ref):"},{"line_number":23,"context_line":"        for attr in config_ref:"},{"line_number":24,"context_line":"            self.assertEqual("},{"line_number":25,"context_line":"                getattr(config, attr),"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_a08e9976","line":22,"in_reply_to":"7a8ec9b2_a7c23332","updated":"2016-09-16 15:28:21.000000000","message":"++\n\nfollowing the pattern in other tests, we can change this in all the other tests if desired in a different review.","commit_id":"110f1a25b0102d9a050b48b2a12d5ef236035c45"}],"keystoneclient/tests/unit/v3/test_domain_configs.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"1a9627762407790753e63022ba0b3ec1782fe4ef","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            self.assertEqual("},{"line_number":38,"context_line":"                getattr(resource, attr),"},{"line_number":39,"context_line":"                req_ref[attr],"},{"line_number":40,"context_line":"                \u0027Expected different %s\u0027 % attr)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_create(self):"},{"line_number":43,"context_line":"        domain_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_8753776a","line":40,"updated":"2016-09-16 15:25:50.000000000","message":"Strange message.  Should it expect them to be the same on an assertEqual?","commit_id":"110f1a25b0102d9a050b48b2a12d5ef236035c45"}],"keystoneclient/v3/domain_configs.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"59d5be87a49a4ad8da259d6b13b449fa5b184234","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    def get(self, domain):"},{"line_number":70,"context_line":"        \"\"\"Get a config for a domain."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param domain: the domain where the config is going to be applied."},{"line_number":73,"context_line":"        :type domain: str or :py:class:`keystoneclient.v3.domains.Domain`"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        :returns: the domain config returned from server."}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_b1753cfb","line":72,"range":{"start_line":72,"start_character":34,"end_line":72,"end_character":73},"updated":"2016-08-23 09:45:20.000000000","message":"...for which the config is defined?","commit_id":"f8cc2b5390bdbbcd953811c90a2185cf18578e98"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c3592be7414c54f9709b82f3d63ebba4d2e66dad","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    def get(self, domain):"},{"line_number":70,"context_line":"        \"\"\"Get a config for a domain."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param domain: the domain where the config is going to be applied."},{"line_number":73,"context_line":"        :type domain: str or :py:class:`keystoneclient.v3.domains.Domain`"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        :returns: the domain config returned from server."}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_6f8bd868","line":72,"range":{"start_line":72,"start_character":34,"end_line":72,"end_character":73},"in_reply_to":"1ac06dbe_b1753cfb","updated":"2016-08-23 11:18:08.000000000","message":"Done","commit_id":"f8cc2b5390bdbbcd953811c90a2185cf18578e98"}]}
