)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ba50641f0fdc17ad7e51d8569053715efb6b1f05","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add config option to override url for links"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The versions url returns the wrong data when Ironic API is behind a"},{"line_number":10,"context_line":"proxy. This adds a new config option so it can be set properly."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1384379"},{"line_number":13,"context_line":"Change-Id: I6d1b59db3ce09aba7bca5a71edcf97eb79f0b17b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba15a1d1_c344a375","line":10,"updated":"2015-09-15 16:17:41.000000000","message":"we should mention the actual name of the config option in the commit msg!","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58f0c536b01594b1f533ae9c5d669ad40adf0df8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add config option to override url for links"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The versions url returns the wrong data when Ironic API is behind a"},{"line_number":10,"context_line":"proxy. This adds a new config option so it can be set properly."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1384379"},{"line_number":13,"context_line":"Change-Id: I6d1b59db3ce09aba7bca5a71edcf97eb79f0b17b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba15a1d1_dea8f8dd","line":10,"in_reply_to":"ba15a1d1_c344a375","updated":"2015-09-15 16:24:07.000000000","message":"Done","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"}],"ironic/api/__init__.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ba50641f0fdc17ad7e51d8569053715efb6b1f05","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                      \u0027response from a collection resource.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027,"},{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint. The default \""},{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_28be9ed4","line":34,"updated":"2015-09-15 16:17:41.000000000","message":"s/url/URL/","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58f0c536b01594b1f533ae9c5d669ad40adf0df8","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                      \u0027response from a collection resource.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027,"},{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint. The default \""},{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_5eb5c82e","line":34,"in_reply_to":"ba15a1d1_28be9ed4","updated":"2015-09-15 16:24:07.000000000","message":"Done","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ba50641f0fdc17ad7e51d8569053715efb6b1f05","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027,"},{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint. The default \""},{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""},{"line_number":38,"context_line":"                      \"this to represent the proxy\u0027s URL.\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_be20a49c","line":35,"updated":"2015-09-15 16:17:41.000000000","message":"I don\u0027t actually like this sentence. Will folks know what the request\u0027s host_url is? And what does \u0027populate the URL base\u0027 mean? Also, \u0027which will use\u0027 --\u003e what will use this?\n\nI know, I ought to suggest something else. Do I really need to? Ugh.\n\nAnd is it only for \u0027versions\u0027? It\u0027s basically the URL we use when returning links to the API service endpoint, right?","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58f0c536b01594b1f533ae9c5d669ad40adf0df8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027,"},{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint. The default \""},{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""},{"line_number":38,"context_line":"                      \"this to represent the proxy\u0027s URL.\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_3e56d4d2","line":35,"in_reply_to":"ba15a1d1_be20a49c","updated":"2015-09-15 16:24:07.000000000","message":"Well I hope they know that the host URL will be used by default when it\u0027s not set.\n\ns/populate the URL base/when building the URL for links/g ? Maybe?\n\nIt\u0027s not only for versions, good catch!","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ba50641f0fdc17ad7e51d8569053715efb6b1f05","unresolved":false,"context_lines":[{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint. The default \""},{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""},{"line_number":38,"context_line":"                      \"this to represent the proxy\u0027s URL.\")),"},{"line_number":39,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_68c4965e","line":36,"updated":"2015-09-15 16:17:41.000000000","message":"s/API/API service/","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58f0c536b01594b1f533ae9c5d669ad40adf0df8","unresolved":false,"context_lines":[{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint. The default \""},{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""},{"line_number":38,"context_line":"                      \"this to represent the proxy\u0027s URL.\")),"},{"line_number":39,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_fe5e1ce8","line":36,"in_reply_to":"ba15a1d1_68c4965e","updated":"2015-09-15 16:24:07.000000000","message":"Done","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"531990ed5bb1caabd910ebf837d471d0708ccb2e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""},{"line_number":38,"context_line":"                      \"this to represent the proxy\u0027s URL.\")),"},{"line_number":39,"context_line":"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_2d9f90b5","line":38,"updated":"2015-09-15 15:26:21.000000000","message":"Maybe add an example here, so that the user knows not to have a trailing slash, etc. And include all the possible bits. So maybe https://ironic.rocks:6384/ironic or something.","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"be7830d92ac93c18b6947ba076dd797385c11531","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":36,"context_line":"                      \"attribute to populate the URL base. If the API is \""},{"line_number":37,"context_line":"                      \"operating behind a proxy, you will want to change \""},{"line_number":38,"context_line":"                      \"this to represent the proxy\u0027s URL.\")),"},{"line_number":39,"context_line":"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_4dae8486","line":38,"in_reply_to":"ba15a1d1_2d9f90b5","updated":"2015-09-15 15:32:28.000000000","message":"++","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"39b56fe3a9a3583a688c32bf261fbebc79ae9302","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                      \u0027response from a collection resource.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027,"},{"line_number":33,"context_line":"               default\u003dNone,"},{"line_number":34,"context_line":"               help\u003d_(\"Public url to use for versions endpoint (i.e \""},{"line_number":35,"context_line":"                      \"\\\"https://ironic.rocks:6384\\\"). The default \""},{"line_number":36,"context_line":"                      \"is None, which will use the request\u0027s host_url \""},{"line_number":37,"context_line":"                      \"attribute to populate the URL base. If the API is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_23031f0f","line":34,"updated":"2015-09-15 15:57:09.000000000","message":"Super nit: \"i.e.\" means \"in other words\". I think you want \"e.g.\" which means \"for example\".","commit_id":"8a0fe0720fc6325a9c3bd2afe786574e27ae76ab"}],"ironic/api/hooks.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ba50641f0fdc17ad7e51d8569053715efb6b1f05","unresolved":false,"context_lines":[{"line_number":158,"context_line":"class PublicUrlHook(hooks.PecanHook):"},{"line_number":159,"context_line":"    \"\"\"Attach the right public_url to the request."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    Attach the right public_url to the request so resources can creates"},{"line_number":162,"context_line":"    links even when the API service is behind a proxy or SSL terminator."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_e80f4686","line":161,"updated":"2015-09-15 16:17:41.000000000","message":"s/creates/create/","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58f0c536b01594b1f533ae9c5d669ad40adf0df8","unresolved":false,"context_lines":[{"line_number":158,"context_line":"class PublicUrlHook(hooks.PecanHook):"},{"line_number":159,"context_line":"    \"\"\"Attach the right public_url to the request."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    Attach the right public_url to the request so resources can creates"},{"line_number":162,"context_line":"    links even when the API service is behind a proxy or SSL terminator."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_5eedc8ed","line":161,"in_reply_to":"ba15a1d1_e80f4686","updated":"2015-09-15 16:24:07.000000000","message":"Done","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"}],"ironic/tests/api/test_hooks.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ba50641f0fdc17ad7e51d8569053715efb6b1f05","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        reqstate \u003d FakeRequestState(headers\u003dheaders)"},{"line_number":292,"context_line":"        trusted_call_hook \u003d hooks.PublicUrlHook()"},{"line_number":293,"context_line":"        trusted_call_hook.before(reqstate)"},{"line_number":294,"context_line":"        self.assertEqual(\u0027http://127.0.0.1:6385\u0027, reqstate.request.public_url)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    def test_before_public_endpoint(self):"},{"line_number":297,"context_line":"        cfg.CONF.set_override(\u0027public_endpoint\u0027, \u0027http://foo\u0027, \u0027api\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_284e9e96","line":294,"updated":"2015-09-15 16:17:41.000000000","message":"or self.host_url instead of http://...?","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58f0c536b01594b1f533ae9c5d669ad40adf0df8","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        reqstate \u003d FakeRequestState(headers\u003dheaders)"},{"line_number":292,"context_line":"        trusted_call_hook \u003d hooks.PublicUrlHook()"},{"line_number":293,"context_line":"        trusted_call_hook.before(reqstate)"},{"line_number":294,"context_line":"        self.assertEqual(\u0027http://127.0.0.1:6385\u0027, reqstate.request.public_url)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    def test_before_public_endpoint(self):"},{"line_number":297,"context_line":"        cfg.CONF.set_override(\u0027public_endpoint\u0027, \u0027http://foo\u0027, \u0027api\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_beb424f2","line":294,"in_reply_to":"ba15a1d1_284e9e96","updated":"2015-09-15 16:24:07.000000000","message":"Done","commit_id":"bd4933d400d44d9c126714bdb6067e2794827560"}]}
