)]}'
{"specs/openstack-health/openstack-heath.rst":[{"author":{"_account_id":18001,"name":"Caio Carrara","email":"ccarrara@thoughtworks.com","username":"caiocarrara"},"change_message_id":"63b0cbd612156d7b9368b5c7f8bea59c7b94cc17","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Front End"},{"line_number":79,"context_line":"---------"},{"line_number":80,"context_line":"The front is composed of HTML pages that use node.js and several nodes libaries"},{"line_number":81,"context_line":"to display data and graphs. The front-end code is hosted in the"},{"line_number":82,"context_line":"openstack-health repo."},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a2fa921_3b63bf43","line":80,"updated":"2015-10-09 17:19:20.000000000","message":"Tell that front end is built upon node.js can be misunderstood as it is going to run upon node.js, what is not true. Actually the front end is built upon AngularJS (framework) and it uses node just during development and also to build the static assets (mostly js) with gulp assistance.\n\nPerhaps can be appropriate to mention the charts are being developed using nvd3 library, mostly to keep clear that we\u0027re using projects with appropriate licenses. Specially because the mockups are out to date and still using Highcharts.","commit_id":"80a56255a910a74b9891baaccdd2ef70422431f0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5375f5f1772b53cc2bed2596b5fb57f89f7f4ea8","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Front End"},{"line_number":79,"context_line":"---------"},{"line_number":80,"context_line":"The front is composed of HTML pages that use node.js and several nodes libaries"},{"line_number":81,"context_line":"to display data and graphs. The front-end code is hosted in the"},{"line_number":82,"context_line":"openstack-health repo."},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a2fa921_a6701241","line":80,"in_reply_to":"7a2fa921_3b63bf43","updated":"2015-10-09 17:33:24.000000000","message":"Thanks, I will correct it - this gives you a test of my lack of JS skill :S","commit_id":"80a56255a910a74b9891baaccdd2ef70422431f0"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"12cd8e7318a110738df4909d6edeb0fb0a7a0cd3","unresolved":false,"context_lines":[{"line_number":98,"context_line":"in form of JSON blobs. The data is collected from the DB using the python"},{"line_number":99,"context_line":"binding (DB API) available in the subunit2sql library."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"The resp API exposes the following core resources:"},{"line_number":102,"context_line":"* /runs"},{"line_number":103,"context_line":"* /tests"},{"line_number":104,"context_line":"* /test_runs"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a2fa921_3b8bbf20","line":101,"updated":"2015-10-09 17:10:29.000000000","message":"typo? s/resp/REST/","commit_id":"80a56255a910a74b9891baaccdd2ef70422431f0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5375f5f1772b53cc2bed2596b5fb57f89f7f4ea8","unresolved":false,"context_lines":[{"line_number":98,"context_line":"in form of JSON blobs. The data is collected from the DB using the python"},{"line_number":99,"context_line":"binding (DB API) available in the subunit2sql library."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"The resp API exposes the following core resources:"},{"line_number":102,"context_line":"* /runs"},{"line_number":103,"context_line":"* /tests"},{"line_number":104,"context_line":"* /test_runs"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a2fa921_0698e668","line":101,"in_reply_to":"7a2fa921_3b8bbf20","updated":"2015-10-09 17:33:24.000000000","message":"good catch :)","commit_id":"80a56255a910a74b9891baaccdd2ef70422431f0"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"070d157867275a0ca3735ccac593e8113db754e9","unresolved":false,"context_lines":[{"line_number":4,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":5,"context_line":" License."},{"line_number":6,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":".."},{"line_number":9,"context_line":"  This template should be in ReSTructured text. The filename in the git"},{"line_number":10,"context_line":"  repository should match the launchpad URL, for example a URL of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a26ad4f_1c9339fc","line":7,"updated":"2015-10-27 08:54:22.000000000","message":"Just a minor thing, but there\u0027s a typo in the name of the file. Shouldn\u0027t it be openstack-health.rst instead of openstack-heath.rst?","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9b6f4b2d19eeab141be09ee8d8b7fca80c5003ef","unresolved":false,"context_lines":[{"line_number":4,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":5,"context_line":" License."},{"line_number":6,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":".."},{"line_number":9,"context_line":"  This template should be in ReSTructured text. The filename in the git"},{"line_number":10,"context_line":"  repository should match the launchpad URL, for example a URL of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afc51ec_04a50fa1","line":7,"in_reply_to":"1a26ad4f_1c9339fc","updated":"2016-03-14 19:09:49.000000000","message":"ah, nice point.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":6,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":".."},{"line_number":9,"context_line":"  This template should be in ReSTructured text. The filename in the git"},{"line_number":10,"context_line":"  repository should match the launchpad URL, for example a URL of"},{"line_number":11,"context_line":"  https://blueprints.launchpad.net/tempest/+spec/awesome-thing should be named"},{"line_number":12,"context_line":"  awesome-thing.rst .  Please do not delete any of the sections in this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_3ce3b2da","line":9,"updated":"2015-10-09 19:57:23.000000000","message":"This isn\u0027t a template anymore","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":38,"context_line":"However not all available data is easily accessible, especially for all tests"},{"line_number":39,"context_line":"which are executed post-merge. More data from the test pipelines is collected"},{"line_number":40,"context_line":"in a DB, but that data is only accessible via SQL or via the python API"},{"line_number":41,"context_line":"provided by the python library subunit2sql."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"A dashboard would help making test result data accessible. Requirements about"},{"line_number":44,"context_line":"it were collected during the summit design session `Testing Beyond the Gate"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_1c07d682","line":41,"updated":"2015-10-09 19:57:23.000000000","message":"there is also a cli interface that leverages the python api. :)","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":66,"context_line":"* openstack-infra/subunit2sql"},{"line_number":67,"context_line":"* openstack-infra/puppet-openstack-health"},{"line_number":68,"context_line":"* openstack-infra/system-config"},{"line_number":69,"context_line":"* openstack-infra/project-config"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_fc5bfa83","line":69,"updated":"2015-10-09 19:57:23.000000000","message":"What is on the project-config side? just the changes to create openstack-health and friends?","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2e5c9becce5b004bcbc5a9aefb04425cf9ed2183","unresolved":false,"context_lines":[{"line_number":66,"context_line":"* openstack-infra/subunit2sql"},{"line_number":67,"context_line":"* openstack-infra/puppet-openstack-health"},{"line_number":68,"context_line":"* openstack-infra/system-config"},{"line_number":69,"context_line":"* openstack-infra/project-config"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_d2f14502","line":69,"in_reply_to":"7a2fa921_fc5bfa83","updated":"2015-10-09 20:38:22.000000000","message":"Yes create the projects, setup CI jobs for them.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Overview page - all runs, gauges for runs grouped by projects"},{"line_number":90,"context_line":"* Project view - all jobs for a project"},{"line_number":91,"context_line":"* Job view - all runs for a job"},{"line_number":92,"context_line":"* Test view - all runs for a test"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Mock-ups for the four pages are available in git:"},{"line_number":95,"context_line":"http://git.openstack.org/cgit/openstack/openstack-health/tree/doc/source/mockups"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_fcd21ad0","line":92,"updated":"2015-10-09 19:57:23.000000000","message":"So fwiw, originally we were only going to discuss the first 3 pages. I didn\u0027t even know there was a mockup for the test view until just now. I went off and just implemented that without knowing about the mockup","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2e5c9becce5b004bcbc5a9aefb04425cf9ed2183","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Overview page - all runs, gauges for runs grouped by projects"},{"line_number":90,"context_line":"* Project view - all jobs for a project"},{"line_number":91,"context_line":"* Job view - all runs for a job"},{"line_number":92,"context_line":"* Test view - all runs for a test"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Mock-ups for the four pages are available in git:"},{"line_number":95,"context_line":"http://git.openstack.org/cgit/openstack/openstack-health/tree/doc/source/mockups"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_72b87111","line":92,"in_reply_to":"7a2fa921_fcd21ad0","updated":"2015-10-09 20:38:22.000000000","message":"Well in the original etherpad you had four pages, and I\u0027d like the scope of the spec to encompass the first four pages.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":101,"context_line":"in form of JSON blobs. The data is collected from the DB using the python"},{"line_number":102,"context_line":"binding (DB API) available in the subunit2sql library."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The rest API exposes the following core resources:"},{"line_number":105,"context_line":"* /runs"},{"line_number":106,"context_line":"* /tests"},{"line_number":107,"context_line":"* /test_runs"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_fca0da43","line":104,"updated":"2015-10-09 19:57:23.000000000","message":"heh, tbh I didn\u0027t have an organization like this in my head when I wrote it. I just did things ad hoc. I guess this is kinda how it ended up though","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2e5c9becce5b004bcbc5a9aefb04425cf9ed2183","unresolved":false,"context_lines":[{"line_number":101,"context_line":"in form of JSON blobs. The data is collected from the DB using the python"},{"line_number":102,"context_line":"binding (DB API) available in the subunit2sql library."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The rest API exposes the following core resources:"},{"line_number":105,"context_line":"* /runs"},{"line_number":106,"context_line":"* /tests"},{"line_number":107,"context_line":"* /test_runs"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_5219b520","line":104,"in_reply_to":"7a2fa921_fca0da43","updated":"2015-10-09 20:38:22.000000000","message":"Sure, but I think the spec is a good place where to try and agree on a direction moving forward. For instance I\u0027d like if possible the rest API to reflect the root objects returned in the JSON. And I think we should avoid as much as possible having /\u003cmetadata name\u003e because that metadata is not guaranteed to exist and its name could change.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The DB API"},{"line_number":122,"context_line":"----------"},{"line_number":123,"context_line":"The DB API is part of the subunit2sql library, and it implements the queries"},{"line_number":124,"context_line":"required by the rest API to display the four views, including some the extra"},{"line_number":125,"context_line":"features such as date filtering and paging."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_9c61a607","line":123,"updated":"2015-10-09 19:57:23.000000000","message":"so to start this is true, eventually we\u0027ll likely expand this beyond just subunit2sql.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2e5c9becce5b004bcbc5a9aefb04425cf9ed2183","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The DB API"},{"line_number":122,"context_line":"----------"},{"line_number":123,"context_line":"The DB API is part of the subunit2sql library, and it implements the queries"},{"line_number":124,"context_line":"required by the rest API to display the four views, including some the extra"},{"line_number":125,"context_line":"features such as date filtering and paging."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_52f0d5c8","line":123,"in_reply_to":"7a2fa921_9c61a607","updated":"2015-10-09 20:38:22.000000000","message":"Because of the extra data sources, right? I should mention that here indeed.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":128,"context_line":"--------"},{"line_number":129,"context_line":"The data is comes from several data sources:"},{"line_number":130,"context_line":"- Primarily it relies on a database that implements the schema defined in subunit2sql"},{"line_number":131,"context_line":"- It may also use data provided by ZUUL (details needed)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Development and Deployment"},{"line_number":134,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_1c4d9699","line":131,"updated":"2015-10-09 19:57:23.000000000","message":"So this will be a seperate db with it\u0027s own db api (which we might have to make rather than import) \n\nThe patch adding this is:\nhttps://review.openstack.org/#/c/223333/8\n\nPart of the advantage of having the rest api layer be seperate from subunit2sql is we can queryt from whatever data source we need to and just format the output to be consistent.","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2e5c9becce5b004bcbc5a9aefb04425cf9ed2183","unresolved":false,"context_lines":[{"line_number":128,"context_line":"--------"},{"line_number":129,"context_line":"The data is comes from several data sources:"},{"line_number":130,"context_line":"- Primarily it relies on a database that implements the schema defined in subunit2sql"},{"line_number":131,"context_line":"- It may also use data provided by ZUUL (details needed)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Development and Deployment"},{"line_number":134,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_32c0b94f","line":131,"in_reply_to":"7a2fa921_1c4d9699","updated":"2015-10-09 20:38:22.000000000","message":"ok","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"316d091edb57bda88813b1173883782a7e534577","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Assignee(s)"},{"line_number":140,"context_line":"-----------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"[Long list of names here?]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Milestones"},{"line_number":145,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_3c1e5270","line":142,"updated":"2015-10-09 19:57:23.000000000","message":"We can just drop this section I think. I mean I guess I\u0027m technically owning this, but its a new effort so there isn\u0027t a single assignee","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2e5c9becce5b004bcbc5a9aefb04425cf9ed2183","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Assignee(s)"},{"line_number":140,"context_line":"-----------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"[Long list of names here?]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Milestones"},{"line_number":145,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a2fa921_d2b2a505","line":142,"in_reply_to":"7a2fa921_3c1e5270","updated":"2015-10-09 20:38:22.000000000","message":"ok, I think it\u0027s good to have one name here anyways for people that find the spec and what to know who to talk, so I\u0027ll put your name in :)","commit_id":"362c1e8573923bcfb5af57f236e61231ec63b632"}]}
