)]}'
{".zuul.yaml":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0f0c27265dafc428f8b99d49af57acb2624542bf","unresolved":true,"context_lines":[{"line_number":585,"context_line":"              - ^(api-ref|releasenotes)/.*$"},{"line_number":586,"context_line":"              # Keep doc/saio -- we use those sample configs in the saio playbooks"},{"line_number":587,"context_line":"              - ^doc/(requirements.txt|(manpages|s3api|source)/.*)$"},{"line_number":588,"context_line":"              - ^test/(unit|functional)/.*$"},{"line_number":589,"context_line":"              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\\.rst)$"},{"line_number":590,"context_line":"        - swift-dsvm-functional:"},{"line_number":591,"context_line":"            irrelevant-files:"}],"source_content_type":"text/x-yaml","patch_set":20,"id":"df07fcba_148db34d","line":588,"updated":"2021-01-28 00:02:53.000000000","message":"Needs updating. No reason Alistair\u0027s follow-up needed to run py3 probe tests.","commit_id":"a19ccbcc705549c3e56370a1d66cc781ebdb88b8"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7b06083601ae35c4ca0761ab4bce30f1b7d36e59","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    pre-run:"},{"line_number":300,"context_line":"      - tools/playbooks/cors/install_selenium.yaml"},{"line_number":301,"context_line":"    run: tools/playbooks/cors/run.yaml"},{"line_number":302,"context_line":"    post-run: tools/playbooks/cors/post.yaml"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"- nodeset:"},{"line_number":305,"context_line":"    name: swift-five-nodes"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"f6121e07_dc288cc0","line":302,"updated":"2021-02-26 03:29:48.000000000","message":"Nice!\n\nFor other reviewers, zuul job configuration is not so intuitive so just wanted to go confirm the docs and the output of the job itself.\n\nSo pre-run playbooks defined will be run after any per-run playbooks in the parent (https://zuul-ci.org/docs/zuul/3.15.0/reference/job_def.html#attr-job.pre-run)\n\nPost-run playbooks defined will be run before any post-run playbooks in the parent (https://zuul-ci.org/docs/zuul/3.15.0/reference/job_def.html#attr-job.post-run)\n\nHowever, and I guess obvously, the run playbook (can\u0027t be a list of playbooks) so replaces, if defined, the parents. (https://zuul-ci.org/docs/zuul/3.15.0/reference/job_def.html#attr-job.run)\n\nJust confirmed so other reviewers don\u0027t have too.","commit_id":"1b6795a905857264f885c2ca1287222f3b3f4869"}],"test/cors/README.rst":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"78b2bf542d388bd025a9bef3481f1a5b708fb0f3","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Fortunately, Swift `allows per-container configuration"},{"line_number":15,"context_line":"\u003chttps://docs.openstack.org/swift/latest/cors.html\u003e`__ of many CORS options."},{"line_number":16,"context_line":"However, our normal functional tests only exercise bits and pieces of CORS,"},{"line_number":17,"context_line":"without telling a complete story or performing a true end-to-end test. `These`"},{"line_number":18,"context_line":"tests aim to remedy that."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The tests consist of three parts:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"0fb642c0_90893c0b","line":17,"range":{"start_line":17,"start_character":71,"end_line":17,"end_character":78},"updated":"2021-01-29 17:16:18.000000000","message":"was this meant to be a link?","commit_id":"a19ccbcc705549c3e56370a1d66cc781ebdb88b8"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"76711d67118abfe62387d5cfd84013ec85d671f8","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Fortunately, Swift `allows per-container configuration"},{"line_number":15,"context_line":"\u003chttps://docs.openstack.org/swift/latest/cors.html\u003e`__ of many CORS options."},{"line_number":16,"context_line":"However, our normal functional tests only exercise bits and pieces of CORS,"},{"line_number":17,"context_line":"without telling a complete story or performing a true end-to-end test. `These`"},{"line_number":18,"context_line":"tests aim to remedy that."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The tests consist of three parts:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bce0c193_7271ca4e","line":17,"range":{"start_line":17,"start_character":71,"end_line":17,"end_character":78},"in_reply_to":"0fb642c0_90893c0b","updated":"2021-02-24 21:01:01.000000000","message":"No, just italics. Maybe there\u0027s some other way to better mark that up... I forget.","commit_id":"a19ccbcc705549c3e56370a1d66cc781ebdb88b8"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"78b2bf542d388bd025a9bef3481f1a5b708fb0f3","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Running Tests Manually"},{"line_number":43,"context_line":"----------------------"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"To inspect the test results in your local browser, run::"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   $ ./test/cors/main.py --no-run"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"7ea1ca8b_db8dc46a","line":45,"updated":"2021-01-29 17:16:18.000000000","message":"Could do with a little more context:\n- run up your SAIO\n- export OS_* vars to env if non-default (I wanted to run against my headless V-SAIO for example)","commit_id":"a19ccbcc705549c3e56370a1d66cc781ebdb88b8"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9c53861369440c1835ffa2e48fcef51ef53b1fd5","unresolved":true,"context_lines":[{"line_number":72,"context_line":"   http://localhost:8000/#OS_AUTH_URL\u003dhttp://saio/auth/v1.0\u0026OS_USERNAME\u003dtest:tester\u0026OS_PASSWORD\u003dtesting\u0026OS_STORAGE_URL\u003dhttp://saio/v1/AUTH_test\u0026test\u003dobject%20-%20GET"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"will just run the test named ``object - GET``."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"To stop the server, press ``^C``."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Running Tests with Selenium"}],"source_content_type":"text/x-rst","patch_set":23,"id":"d8542b73_d9aece31","line":75,"updated":"2021-02-24 15:55:38.000000000","message":"WFM","commit_id":"1b6795a905857264f885c2ca1287222f3b3f4869"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9c53861369440c1835ffa2e48fcef51ef53b1fd5","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"When using selenium, the test runner will try to run tests in Firefox, Chrome,"},{"line_number":91,"context_line":"Safari, Edge, and IE if available; if a browser seems to not be available, its"},{"line_number":92,"context_line":"tests will be skipped."}],"source_content_type":"text/x-rst","patch_set":23,"id":"493d7698_efff38fb","line":92,"updated":"2021-02-24 15:55:38.000000000","message":"WFM with Safari","commit_id":"1b6795a905857264f885c2ca1287222f3b3f4869"}],"test/cors/harness.js":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8fb311240cee132d23461ca129ad5fc2d43eef8b","unresolved":true,"context_lines":[{"line_number":17,"context_line":"  params \u003d params || {}"},{"line_number":18,"context_line":"  // give each request a unique query string to avoid ever fetching from cache"},{"line_number":19,"context_line":"  params[\u0027cors-test-time\u0027] \u003d Date.now().toString()"},{"line_number":20,"context_line":"  params[\u0027cors-test-random\u0027] \u003d Math.random().toString()"},{"line_number":21,"context_line":"  for (var key in params) {"},{"line_number":22,"context_line":"      url.searchParams.append(key, params[key])"},{"line_number":23,"context_line":"  }"}],"source_content_type":"text/javascript","patch_set":22,"id":"113ef1e9_ec98d67f","line":20,"updated":"2021-02-23 18:24:44.000000000","message":"this cache busting seems to be working really well for me","commit_id":"46594078c1e46d1d7ddbbbbecd0f0d97666bf8b3"}],"test/cors/main.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"76711d67118abfe62387d5cfd84013ec85d671f8","unresolved":true,"context_lines":[{"line_number":114,"context_line":"    })"},{"line_number":115,"context_line":"    conn.put_container(\u0027other-referrer-allowed\u0027, {"},{"line_number":116,"context_line":"        \u0027X-Container-Read\u0027: \u0027.r:other-host\u0027,"},{"line_number":117,"context_line":"        \u0027X-Container-Meta-Access-Control-Allow-Origin\u0027: \u0027http://other-post\u0027,"},{"line_number":118,"context_line":"    })"},{"line_number":119,"context_line":"    conn.put_container(\u0027public-with-cors\u0027, {"},{"line_number":120,"context_line":"        \u0027X-Container-Read\u0027: \u0027.r:*,.rlistings\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"903dc166_52c62bda","line":117,"range":{"start_line":117,"start_character":70,"end_line":117,"end_character":74},"updated":"2021-02-24 21:01:01.000000000","message":"host","commit_id":"1b6795a905857264f885c2ca1287222f3b3f4869"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9c53861369440c1835ffa2e48fcef51ef53b1fd5","unresolved":true,"context_lines":[{"line_number":220,"context_line":"        if status \u003d\u003d \u0027PASS\u0027:"},{"line_number":221,"context_line":"            fp.write(\u0027ok %d - %s\\n\u0027 % (test, name))"},{"line_number":222,"context_line":"        elif status \u003d\u003d \u0027SKIP\u0027:"},{"line_number":223,"context_line":"            fp.write(\u0027ok %d - %s # skip %s\\n\u0027 % (test, name, details))"},{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            fp.write(\u0027not ok %d - %s\\n\u0027 % (test, name))"},{"line_number":226,"context_line":"            fp.write(\u0027  %s%s\\n\u0027 % (status, \u0027:\u0027 if details else \u0027\u0027))"}],"source_content_type":"text/x-python","patch_set":23,"id":"70734b4c_8c6fc259","line":223,"updated":"2021-02-24 15:55:38.000000000","message":"if no browser drivers are configured the tests will pass (rc\u003d0) - maybe no browsers found should be reported as a fail or error?","commit_id":"1b6795a905857264f885c2ca1287222f3b3f4869"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"76711d67118abfe62387d5cfd84013ec85d671f8","unresolved":true,"context_lines":[{"line_number":220,"context_line":"        if status \u003d\u003d \u0027PASS\u0027:"},{"line_number":221,"context_line":"            fp.write(\u0027ok %d - %s\\n\u0027 % (test, name))"},{"line_number":222,"context_line":"        elif status \u003d\u003d \u0027SKIP\u0027:"},{"line_number":223,"context_line":"            fp.write(\u0027ok %d - %s # skip %s\\n\u0027 % (test, name, details))"},{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            fp.write(\u0027not ok %d - %s\\n\u0027 % (test, name))"},{"line_number":226,"context_line":"            fp.write(\u0027  %s%s\\n\u0027 % (status, \u0027:\u0027 if details else \u0027\u0027))"}],"source_content_type":"text/x-python","patch_set":23,"id":"82249028_91d070fb","line":223,"in_reply_to":"70734b4c_8c6fc259","updated":"2021-02-24 21:01:01.000000000","message":"Good call -- will fix.","commit_id":"1b6795a905857264f885c2ca1287222f3b3f4869"}],"test/cors/test-large-objects.js":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8fb311240cee132d23461ca129ad5fc2d43eef8b","unresolved":true,"context_lines":[{"line_number":16,"context_line":"    if (!(\u0027slo\u0027 in clusterInfo)) {"},{"line_number":17,"context_line":"      throw new Skip(\u0027SLO is not enabled\u0027)"},{"line_number":18,"context_line":"    }"},{"line_number":19,"context_line":"    return MakeRequest(...arguments)"},{"line_number":20,"context_line":"  })"},{"line_number":21,"context_line":"}"},{"line_number":22,"context_line":""}],"source_content_type":"text/javascript","patch_set":22,"id":"50616d22_1c4ec7bf","line":19,"updated":"2021-02-23 18:24:44.000000000","message":"that\u0027s some fancy *args there","commit_id":"46594078c1e46d1d7ddbbbbecd0f0d97666bf8b3"}],"test/functional/cors/test-container.js":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"dac9edbdde3499051b1dc8993177b5ae38f8180e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"      t.assertEqual(data[15][\u0027name\u0027], \u0027symlink-to-public-no-cors\u0027)"},{"line_number":33,"context_line":"      t.assertEqual(data[16][\u0027name\u0027], \u0027symlink-to-public-with-cors\u0027)"},{"line_number":34,"context_line":"      t.assertEqual(data.length, 17)"},{"line_number":35,"context_line":"      // dumpAsJSON(data)"},{"line_number":36,"context_line":"    }],"},{"line_number":37,"context_line":"  [\u0027container - GET format\u003djson\u0026delimiter\u003d/\u0027,"},{"line_number":38,"context_line":"    SimpleRequest(\u0027GET\u0027, \u0027public-with-cors?format\u003djson\u0026delimiter\u003d/\u0027),"}],"source_content_type":"text/javascript","patch_set":4,"id":"1f769fc5_6c51bbd8","line":35,"updated":"2019-06-10 21:43:04.000000000","message":"nix","commit_id":"526b275d4de658395f625825b6a8f3efb8891a9d"}],"test/functional/cors/test-object.js":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"dac9edbdde3499051b1dc8993177b5ae38f8180e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    Unauthorized],"},{"line_number":85,"context_line":"  [\u0027object - GET no CORS, object exists\u0027,"},{"line_number":86,"context_line":"    SimpleRequest(\u0027GET\u0027, \u0027public-no-cors/obj\u0027),"},{"line_number":87,"context_line":"    CorsBlocked], // Rut req 200s"},{"line_number":88,"context_line":"  [\u0027object - GET no CORS, object does not exist\u0027,"},{"line_number":89,"context_line":"    SimpleRequest(\u0027GET\u0027, \u0027public-no-cors/should-404\u0027),"},{"line_number":90,"context_line":"    CorsBlocked], // Rut req 404s"}],"source_content_type":"text/javascript","patch_set":4,"id":"1f769fc5_ec2ceb48","line":87,"range":{"start_line":87,"start_character":21,"end_line":87,"end_character":24},"updated":"2019-06-10 21:43:04.000000000","message":"\"But\" -- ditto for others below","commit_id":"526b275d4de658395f625825b6a8f3efb8891a9d"}]}
