)]}'
{"doc/saio/swift/proxy-server.conf":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"30c5a4d05e43a5609a8d7df20024c5521567dc80","unresolved":false,"context_lines":[{"line_number":9,"context_line":"[pipeline:main]"},{"line_number":10,"context_line":"# Yes, proxy-logging appears twice. This is so that"},{"line_number":11,"context_line":"# middleware-originated requests get logged too."},{"line_number":12,"context_line":"pipeline \u003d catch_errors gatekeeper healthcheck proxy-logging cache bulk tempurl ratelimit crossdomain container_sync domain_remap tempauth staticweb copy container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[filter:catch_errors]"},{"line_number":15,"context_line":"use \u003d egg:swift#catch_errors"}],"source_content_type":"text/plain","patch_set":5,"id":"bff0334d_369d9709","line":12,"updated":"2017-04-12 21:37:12.000000000","message":"I think most of the gate tests use the *other* example config?\n\ngate job logs seem to maybe confirm?\n\n2017-03-16 14:11:04.882783 | Using proxy config from /home/jenkins/workspace/gate-swift-tox-xfs-tmp-func-ubuntu-xenial/etc/proxy-server.conf-sample","commit_id":"fa213bb16267dd7561c6aa5ce87796c56fea1a62"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"70202473b905d665e8f08a24c0027ec1cb1d067a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"[pipeline:main]"},{"line_number":10,"context_line":"# Yes, proxy-logging appears twice. This is so that"},{"line_number":11,"context_line":"# middleware-originated requests get logged too."},{"line_number":12,"context_line":"pipeline \u003d catch_errors gatekeeper healthcheck proxy-logging cache bulk tempurl ratelimit crossdomain container_sync domain_remap tempauth staticweb copy container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[filter:catch_errors]"},{"line_number":15,"context_line":"use \u003d egg:swift#catch_errors"}],"source_content_type":"text/plain","patch_set":5,"id":"9f436f4f_6bfbbc46","line":12,"in_reply_to":"bff0334d_369d9709","updated":"2017-08-11 23:53:16.000000000","message":"Added to both.","commit_id":"fa213bb16267dd7561c6aa5ce87796c56fea1a62"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"30c5a4d05e43a5609a8d7df20024c5521567dc80","unresolved":false,"context_lines":[{"line_number":43,"context_line":"use \u003d egg:swift#tempurl"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[filter:domain_remap]"},{"line_number":46,"context_line":"use \u003d egg:swift#domain_remap"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"[filter:tempauth]"},{"line_number":49,"context_line":"use \u003d egg:swift#tempauth"}],"source_content_type":"text/plain","patch_set":5,"id":"bff0334d_b1e4113d","line":46,"updated":"2017-04-12 21:37:12.000000000","message":"for this config file - should we explicitly set the storage_domain to example.com so that this configuration is documented to be compatible with the tests?\n\nFor me all of the tests fail when I set the storage_domain \u003d clayg.info\n\nProbably this:\n\n    [filter:domain_remap]\n    use \u003d egg:swift#domain_remap\n    storage_domain \u003d example.com\n    default_reseller_prefix \u003d AUTH","commit_id":"fa213bb16267dd7561c6aa5ce87796c56fea1a62"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"70202473b905d665e8f08a24c0027ec1cb1d067a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"use \u003d egg:swift#tempurl"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[filter:domain_remap]"},{"line_number":46,"context_line":"use \u003d egg:swift#domain_remap"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"[filter:tempauth]"},{"line_number":49,"context_line":"use \u003d egg:swift#tempauth"}],"source_content_type":"text/plain","patch_set":5,"id":"9f436f4f_8b02603c","line":46,"in_reply_to":"bff0334d_b1e4113d","updated":"2017-08-11 23:53:16.000000000","message":"Done","commit_id":"fa213bb16267dd7561c6aa5ce87796c56fea1a62"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cde95130edeeb6f25c5175d803181b52a3ff6cf0","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[filter:domain_remap]"},{"line_number":46,"context_line":"use \u003d egg:swift#domain_remap"},{"line_number":47,"context_line":"storage_domain \u003d example.com"},{"line_number":48,"context_line":"default_reseller_prefix \u003d AUTH"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"[filter:tempauth]"},{"line_number":51,"context_line":"use \u003d egg:swift#tempauth"}],"source_content_type":"text/plain","patch_set":7,"id":"7f287b81_c4efb7ae","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":30},"updated":"2017-08-29 17:27:38.000000000","message":"these are the default values so not strictly necessary?","commit_id":"68940779d56d672e71db5814833efb275f98babc"}],"test/functional/test_domain_remap.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"30c5a4d05e43a5609a8d7df20024c5521567dc80","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        _, _, acct \u003d self.env.account.conn.storage_url.split(\u0027/\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.acct_domain_dash \u003d \u0027%s.example.com\u0027 % acct"},{"line_number":79,"context_line":"        self.acct_domain_underscore \u003d \u0027%s.example.com\u0027 % acct.replace(\u0027_\u0027, \u0027-\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.cont_domain_dash \u003d \u0027%s.%s.example.com\u0027 % ("}],"source_content_type":"text/x-python","patch_set":5,"id":"9ff52f3f_dfd8bb80","line":78,"updated":"2017-04-12 21:37:12.000000000","message":"perhaps it would be not unreasonable to bring this in from test.conf (or expose from /info) if you want to use functional tests against real deployments.","commit_id":"fa213bb16267dd7561c6aa5ce87796c56fea1a62"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc5ffbab2cefa85ec32501d8e23bdb2b879dfe77","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class TestDomainRemap(Base):"},{"line_number":63,"context_line":"    env \u003d TestDomainRemapEnv"},{"line_number":64,"context_line":"    set_up \u003d False"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def setUp(self):"},{"line_number":67,"context_line":"        super(TestDomainRemap, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_fe53e815","line":64,"updated":"2017-08-14 16:37:01.000000000","message":"I don\u0027t think this is used anywhere following I874a9e23dfcdd1caa934945b46089f11b9f6de65","commit_id":"00385218397c8d6c0d2c62c13a7c8f102765c887"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc5ffbab2cefa85ec32501d8e23bdb2b879dfe77","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                \"Expected domain_remap_enabled to be True/False, got %r\" %"},{"line_number":74,"context_line":"                (self.env.domain_remap_enabled,))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        _, _, acct \u003d self.env.account.conn.storage_url.split(\u0027/\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.acct_domain_dash \u003d \u0027%s.example.com\u0027 % acct"},{"line_number":79,"context_line":"        self.acct_domain_underscore \u003d \u0027%s.example.com\u0027 % acct.replace(\u0027_\u0027, \u0027-\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_de6dc4cc","line":76,"updated":"2017-08-14 16:37:01.000000000","message":"nit: Maybe better as something like\n\n _, acct \u003d self.env.account.conn.storage_url.rstrip(\u0027/\u0027).rsplit(\u0027/\u0027, 1)\n\n?","commit_id":"00385218397c8d6c0d2c62c13a7c8f102765c887"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc5ffbab2cefa85ec32501d8e23bdb2b879dfe77","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        _, _, acct \u003d self.env.account.conn.storage_url.split(\u0027/\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.acct_domain_dash \u003d \u0027%s.example.com\u0027 % acct"},{"line_number":79,"context_line":"        self.acct_domain_underscore \u003d \u0027%s.example.com\u0027 % acct.replace(\u0027_\u0027, \u0027-\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.cont_domain_dash \u003d \u0027%s.%s.example.com\u0027 % ("},{"line_number":82,"context_line":"            self.env.container.name, acct)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_5e61d4d2","line":79,"updated":"2017-08-14 16:37:01.000000000","message":"So... acct_domain_dash has an underscore, and acct_domain_underscore has a dash?","commit_id":"00385218397c8d6c0d2c62c13a7c8f102765c887"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc5ffbab2cefa85ec32501d8e23bdb2b879dfe77","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                               cfg\u003d{\u0027absolute_path\u0027: True})"},{"line_number":91,"context_line":"            self.assert_status(200)"},{"line_number":92,"context_line":"            body \u003d self.env.account.conn.response.read()"},{"line_number":93,"context_line":"            self.assertIn(self.env.container.name, body)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            path \u003d \u0027/\u0027.join([\u0027\u0027, self.env.container.name])"},{"line_number":96,"context_line":"            self.env.account.conn.make_request(\u0027GET\u0027, path,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_be80c047","line":93,"updated":"2017-08-14 16:37:01.000000000","message":"nit: Maybe better as\n\n self.assertIn(self.env.container.name, body.split(\u0027\\n\u0027))\n\n?","commit_id":"00385218397c8d6c0d2c62c13a7c8f102765c887"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc5ffbab2cefa85ec32501d8e23bdb2b879dfe77","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            new_container_name \u003d Utils.create_name()"},{"line_number":116,"context_line":"            path \u003d \u0027/\u0027.join([\u0027\u0027, new_container_name])"},{"line_number":117,"context_line":"            self.env.account.conn.make_request(\u0027PUT\u0027, path,"},{"line_number":118,"context_line":"                                               data\u003d\u0027new obj contents\u0027,"},{"line_number":119,"context_line":"                                               hdrs\u003d{\u0027Host\u0027: domain},"},{"line_number":120,"context_line":"                                               cfg\u003d{\u0027absolute_path\u0027: True})"},{"line_number":121,"context_line":"            self.assert_status(201)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_be5c40ed","line":118,"updated":"2017-08-14 16:37:01.000000000","message":"Huh. Sure enough, you can shove whatever bytes you like in the body of a container PUT...","commit_id":"00385218397c8d6c0d2c62c13a7c8f102765c887"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cde95130edeeb6f25c5175d803181b52a3ff6cf0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        cls.conn.authenticate()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if cls.domain_remap_enabled is None:"},{"line_number":43,"context_line":"            cls.domain_remap_enabled \u003d \u0027domain_remap\u0027 in cluster_info"},{"line_number":44,"context_line":"            if not cls.domain_remap_enabled:"},{"line_number":45,"context_line":"                return"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_1c7c4581","line":43,"range":{"start_line":43,"start_character":39,"end_line":43,"end_character":69},"updated":"2017-08-29 17:27:38.000000000","message":"The tests will not skip if domain_remap is enabled but will fail if storage_domain is not \u0027example.com\u0027 in the cluster under test.\n\nI\u0027m not sure if people still attempt to run swift functional tests on non-dev clusters - from a quick survey of other functional tests I am not sure we have any yet that assume a specific configuration that is *not* published in /info. So it\u0027s worth considering if this will break anyone\u0027s CI.\n\nI\u0027ll add a topic for a swift irc meeting to get opinions.","commit_id":"68940779d56d672e71db5814833efb275f98babc"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cde95130edeeb6f25c5175d803181b52a3ff6cf0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def setUp(self):"},{"line_number":66,"context_line":"        super(TestDomainRemap, self).setUp()"},{"line_number":67,"context_line":"        if self.env.domain_remap_enabled is False:"},{"line_number":68,"context_line":"            raise SkipTest(\"DomainRemap not enabled\")"},{"line_number":69,"context_line":"        elif self.env.domain_remap_enabled is not True:"},{"line_number":70,"context_line":"            # just some sanity checking"},{"line_number":71,"context_line":"            raise Exception("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_44186780","line":68,"range":{"start_line":68,"start_character":28,"end_line":68,"end_character":39},"updated":"2017-08-29 17:27:38.000000000","message":"nit: camel case seems odd here vs domain_remap","commit_id":"68940779d56d672e71db5814833efb275f98babc"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cde95130edeeb6f25c5175d803181b52a3ff6cf0","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                self.assert_body(\u0027obj contents\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_PUT_remapped_container(self):"},{"line_number":152,"context_line":"        for domain in (self.cont_domain_dash, self.cont_domain_underscore):"},{"line_number":153,"context_line":"            new_obj_name \u003d Utils.create_name()"},{"line_number":154,"context_line":"            self.env.account.conn.make_request(\u0027PUT\u0027, new_obj_name,"},{"line_number":155,"context_line":"                                               data\u003d\u0027new obj contents\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_59a65fad","line":152,"range":{"start_line":152,"start_character":8,"end_line":152,"end_character":74},"updated":"2017-08-29 17:27:38.000000000","message":"nit: (really, no need to change this)\n\nusing the for loop means that if an assertion fails the default exception message/traceback will not tell us which iteration of the loop failed.\n\nan alternative pattern that can cost only a few extra lines of code when there are a small number of cases is:\n\n      def test_PUT_remapped_container(self):\n        def do_test(domain):\n            new_obj_name \u003d Utils.create_name()\n            self.env.account.conn.make_request(\u0027PUT\u0027, new_obj_name,\n                                               data\u003d\u0027new obj contents\u0027,\n                                               hdrs\u003d{\u0027Host\u0027: domain},\n                                               cfg\u003d{\u0027absolute_path\u0027: True})\n            self.assert_status(201)\n\n            new_obj \u003d self.env.container.file(new_obj_name)\n            self.assertEqual(new_obj.read(), \u0027new obj contents\u0027)\n\n        do_test(self.cont_domain_dash)\n        do_test(self.cont_domain_underscore)","commit_id":"68940779d56d672e71db5814833efb275f98babc"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c27ec740a1b912d968cc147b71f9f9d9b2347bfd","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                (self.env.domain_remap_enabled,))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        _, _, acct \u003d self.env.account.conn.storage_url.split(\u0027/\u0027)"},{"line_number":77,"context_line":"        storage_domain \u003d self.env.account.conn.storage_host"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        self.acct_domain_dash \u003d \u0027%s.%s\u0027 % (acct, storage_domain)"},{"line_number":80,"context_line":"        self.acct_domain_underscore \u003d \u0027%s.%s\u0027 % ("}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_60e8c47b","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":59},"updated":"2018-06-06 10:26:35.000000000","message":"If I understand correctly, this requires that domain remap storage_domain is configured to be same as, or include, the auth host. I don\u0027t think that can be assumed, and when I ran the tests against a SAIO with default settings (i.e. storage_domain \u003d example.com) they fail rather than skip.","commit_id":"be5bda09e909e63377fa75f21fd4fc96b0db076b"}]}
