)]}'
{"doc/saio/swift/proxy-server.conf":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"c88993ec3d7442947ced95385992d259313d3a3f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"[filter:versioned_writes]"},{"line_number":68,"context_line":"use \u003d egg:swift#versioned_writes"},{"line_number":69,"context_line":"allow_versioned_writes \u003d true"},{"line_number":70,"context_line":"default_versions_mode \u003d history"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"[filter:copy]"},{"line_number":73,"context_line":"use \u003d egg:swift#copy"}],"source_content_type":"text/plain","patch_set":1,"id":"fa7ab95a_6c5687cf","line":70,"updated":"2016-08-29 12:16:48.000000000","message":"I think this should be \u0027stack\u0027, because that\u0027s the default even with this patch applied.","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"b68fc0e188e4a1c5307438eb51a4071f9aad1ba2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"[filter:versioned_writes]"},{"line_number":68,"context_line":"use \u003d egg:swift#versioned_writes"},{"line_number":69,"context_line":"allow_versioned_writes \u003d true"},{"line_number":70,"context_line":"default_versions_mode \u003d history"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"[filter:copy]"},{"line_number":73,"context_line":"use \u003d egg:swift#copy"}],"source_content_type":"text/plain","patch_set":1,"id":"fa7ab95a_6998dd78","line":70,"in_reply_to":"fa7ab95a_2fee23b4","updated":"2016-08-30 15:15:18.000000000","message":"My 2 cents: As it would be nice to have more testing on the new features (this new mode), having the default config in saio differ from the default for prod might result in more confusion when resolving why saio breaks while prod does not, and vice-versa.  If we decide this is the best way for new features, then I would expect this pattern to be followed - so the config may begin to differ substantially.\n\nWhen debugging configuration issues (that more commonly arise from newer features) as a developer on SAIO, it is easier to suspect a special config setting when it is a modification that had to be made from a default.\n\nI will always promote, however, making improvements to our test framework both locally and in the gate which would support specifically crafted alternate configuration settings.\n\nThat said, I am open to other arguments.","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"a59266bee175aa39b868456d3913fd3ec597625f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"[filter:versioned_writes]"},{"line_number":68,"context_line":"use \u003d egg:swift#versioned_writes"},{"line_number":69,"context_line":"allow_versioned_writes \u003d true"},{"line_number":70,"context_line":"default_versions_mode \u003d history"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"[filter:copy]"},{"line_number":73,"context_line":"use \u003d egg:swift#copy"}],"source_content_type":"text/plain","patch_set":1,"id":"fa7ab95a_10e68de7","line":70,"in_reply_to":"fa7ab95a_6998dd78","updated":"2016-08-30 18:16:38.000000000","message":"@Janie, I can certainly understand the points you made (and I think that\u0027s how Christian was thinking too) and I think they are valid. We need more discussion before changing the way in how we set the configuration for saio so we can discuss the pros/cons of each approach. There might also be ways in which we can achieve both goals like providing different configuration files??","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"bd54a311aafbe91284771a20445e2d4808677bde","unresolved":false,"context_lines":[{"line_number":67,"context_line":"[filter:versioned_writes]"},{"line_number":68,"context_line":"use \u003d egg:swift#versioned_writes"},{"line_number":69,"context_line":"allow_versioned_writes \u003d true"},{"line_number":70,"context_line":"default_versions_mode \u003d history"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"[filter:copy]"},{"line_number":73,"context_line":"use \u003d egg:swift#copy"}],"source_content_type":"text/plain","patch_set":1,"id":"fa7ab95a_2fee23b4","line":70,"in_reply_to":"fa7ab95a_6c5687cf","updated":"2016-08-29 17:12:30.000000000","message":"I can set it to stack, but I\u0027ve been thinking that we should start using saio setting for forward looking configuration, basically how we expect new clusters to be configured. \n\nI understand this is quite a change of how we do things today, but I think setting the default in saio configuration such as fast-post and history mode would get the larger community (devs, ops, app developers) that use SAIO for testing to start testing these new modes of configuration.","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"b4e71cc4bdb9613ae0c55b51d30555d842275142","unresolved":false,"context_lines":[{"line_number":67,"context_line":"[filter:versioned_writes]"},{"line_number":68,"context_line":"use \u003d egg:swift#versioned_writes"},{"line_number":69,"context_line":"allow_versioned_writes \u003d true"},{"line_number":70,"context_line":"default_versions_mode \u003d stack"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"[filter:copy]"},{"line_number":73,"context_line":"use \u003d egg:swift#copy"}],"source_content_type":"text/plain","patch_set":2,"id":"fa7ab95a_dabe09ad","line":70,"updated":"2016-08-30 15:17:49.000000000","message":"ah, i see that it was done already","commit_id":"7c756b515bb2bf6647792a2edc170b8e7f54a6e4"}],"swift/common/middleware/versioned_writes.py":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"c88993ec3d7442947ced95385992d259313d3a3f","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            # if versions mode is not sent as a header, check the default"},{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if VERSIONS_LOC_SYSMETA in req.headers:"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        if req.headers.pop(\u0027X-Remove-Versions-Mode\u0027, None):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_a77ee816","line":714,"updated":"2016-08-29 12:16:48.000000000","message":"This sets VERSIONS_MODE_SYSMETA even when X-Remove-Versions-Mode is set, because VERSIONS_LOC_SYSMETA is defined then. Though it is unset again in line 718, I\u0027m a little bit worried that this slips in sometime in the future.\n\nCould you maybe update the tests to ensure it will be never set when X-Remove-Versions-Mode is set?\n\nOr just use\n\n if req.headers.get(\u0027VERSIONS_LOC_SYSMETA\u0027):","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"bd54a311aafbe91284771a20445e2d4808677bde","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            # if versions mode is not sent as a header, check the default"},{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if VERSIONS_LOC_SYSMETA in req.headers:"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        if req.headers.pop(\u0027X-Remove-Versions-Mode\u0027, None):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_9442e666","line":714,"in_reply_to":"fa7ab95a_a77ee816","updated":"2016-08-29 17:12:30.000000000","message":"Done.","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"c88993ec3d7442947ced95385992d259313d3a3f","unresolved":false,"context_lines":[{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if VERSIONS_LOC_SYSMETA in req.headers:"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        if req.headers.pop(\u0027X-Remove-Versions-Mode\u0027, None):"},{"line_number":718,"context_line":"            req.headers.update({VERSIONS_MODE_SYSMETA: \u0027\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_b9153041","line":715,"updated":"2016-08-29 12:16:48.000000000","message":"Another idea: you could read this option in self.init, and raise a logging warning then if it is set to stack mode (something like \"this is deprecated and will...\").","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"bd54a311aafbe91284771a20445e2d4808677bde","unresolved":false,"context_lines":[{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if VERSIONS_LOC_SYSMETA in req.headers:"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        if req.headers.pop(\u0027X-Remove-Versions-Mode\u0027, None):"},{"line_number":718,"context_line":"            req.headers.update({VERSIONS_MODE_SYSMETA: \u0027\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_cf221752","line":715,"in_reply_to":"fa7ab95a_b9153041","updated":"2016-08-29 17:12:30.000000000","message":"We haven\u0027t really discussed deprecating stack mode, so I\u0027d prefer holding that off to another patch. I\u0027m for it, but I don\u0027t know yet if the community agrees.","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"b68fc0e188e4a1c5307438eb51a4071f9aad1ba2","unresolved":false,"context_lines":[{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if VERSIONS_LOC_SYSMETA in req.headers:"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"        if req.headers.pop(\u0027X-Remove-Versions-Mode\u0027, None):"},{"line_number":718,"context_line":"            req.headers.update({VERSIONS_MODE_SYSMETA: \u0027\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_da6609ba","line":715,"in_reply_to":"fa7ab95a_cf221752","updated":"2016-08-30 15:15:18.000000000","message":"Again, my 2 cents: I would vote for deprecation of stack  mode.  Maybe this could be discussed in the next meeting in order to get consensus.","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"04f3a8f319e59dd86702136235dfaed620aebced","unresolved":false,"context_lines":[{"line_number":709,"context_line":"                req.headers[\u0027X-Remove-Versions-Mode\u0027] \u003d \u0027x\u0027"},{"line_number":710,"context_line":"        else:"},{"line_number":711,"context_line":"            # if versions mode is not sent as a header, check the default"},{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if req.headers.get(VERSIONS_LOC_SYSMETA):"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_687653d8","line":712,"updated":"2016-08-29 19:23:56.000000000","message":"If a user has already created a container, set up versioning to one location with a non-default mode, then change the location, which mode should the container use? The way it\u0027s coded now it\u0027ll revert to the default mode, but I wonder if the user would expect it to still be in the mode they\u0027d explicitly set earlier.","commit_id":"7c756b515bb2bf6647792a2edc170b8e7f54a6e4"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"6ee9681b5d7d9226bf225756485513783f03f833","unresolved":false,"context_lines":[{"line_number":709,"context_line":"                req.headers[\u0027X-Remove-Versions-Mode\u0027] \u003d \u0027x\u0027"},{"line_number":710,"context_line":"        else:"},{"line_number":711,"context_line":"            # if versions mode is not sent as a header, check the default"},{"line_number":712,"context_line":"            # option set by operator."},{"line_number":713,"context_line":"            if req.headers.get(VERSIONS_LOC_SYSMETA):"},{"line_number":714,"context_line":"                req.headers[VERSIONS_MODE_SYSMETA] \u003d \\"},{"line_number":715,"context_line":"                    self.conf.get(\u0027default_versions_mode\u0027, \u0027stack\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_da30bb58","line":712,"in_reply_to":"fa7ab95a_687653d8","updated":"2016-08-30 20:15:16.000000000","message":"Agree, I think the expectation is that it would remain with the previous setup mode. I\u0027ve changed the code to check container info","commit_id":"7c756b515bb2bf6647792a2edc170b8e7f54a6e4"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"04f3a8f319e59dd86702136235dfaed620aebced","unresolved":false,"context_lines":[{"line_number":816,"context_line":"    conf.update(local_conf)"},{"line_number":817,"context_line":"    if config_true_value(conf.get(\u0027allow_versioned_writes\u0027)):"},{"line_number":818,"context_line":"        register_swift_info(\u0027versioned_writes\u0027,"},{"line_number":819,"context_line":"                            allowed_versions_mode\u003dVERSIONING_MODES)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def obj_versions_filter(app):"},{"line_number":822,"context_line":"        return VersionedWritesMiddleware(app, conf)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_a3187c76","line":819,"updated":"2016-08-29 19:23:56.000000000","message":"We probably ought to\n* register the default mode and\n* check that the default mode is in VERSIONING_MODES.","commit_id":"7c756b515bb2bf6647792a2edc170b8e7f54a6e4"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"6ee9681b5d7d9226bf225756485513783f03f833","unresolved":false,"context_lines":[{"line_number":816,"context_line":"    conf.update(local_conf)"},{"line_number":817,"context_line":"    if config_true_value(conf.get(\u0027allow_versioned_writes\u0027)):"},{"line_number":818,"context_line":"        register_swift_info(\u0027versioned_writes\u0027,"},{"line_number":819,"context_line":"                            allowed_versions_mode\u003dVERSIONING_MODES)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def obj_versions_filter(app):"},{"line_number":822,"context_line":"        return VersionedWritesMiddleware(app, conf)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_fef48cf1","line":819,"in_reply_to":"fa7ab95a_a3187c76","updated":"2016-08-30 20:15:16.000000000","message":"Done","commit_id":"7c756b515bb2bf6647792a2edc170b8e7f54a6e4"}],"test/unit/common/middleware/test_versioned_writes.py":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"c88993ec3d7442947ced95385992d259313d3a3f","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_default_versions_mode_history(self):"},{"line_number":300,"context_line":"        self.vw.conf \u003d {\u0027allow_versioned_writes\u0027: \u0027true\u0027,"},{"line_number":301,"context_line":"            \u0027default_versions_mode\u0027: \u0027history\u0027}"},{"line_number":302,"context_line":"        self.app.register(\u0027PUT\u0027, \u0027/v1/a/c\u0027, swob.HTTPOk, {}, \u0027passed\u0027)"},{"line_number":303,"context_line":"        req \u003d Request.blank(\u0027/v1/a/c\u0027,"},{"line_number":304,"context_line":"                            headers\u003d{\u0027X-Versions-Location\u0027: \u0027ver_cont\u0027},"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_875ba4f5","line":301,"updated":"2016-08-29 12:16:48.000000000","message":"This is mostly duplicated code, except the first line. Maybe refactor this a bit, for example like this: http://paste.openstack.org/show/564549/ ?","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"bd54a311aafbe91284771a20445e2d4808677bde","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_default_versions_mode_history(self):"},{"line_number":300,"context_line":"        self.vw.conf \u003d {\u0027allow_versioned_writes\u0027: \u0027true\u0027,"},{"line_number":301,"context_line":"            \u0027default_versions_mode\u0027: \u0027history\u0027}"},{"line_number":302,"context_line":"        self.app.register(\u0027PUT\u0027, \u0027/v1/a/c\u0027, swob.HTTPOk, {}, \u0027passed\u0027)"},{"line_number":303,"context_line":"        req \u003d Request.blank(\u0027/v1/a/c\u0027,"},{"line_number":304,"context_line":"                            headers\u003d{\u0027X-Versions-Location\u0027: \u0027ver_cont\u0027},"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_ba38b33e","line":301,"in_reply_to":"fa7ab95a_875ba4f5","updated":"2016-08-29 17:12:30.000000000","message":"Done","commit_id":"562a6ea2498588298bdbd81b4899630234e413f2"}]}
