)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"a49f72af3146f72412adcd6de1390a2b000def06","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make endpoint_type configurable"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Make endpoint_type configurable"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6f59fded9f9b70fd638ff17ed9fd4d7733cefac5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F9ts4%3D","line":9,"updated":"2013-12-06 20:10:57.000000000","message":"Commit messages need to contain the reason for the change.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages","commit_id":"b1df890c451f4f7b1e23e98c26486f68c86ee436"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"e4a6904738ae38a1368d7fcf3a9eafa7de53223b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make endpoint_type configurable"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Make endpoint_type configurable"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6f59fded9f9b70fd638ff17ed9fd4d7733cefac5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F9sWo%3D","line":9,"in_reply_to":"AAAATn%2F9ts4%3D","updated":"2013-12-07 08:28:46.000000000","message":"Agreed with Clint. Better to split commit description into two block: reason why this patch needed, and chages section.\nOf course, it would be better to file blueprint or bug with full description of problem with steps to reproduce or meaningful seggestions in BP, and add it to Implements/Close-Bug section after Changes.","commit_id":"b1df890c451f4f7b1e23e98c26486f68c86ee436"}],"heat/common/config.py":[{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"b473aa4436448e683f7b1cd0c0a4d7c5b7735938","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               default\u003d\"heat_stack_user\","},{"line_number":63,"context_line":"               help\u003d\u0027Keystone role for heat template-defined users\u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":65,"context_line":"               default\u003d\u0027internalURL\u0027,"},{"line_number":66,"context_line":"               help\u003d\"Type of endpoint in Identity service catalog to use for \""},{"line_number":67,"context_line":"               \"communication with OpenStack services.\"),"},{"line_number":68,"context_line":"    cfg.IntOpt(\u0027max_template_size\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BbSA%3D","line":65,"updated":"2013-11-26 08:33:41.000000000","message":"The default endpoint_type of most (if not all) python clients is publicURL. I\u0027m a little worried that if this would break anything. thought?","commit_id":"fe69a3e8d3cc7effe3ec8cd1166fdc11899ebff4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"e21cc43dd7b45425be85a9a20b4d23599da0f57a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               default\u003d\"heat_stack_user\","},{"line_number":63,"context_line":"               help\u003d\u0027Keystone role for heat template-defined users\u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":65,"context_line":"               default\u003d\u0027internalURL\u0027,"},{"line_number":66,"context_line":"               help\u003d\"Type of endpoint in Identity service catalog to use for \""},{"line_number":67,"context_line":"               \"communication with OpenStack services.\"),"},{"line_number":68,"context_line":"    cfg.IntOpt(\u0027max_template_size\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BUM4%3D","line":65,"in_reply_to":"AAAATn%2F%2Ba8w%3D","updated":"2013-11-27 13:46:11.000000000","message":"That may be true, but for backward compatibility reasons the default should stay at publicURL.","commit_id":"fe69a3e8d3cc7effe3ec8cd1166fdc11899ebff4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"110ba06cccb22eb430b24a9274ca631c7b4af7c4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               default\u003d\"heat_stack_user\","},{"line_number":63,"context_line":"               help\u003d\u0027Keystone role for heat template-defined users\u0027),"},{"line_number":64,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":65,"context_line":"               default\u003d\u0027internalURL\u0027,"},{"line_number":66,"context_line":"               help\u003d\"Type of endpoint in Identity service catalog to use for \""},{"line_number":67,"context_line":"               \"communication with OpenStack services.\"),"},{"line_number":68,"context_line":"    cfg.IntOpt(\u0027max_template_size\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Ba8w%3D","line":65,"in_reply_to":"AAAATn%2F%2BbSA%3D","updated":"2013-11-26 09:48:41.000000000","message":"This code is used internally by Heat Engine. It\u0027s seem sound to use internalUrl when Heat engine communicate with Nova API/Neutron API/Cinder API etc.","commit_id":"fe69a3e8d3cc7effe3ec8cd1166fdc11899ebff4"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"a8b19e4d1a025d00bd067a3bddf77bb28763d807","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":134,"context_line":"               default\u003d\u0027publicURL\u0027,"},{"line_number":135,"context_line":"               help\u003d_(\u0027Type of endpoint in Identity service catalog to use \u0027"},{"line_number":136,"context_line":"               \u0027for communication with the OpenStack service.\u0027)),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027ca_file\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\u0027Optional CA cert file to use in SSL connections\u0027)),"},{"line_number":139,"context_line":"    cfg.StrOpt(\u0027cert_file\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9JQI%3D","line":136,"updated":"2013-12-16 11:16:52.000000000","message":"total nitpick: this is the only help message in this help group that has a dot in it","commit_id":"767bc8473debcf1d8c938afe88835e4e5f490c5c"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"951d8e568b2031aa0400bc17ce8588613f4a5336","unresolved":false,"context_lines":[{"line_number":150,"context_line":"def register_clients_opts():"},{"line_number":151,"context_line":"    cfg.CONF.register_opts(clients_opts, group\u003d\u0027clients\u0027)"},{"line_number":152,"context_line":"    for client in (\u0027nova\u0027, \u0027swift\u0027, \u0027neutron\u0027, \u0027cinder\u0027,"},{"line_number":153,"context_line":"                   \u0027ceilometer\u0027, \u0027keystone\u0027, \u0027trove\u0027, \u0027heat\u0027):"},{"line_number":154,"context_line":"        client_specific_group \u003d \u0027clients_\u0027 + client"},{"line_number":155,"context_line":"        # register opts copy and put it to globals in order to"},{"line_number":156,"context_line":"        # generate_sample.sh to work"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F869U%3D","line":153,"updated":"2013-12-18 19:12:22.000000000","message":"This is a different logical change than the endpoint type change. If I am reading it right, there is a bug where setting client options doesn\u0027t set the options for trove and heat. If I understand that right, then it needs to be done in a separate bug report and patch. Ideally that patch would add a unit test to make sure we don\u0027t miss any in the future, but I don\u0027t know how feasible that is.\n\nThat patch would then need to precede this one.","commit_id":"7051d5f965f13dce712cd7993219b3e51517a5e3"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"f195fbc33d26f74988efb23456271b49912a7709","unresolved":false,"context_lines":[{"line_number":150,"context_line":"def register_clients_opts():"},{"line_number":151,"context_line":"    cfg.CONF.register_opts(clients_opts, group\u003d\u0027clients\u0027)"},{"line_number":152,"context_line":"    for client in (\u0027nova\u0027, \u0027swift\u0027, \u0027neutron\u0027, \u0027cinder\u0027,"},{"line_number":153,"context_line":"                   \u0027ceilometer\u0027, \u0027keystone\u0027, \u0027trove\u0027, \u0027heat\u0027):"},{"line_number":154,"context_line":"        client_specific_group \u003d \u0027clients_\u0027 + client"},{"line_number":155,"context_line":"        # register opts copy and put it to globals in order to"},{"line_number":156,"context_line":"        # generate_sample.sh to work"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F8yxg%3D","line":153,"in_reply_to":"AAAATn%2F83%2Bw%3D","updated":"2013-12-20 08:56:44.000000000","message":"Clint Byrum says that this change actually solves 1 bug and 1 improvement:\n1)Adding ability to configure endpoint type [Improvement]\n2)Adding ability to configure trove and heat as other client [bug]\n\nAnd Clint suggests to move second changes to separate patch + bug on LP","commit_id":"7051d5f965f13dce712cd7993219b3e51517a5e3"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"683823b300ebd0e36c693dc1d31012435f1431a7","unresolved":false,"context_lines":[{"line_number":150,"context_line":"def register_clients_opts():"},{"line_number":151,"context_line":"    cfg.CONF.register_opts(clients_opts, group\u003d\u0027clients\u0027)"},{"line_number":152,"context_line":"    for client in (\u0027nova\u0027, \u0027swift\u0027, \u0027neutron\u0027, \u0027cinder\u0027,"},{"line_number":153,"context_line":"                   \u0027ceilometer\u0027, \u0027keystone\u0027, \u0027trove\u0027, \u0027heat\u0027):"},{"line_number":154,"context_line":"        client_specific_group \u003d \u0027clients_\u0027 + client"},{"line_number":155,"context_line":"        # register opts copy and put it to globals in order to"},{"line_number":156,"context_line":"        # generate_sample.sh to work"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F83%2Bw%3D","line":153,"in_reply_to":"AAAATn%2F869U%3D","updated":"2013-12-19 09:51:38.000000000","message":"I am sorry, I don\u0027t understand. \n\n\u003eThis is a different logical change than the endpoint type change.\nIt doesn\u0027t seem so. clients.py need to access some configuration options for heat and trove client, thus I have to make these options available that\u0027s why I added trove and heat in the list.\n\n\u003eIf I am reading it right, there is a bug where setting client options doesn\u0027t set the options for trove and heat.\nI am not aware of this bug. As far as I can tell, and I have tested it, with this patch, trove and heat client options are available in clients.py trough a call to self._get_client_option(\u0027trove|heat\u0027, \u0027endpoint_type|...\u0027), like the other clients.\n\nIf I a missing something, please tell me :)","commit_id":"7051d5f965f13dce712cd7993219b3e51517a5e3"}],"heat/engine/clients.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"e21cc43dd7b45425be85a9a20b4d23599da0f57a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        client \u003d novaclient.Client(1.1, **args)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        management_url \u003d self.url_for(service_type\u003dservice_type,"},{"line_number":114,"context_line":"                                      endpoint_type\u003dcfg.CONF.endpoint_type)"},{"line_number":115,"context_line":"        client.client.auth_token \u003d self.auth_token"},{"line_number":116,"context_line":"        client.client.management_url \u003d management_url"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BULw%3D","line":114,"updated":"2013-11-27 13:46:11.000000000","message":"Instead of changing all calls to url_for, it seems it would be easier to make endpoint_type defaults to cfg.CONF.endpoint_type in url_for itself.","commit_id":"fe69a3e8d3cc7effe3ec8cd1166fdc11899ebff4"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"158758c319b9a20e2e4e4f55289fd533726d560e","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        args \u003d {"},{"line_number":226,"context_line":"            \u0027service_type\u0027: service_type,"},{"line_number":227,"context_line":"            \u0027auth_url\u0027: con.auth_url,"},{"line_number":228,"context_line":"            \u0027proxy_token\u0027: con.auth_token,"},{"line_number":229,"context_line":"            \u0027username\u0027: None,"},{"line_number":230,"context_line":"            \u0027password\u0027: None"},{"line_number":231,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9kR0%3D","line":228,"updated":"2013-12-10 06:25:00.000000000","message":"Endpoint type?","commit_id":"56a9ec4c891333b99efa24d283a21150fea6255d"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"158758c319b9a20e2e4e4f55289fd533726d560e","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            return None"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        args \u003d {"},{"line_number":288,"context_line":"            \u0027auth_url\u0027: con.auth_url,"},{"line_number":289,"context_line":"            \u0027token\u0027: self.auth_token,"},{"line_number":290,"context_line":"            \u0027username\u0027: None,"},{"line_number":291,"context_line":"            \u0027password\u0027: None"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9kRs%3D","line":288,"updated":"2013-12-10 06:25:00.000000000","message":"Endpoint type?","commit_id":"56a9ec4c891333b99efa24d283a21150fea6255d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"c272b16b154dd745b60aa998bfcbb9d91c919ba3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        return self._keystone"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def url_for(self, **kwargs):"},{"line_number":97,"context_line":"        service_type2codename \u003d {"},{"line_number":98,"context_line":"            \u0027compute\u0027: \u0027nova\u0027, \u0027object-store\u0027: \u0027swift\u0027, \u0027network\u0027: \u0027neutron\u0027,"},{"line_number":99,"context_line":"            \u0027volume\u0027: \u0027cinder\u0027, \u0027database\u0027: \u0027trove\u0027,"},{"line_number":100,"context_line":"            \u0027metering\u0027: \u0027ceilometer\u0027, \u0027orchestration\u0027: \u0027heat\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9K5A%3D","line":97,"updated":"2013-12-16 01:20:10.000000000","message":"All callers to url_for need to be updated to set the endpoint_type, then this lookup would not be needed at all.","commit_id":"be4948fb71d356bbabb5e80a0a39dbbcad9567bc"}]}
