)]}'
{"nova/conf/wsgi.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e702f1c6b09f2d4b3d94eeef1d885fc89cd251ed","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Possible values:"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":" * True (default) : reuse HTTP connection."},{"line_number":198,"context_line":" * False : closes the client socket connection explicitly."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Related options:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_5b3123ec","side":"PARENT","line":197,"range":{"start_line":197,"start_character":8,"end_line":197,"end_character":18},"updated":"2016-08-08 09:54:02.000000000","message":"FWIW, I am OK keeping this here","commit_id":"bdb46ccc9c89f023719570ebb47300c9bdbe635d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e702f1c6b09f2d4b3d94eeef1d885fc89cd251ed","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"wsgi_group \u003d cfg.OptGroup("},{"line_number":19,"context_line":"    \u0027wsgi\u0027,"},{"line_number":20,"context_line":"    title\u003d\u0027WSGI Options\u0027)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"ALL_OPTS \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7b6227da","line":20,"updated":"2016-08-08 09:54:02.000000000","message":"We are missing a help text for this group.","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e702f1c6b09f2d4b3d94eeef1d885fc89cd251ed","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        help\u003d\"\"\""},{"line_number":61,"context_line":"This option specifies the HTTP header used to determine the scheme for the"},{"line_number":62,"context_line":"original request, even if it was removed by an SSL terminating proxy."},{"line_number":63,"context_line":"Typical value is \u0027\"HTTP_X_FORWARDED_PROTO\"."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"It is represented as a tuple with HTTP header/value combination that signifies"},{"line_number":66,"context_line":"a request is secure."}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_70fc063f","line":63,"updated":"2016-08-08 09:54:02.000000000","message":"Nit: its worth saying that HTTP header would be expect to contain the value of the original URL scheme, such as https\n\nNote: you can see more of how this works here:\nhttps://github.com/openstack/nova/blob/7b032f5339d39ae3f57832c0285b2b818b1ec918/nova/wsgi.py#L237","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e702f1c6b09f2d4b3d94eeef1d885fc89cd251ed","unresolved":false,"context_lines":[{"line_number":62,"context_line":"original request, even if it was removed by an SSL terminating proxy."},{"line_number":63,"context_line":"Typical value is \u0027\"HTTP_X_FORWARDED_PROTO\"."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"It is represented as a tuple with HTTP header/value combination that signifies"},{"line_number":66,"context_line":"a request is secure."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Possible values:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_b0edde90","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":20},"updated":"2016-08-08 09:54:02.000000000","message":"I don\u0027t know what this text is trying to say here, we should drop this text.","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"96774630436168174b5ab10472971039c4ca8bbb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"original request, even if it was removed by an SSL terminating proxy."},{"line_number":63,"context_line":"Typical value is \u0027\"HTTP_X_FORWARDED_PROTO\"."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"It is represented as a tuple with HTTP header/value combination that signifies"},{"line_number":66,"context_line":"a request is secure."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Possible values:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_dd301e04","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":20},"in_reply_to":"9ad45d7e_b0edde90","updated":"2016-08-09 17:33:40.000000000","message":"Done","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e702f1c6b09f2d4b3d94eeef1d885fc89cd251ed","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Possible values:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":" * None (default)"},{"line_number":71,"context_line":" * https"},{"line_number":72,"context_line":"\"\"\"),"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_5055821b","line":70,"updated":"2016-08-08 09:54:02.000000000","message":"We should make it clear what happens by default.","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"152693d7bc23b3040958118e3e6571c05b637b1d","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Possible values:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":" * None (default)"},{"line_number":71,"context_line":" * https"},{"line_number":72,"context_line":"\"\"\"),"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_906cff37","line":71,"range":{"start_line":70,"start_character":3,"end_line":71,"end_character":8},"updated":"2016-08-02 20:13:41.000000000","message":"If these are the only 2 options, shouldn\u0027t we add \"choices\" here?","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"96774630436168174b5ab10472971039c4ca8bbb","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Possible values:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":" * None (default)"},{"line_number":71,"context_line":" * https"},{"line_number":72,"context_line":"\"\"\"),"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_39c0607c","line":71,"range":{"start_line":70,"start_character":3,"end_line":71,"end_character":8},"in_reply_to":"9ad45d7e_b0783efa","updated":"2016-08-09 17:33:40.000000000","message":"this line [0] assigns value to wsgi.url_scheme, and reading from wsgi doc [1], it seems that the only possible values here are http or https\n\n\n[0] https://github.com/openstack/nova/blob/7b032f5339d39ae3f57832c0285b2b818b1ec918/nova/wsgi.py#L240\n\n[1] http://wsgi.readthedocs.io/en/latest/definitions.html#envvar-wsgi.url_scheme","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e702f1c6b09f2d4b3d94eeef1d885fc89cd251ed","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Possible values:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":" * None (default)"},{"line_number":71,"context_line":" * https"},{"line_number":72,"context_line":"\"\"\"),"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_b0783efa","line":71,"range":{"start_line":70,"start_character":3,"end_line":71,"end_character":8},"in_reply_to":"bacf61ea_906cff37","updated":"2016-08-08 09:54:02.000000000","message":"Actually, the example possible values are incorrect here.\n\nA better example would be a header name such as: HTTP_X_FORWARDED_PROTO","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"152693d7bc23b3040958118e3e6571c05b637b1d","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":" * keep_alive"},{"line_number":135,"context_line":"\"\"\"),"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    cfg.IntOpt("},{"line_number":138,"context_line":"        \u0027default_pool_size\u0027,"},{"line_number":139,"context_line":"        min\u003d0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_d04dd7c5","line":136,"updated":"2016-08-02 20:13:41.000000000","message":"nit: I don\u0027t think blank spaces are needed after each option.","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"96774630436168174b5ab10472971039c4ca8bbb","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":" * keep_alive"},{"line_number":135,"context_line":"\"\"\"),"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    cfg.IntOpt("},{"line_number":138,"context_line":"        \u0027default_pool_size\u0027,"},{"line_number":139,"context_line":"        min\u003d0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7f20454a","line":136,"in_reply_to":"bacf61ea_d04dd7c5","updated":"2016-08-09 17:33:40.000000000","message":"There are not, just keeping them so there is a visual separator between opts","commit_id":"760da9965b1c31d878526fda1297998dc8fd9f78"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ff77bc005cbf0f5736a76154dde911149c6a740","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    title\u003d\u0027WSGI Options\u0027,"},{"line_number":21,"context_line":"    help\u003d\u0027\u0027\u0027"},{"line_number":22,"context_line":"Options under this group are used to configure WSGI (Web Server Gateway"},{"line_number":23,"context_line":"Interface). WSGI is mostly used to serve API requests."},{"line_number":24,"context_line":"\u0027\u0027\u0027,"},{"line_number":25,"context_line":")"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_e66720b5","line":23,"range":{"start_line":23,"start_character":20,"end_line":23,"end_character":26},"updated":"2016-08-10 11:18:33.000000000","message":"Nit: we should drop mostly.","commit_id":"0d50ab7570772b78878608796c74558ec4c5d55a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ff77bc005cbf0f5736a76154dde911149c6a740","unresolved":false,"context_lines":[{"line_number":66,"context_line":"This option specifies the HTTP header used to determine the scheme for the"},{"line_number":67,"context_line":"original request, even if it was removed by an SSL terminating proxy."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Possible values:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":" * None (default)"},{"line_number":72,"context_line":" * http"},{"line_number":73,"context_line":" * https"},{"line_number":74,"context_line":"\"\"\"),"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_26a8188d","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":8},"updated":"2016-08-10 11:18:33.000000000","message":"No, this is incorrect. Look at where the config is actually used:\nhttps://github.com/openstack/nova/blob/7b032f5339d39ae3f57832c0285b2b818b1ec918/nova/wsgi.py#L238\n\nThis setting is used for the header name, e.g. HTTP_X_FORWARDED_PROTO rather than the content of that (which would be http or https).\n\nAlso we need to describe the default behaviour, by default the request scheme is not influenced by any HTTP headers.","commit_id":"0d50ab7570772b78878608796c74558ec4c5d55a"}]}
