)]}'
{"specs/queens/approved/subunit-data-api.rst":[{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"**Add new REST APIs to the RefStack v1 API**"},{"line_number":30,"context_line":"  * Upload a subunit file- nonadmin capability"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * Link a subunit file to a corresponding existing test result-"},{"line_number":33,"context_line":"    nonadmin capability"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  * Delete a subunit file- admin capability"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_6a333d63","line":33,"range":{"start_line":32,"start_character":4,"end_line":33,"end_character":23},"updated":"2017-10-03 19:34:59.000000000","message":"Are we actually saving the subunit file?\nI thought file will be uploaded and then subunit2sql would be used directly (it will save the information into the DB).","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"da162611c898d7a1368ea5cc11373fb78745bb91","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    * Show ID of corresponding subunit entry (admin)"},{"line_number":84,"context_line":"    * Show link to logs associated with a given result id (admin)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"If split this way, they should be implemented and merged in this order, so as"},{"line_number":87,"context_line":"to avoid any unmet dependencies."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"One factor which is very much up in the air is whether we will be doing subunit"},{"line_number":90,"context_line":"file upload synchronously or asynchronously. This decision will be most"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_d4ea5a73","line":87,"range":{"start_line":86,"start_character":0,"end_line":87,"end_character":32},"updated":"2017-09-26 18:00:03.000000000","message":"It\u0027s possible to enforce dependency chains in Gerrit, preventing changes from merging before unmet dependencies.","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"da162611c898d7a1368ea5cc11373fb78745bb91","unresolved":false,"context_lines":[{"line_number":86,"context_line":"If split this way, they should be implemented and merged in this order, so as"},{"line_number":87,"context_line":"to avoid any unmet dependencies."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"One factor which is very much up in the air is whether we will be doing subunit"},{"line_number":90,"context_line":"file upload synchronously or asynchronously. This decision will be most"},{"line_number":91,"context_line":"effectively made after we\u0027ve done a bit of testing to see how quickly"},{"line_number":92,"context_line":"subunit2sql can perform comparison and conversion operations the subunit"},{"line_number":93,"context_line":"data generate in a full tempest run."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_d49ffa00","line":93,"range":{"start_line":89,"start_character":0,"end_line":93,"end_character":36},"updated":"2017-09-26 18:00:03.000000000","message":"I\u0027d like to state a preference for synchronous, and from previous work it appears that the bulk of the time will be in data transfer.","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"This API will interface with subunit2sql, which will add several tables into"},{"line_number":108,"context_line":"the RefStack database. Though these have been laid out already in the general"},{"line_number":109,"context_line":"subunit data import spec, for the sake of the sake of thoroughness, here they"},{"line_number":110,"context_line":"are again:::"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":" --------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_c0cfd426","line":109,"range":{"start_line":109,"start_character":42,"end_line":109,"end_character":54},"updated":"2017-10-03 19:34:59.000000000","message":"small typo","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"da162611c898d7a1368ea5cc11373fb78745bb91","unresolved":false,"context_lines":[{"line_number":187,"context_line":" -------------------------------------------"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Boolean flag field addition to the existing table \u0027test\u0027:::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":" -------------------------------------------"},{"line_number":193,"context_line":" |               test                      |"},{"line_number":194,"context_line":" -------------------------------------------"},{"line_number":195,"context_line":" | has_subunit    |  TinyInt               |"},{"line_number":196,"context_line":" -------------------------------------------"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_f4c1d6e5","line":196,"range":{"start_line":190,"start_character":0,"end_line":196,"end_character":44},"updated":"2017-09-26 18:00:03.000000000","message":"I\u0027m torn on if this is actually necessary, since we can just do a query against the metadata for existence.","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":187,"context_line":" -------------------------------------------"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Boolean flag field addition to the existing table \u0027test\u0027:::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":" -------------------------------------------"},{"line_number":193,"context_line":" |               test                      |"},{"line_number":194,"context_line":" -------------------------------------------"},{"line_number":195,"context_line":" | has_subunit    |  TinyInt               |"},{"line_number":196,"context_line":" -------------------------------------------"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_ca523135","line":196,"range":{"start_line":190,"start_character":0,"end_line":196,"end_character":44},"in_reply_to":"7f515b1d_f4c1d6e5","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":232,"context_line":"  .. parsed-literal::"},{"line_number":233,"context_line":"    {"},{"line_number":234,"context_line":"        {"},{"line_number":235,"context_line":"            \u0027subunit_data\u0027: \u0027string containing the absolute path of a"},{"line_number":236,"context_line":"                             refstack-client-generated subunit file\u0027"},{"line_number":237,"context_line":"            }"},{"line_number":238,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_aa3935a4","line":235,"range":{"start_line":235,"start_character":13,"end_line":235,"end_character":25},"updated":"2017-10-03 19:34:59.000000000","message":"I would change the attribute name from subunit_data to subunit_file.","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"da162611c898d7a1368ea5cc11373fb78745bb91","unresolved":false,"context_lines":[{"line_number":232,"context_line":"  .. parsed-literal::"},{"line_number":233,"context_line":"    {"},{"line_number":234,"context_line":"        {"},{"line_number":235,"context_line":"            \u0027subunit_data\u0027: \u0027string containing the absolute path of a"},{"line_number":236,"context_line":"                             refstack-client-generated subunit file\u0027"},{"line_number":237,"context_line":"            }"},{"line_number":238,"context_line":"        }"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_8f6a8bb0","line":236,"range":{"start_line":235,"start_character":0,"end_line":236,"end_character":68},"updated":"2017-09-26 18:00:03.000000000","message":"shouldn\u0027t this be the data as a blob to upload?","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":232,"context_line":"  .. parsed-literal::"},{"line_number":233,"context_line":"    {"},{"line_number":234,"context_line":"        {"},{"line_number":235,"context_line":"            \u0027subunit_data\u0027: \u0027string containing the absolute path of a"},{"line_number":236,"context_line":"                             refstack-client-generated subunit file\u0027"},{"line_number":237,"context_line":"            }"},{"line_number":238,"context_line":"        }"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_0a2289b9","line":236,"range":{"start_line":235,"start_character":0,"end_line":236,"end_character":68},"in_reply_to":"7f515b1d_8f6a8bb0","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":232,"context_line":"  .. parsed-literal::"},{"line_number":233,"context_line":"    {"},{"line_number":234,"context_line":"        {"},{"line_number":235,"context_line":"            \u0027subunit_data\u0027: \u0027string containing the absolute path of a"},{"line_number":236,"context_line":"                             refstack-client-generated subunit file\u0027"},{"line_number":237,"context_line":"            }"},{"line_number":238,"context_line":"        }"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_8a6559b7","line":236,"range":{"start_line":235,"start_character":0,"end_line":236,"end_character":68},"in_reply_to":"7f515b1d_8f6a8bb0","updated":"2017-10-03 19:34:59.000000000","message":"I don\u0027t think so Chris.\nI think the flow is that API should support the upload of a subunit file.\nIn the backend, when the file is received, content should be read and steam passed to subunit2sql (input - subunit stream)... then subunit2sql will extract the test data from the stream and populate the DB tables (save data by creating records on the different tables of the DB)\n\nIs my assumption of the flow correct?\nIf not, would you mind to elaborate ;-)","commit_id":"3e6479a75a5fba89ebbe8149597f468d183e78e2"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"**Add new API functionality to the RefStack v1 API**"},{"line_number":30,"context_line":"  * Upload a subunit file- nonadmin capability"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * Link a subunit file to a corresponding existing test result-"},{"line_number":33,"context_line":"    nonadmin capability"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  * Delete a subunit file- admin capability"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_8093ea00","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":23},"updated":"2017-10-03 19:34:59.000000000","message":"Are we actually saving the subunit file?\nI thought api was going to receive the subunit file but instead of saving it \"as-is\". File was going to be processed with subunit2sql which will save the result into the DB(i.e parse stream and populate DB).","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"**Add new API functionality to the RefStack v1 API**"},{"line_number":30,"context_line":"  * Upload a subunit file- nonadmin capability"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * Link a subunit file to a corresponding existing test result-"},{"line_number":33,"context_line":"    nonadmin capability"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  * Delete a subunit file- admin capability"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_4bbee7d4","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":23},"in_reply_to":"7f515b1d_8093ea00","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"d21877b4ee3999fafe393822b7862748014d79e2","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  * Link a subunit file to a corresponding existing test result-"},{"line_number":33,"context_line":"    nonadmin capability"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  * Delete a subunit file- admin capability"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  * List all subunit data uuids- admin capability"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_7a2c214a","line":35,"range":{"start_line":35,"start_character":27,"end_line":35,"end_character":41},"updated":"2017-10-03 16:02:27.000000000","message":"what is the reason for admin only capability?  Should the owner of the file be able to delete it if it is not marked as used for verification?","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"d21877b4ee3999fafe393822b7862748014d79e2","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  * Delete a subunit file- admin capability"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  * List all subunit data uuids- admin capability"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  * List all subunit files- admin capability"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_9a16bdf1","line":37,"range":{"start_line":37,"start_character":33,"end_line":37,"end_character":49},"updated":"2017-10-03 16:02:27.000000000","message":"Same here.  Owners should be able to list their own uploaded files.","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  * Show id of the corresponding subunit data entry- admin capability"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  * Show link to logs associated with a given result id- admin capability"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  * Check if there is subunit data associated with a given result-"},{"line_number":56,"context_line":"    nonadmin capability"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_bbaa9b6e","line":53,"range":{"start_line":53,"start_character":17,"end_line":53,"end_character":21},"updated":"2017-10-03 19:34:59.000000000","message":"logs? Is this the test result output?","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  * Show id of the corresponding subunit data entry- admin capability"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  * Show link to logs associated with a given result id- admin capability"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  * Check if there is subunit data associated with a given result-"},{"line_number":56,"context_line":"    nonadmin capability"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_e5f262e3","line":53,"range":{"start_line":53,"start_character":17,"end_line":53,"end_character":21},"in_reply_to":"7f515b1d_bbaa9b6e","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Because of the size and scope of these changes, they will likely be most"},{"line_number":70,"context_line":"effectively implemented as 3 patches, with the following scopes:"},{"line_number":71,"context_line":"  * The addition of a subunit data upload and management API"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * result table field addition and API additions which consume that data:"},{"line_number":74,"context_line":"    * List all test results with attached subunit data (admin)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_1bcf6fb1","line":71,"range":{"start_line":71,"start_character":22,"end_line":71,"end_character":42},"updated":"2017-10-03 19:34:59.000000000","message":"Is this subunit file upload or the file content (stream/ subunit data)?","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Because of the size and scope of these changes, they will likely be most"},{"line_number":70,"context_line":"effectively implemented as 3 patches, with the following scopes:"},{"line_number":71,"context_line":"  * The addition of a subunit data upload and management API"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * result table field addition and API additions which consume that data:"},{"line_number":74,"context_line":"    * List all test results with attached subunit data (admin)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_a5fc6ab5","line":71,"range":{"start_line":71,"start_character":22,"end_line":71,"end_character":42},"in_reply_to":"7f515b1d_1bcf6fb1","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":70,"context_line":"effectively implemented as 3 patches, with the following scopes:"},{"line_number":71,"context_line":"  * The addition of a subunit data upload and management API"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * result table field addition and API additions which consume that data:"},{"line_number":74,"context_line":"    * List all test results with attached subunit data (admin)"},{"line_number":75,"context_line":"    * Check if there is subunit data associated with a given result (nonadmin)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_fb7b7326","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":31},"updated":"2017-10-03 19:34:59.000000000","message":"Is result table being modified? or the link will be in the metadata?","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"effectively implemented as 3 patches, with the following scopes:"},{"line_number":71,"context_line":"  * The addition of a subunit data upload and management API"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * result table field addition and API additions which consume that data:"},{"line_number":74,"context_line":"    * List all test results with attached subunit data (admin)"},{"line_number":75,"context_line":"    * Check if there is subunit data associated with a given result (nonadmin)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_852dee47","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":31},"in_reply_to":"7f515b1d_fb7b7326","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"This API will interface with subunit2sql, which will add several tables into"},{"line_number":101,"context_line":"the RefStack database. Though these have been laid out already in the general"},{"line_number":102,"context_line":"subunit data import spec, for the sake of the sake of thoroughness, here they"},{"line_number":103,"context_line":"are again:::"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":" --------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_4d3f6a87","line":102,"range":{"start_line":102,"start_character":42,"end_line":102,"end_character":53},"updated":"2017-10-03 19:34:59.000000000","message":"small typo","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"This API will interface with subunit2sql, which will add several tables into"},{"line_number":101,"context_line":"the RefStack database. Though these have been laid out already in the general"},{"line_number":102,"context_line":"subunit data import spec, for the sake of the sake of thoroughness, here they"},{"line_number":103,"context_line":"are again:::"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":" --------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_eb7c7321","line":102,"range":{"start_line":102,"start_character":42,"end_line":102,"end_character":53},"in_reply_to":"7f515b1d_4d3f6a87","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  This capability will be used to upload the subunit file of a test result"},{"line_number":194,"context_line":"  that is not already in the database. It will do so (if synchronous"},{"line_number":195,"context_line":"  processing proves a viable option) by using the subunit data to generate"},{"line_number":196,"context_line":"  the corresponding test result, and then inserting both into the database."},{"line_number":197,"context_line":"  Uploading a subunit file will not require admin privileges."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Method Type: POST"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_9b711f10","line":196,"range":{"start_line":196,"start_character":42,"end_line":196,"end_character":56},"updated":"2017-10-03 19:34:59.000000000","message":"Does it means, API will insert the subunit data (Processed with subunit2sql). And the subunit file?\nIf so, why save both? I think it is enough to save the subunit data into the DB (using subunit2sql tool as-is).\nNotice that if needed, \"sql2subunit $RUN_ID\" can reconstruct the subunit stream from the DB records.","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  This capability will be used to upload the subunit file of a test result"},{"line_number":194,"context_line":"  that is not already in the database. It will do so (if synchronous"},{"line_number":195,"context_line":"  processing proves a viable option) by using the subunit data to generate"},{"line_number":196,"context_line":"  the corresponding test result, and then inserting both into the database."},{"line_number":197,"context_line":"  Uploading a subunit file will not require admin privileges."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Method Type: POST"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_772d01fc","line":196,"range":{"start_line":196,"start_character":42,"end_line":196,"end_character":56},"in_reply_to":"7f515b1d_9b711f10","updated":"2017-10-14 03:30:26.000000000","message":"Both, in this context, means both the subunit data and the test result generated from that.","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* Description:"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"  This will allow for the linking of a newly added upload file to"},{"line_number":237,"context_line":"  a test result already existing in the database. It will do so by"},{"line_number":238,"context_line":"  using the subunit data to generate a corresponding test result,"},{"line_number":239,"context_line":"  and then comparing that to the passed in test result. If the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_cd747a01","line":236,"range":{"start_line":236,"start_character":39,"end_line":236,"end_character":62},"updated":"2017-10-03 19:34:59.000000000","message":"change to \"newly uploaded file\"","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* Description:"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"  This will allow for the linking of a newly added upload file to"},{"line_number":237,"context_line":"  a test result already existing in the database. It will do so by"},{"line_number":238,"context_line":"  using the subunit data to generate a corresponding test result,"},{"line_number":239,"context_line":"  and then comparing that to the passed in test result. If the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_57d0c5c9","line":236,"range":{"start_line":236,"start_character":39,"end_line":236,"end_character":62},"in_reply_to":"7f515b1d_cd747a01","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":236,"context_line":"  This will allow for the linking of a newly added upload file to"},{"line_number":237,"context_line":"  a test result already existing in the database. It will do so by"},{"line_number":238,"context_line":"  using the subunit data to generate a corresponding test result,"},{"line_number":239,"context_line":"  and then comparing that to the passed in test result. If the"},{"line_number":240,"context_line":"  generated result and the stored result correspond to one another,"},{"line_number":241,"context_line":"  it should insert the subunit data into the database and link the two"},{"line_number":242,"context_line":"  entries via a key value pair in RefStack\u0027s data model. Because the"},{"line_number":243,"context_line":"  validity of the link is easily verifiable, this action will not be"},{"line_number":244,"context_line":"  one that requires admin privileges."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_ed7176e0","line":241,"range":{"start_line":239,"start_character":56,"end_line":241,"end_character":53},"updated":"2017-10-03 19:34:59.000000000","message":"If the file was already uploaded, that means the DB was already populated via subunit2sql, right? \nThen the missing step would be to link the existing test result record with the run_id from the saved subunit data.","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"  This will allow for the linking of a newly added upload file to"},{"line_number":237,"context_line":"  a test result already existing in the database. It will do so by"},{"line_number":238,"context_line":"  using the subunit data to generate a corresponding test result,"},{"line_number":239,"context_line":"  and then comparing that to the passed in test result. If the"},{"line_number":240,"context_line":"  generated result and the stored result correspond to one another,"},{"line_number":241,"context_line":"  it should insert the subunit data into the database and link the two"},{"line_number":242,"context_line":"  entries via a key value pair in RefStack\u0027s data model. Because the"},{"line_number":243,"context_line":"  validity of the link is easily verifiable, this action will not be"},{"line_number":244,"context_line":"  one that requires admin privileges."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_b7013909","line":241,"range":{"start_line":239,"start_character":56,"end_line":241,"end_character":53},"in_reply_to":"7f515b1d_ed7176e0","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":239,"context_line":"  and then comparing that to the passed in test result. If the"},{"line_number":240,"context_line":"  generated result and the stored result correspond to one another,"},{"line_number":241,"context_line":"  it should insert the subunit data into the database and link the two"},{"line_number":242,"context_line":"  entries via a key value pair in RefStack\u0027s data model. Because the"},{"line_number":243,"context_line":"  validity of the link is easily verifiable, this action will not be"},{"line_number":244,"context_line":"  one that requires admin privileges."},{"line_number":245,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_cd7ebaae","line":242,"range":{"start_line":242,"start_character":16,"end_line":242,"end_character":56},"updated":"2017-10-03 19:34:59.000000000","message":"which table? which table fields will be used for the link?","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":239,"context_line":"  and then comparing that to the passed in test result. If the"},{"line_number":240,"context_line":"  generated result and the stored result correspond to one another,"},{"line_number":241,"context_line":"  it should insert the subunit data into the database and link the two"},{"line_number":242,"context_line":"  entries via a key value pair in RefStack\u0027s data model. Because the"},{"line_number":243,"context_line":"  validity of the link is easily verifiable, this action will not be"},{"line_number":244,"context_line":"  one that requires admin privileges."},{"line_number":245,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_b7537939","line":242,"range":{"start_line":242,"start_character":16,"end_line":242,"end_character":56},"in_reply_to":"7f515b1d_cd7ebaae","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"c24c4e248352845292b23faabd36bcedd7b534d2","unresolved":false,"context_lines":[{"line_number":689,"context_line":"* Description"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"  This utility will list all test results with attached subunit data by"},{"line_number":692,"context_line":"  grabbing it from "},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"* Method Type: GET"},{"line_number":695,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_6d1d8672","line":692,"range":{"start_line":692,"start_character":18,"end_line":692,"end_character":19},"updated":"2017-10-03 19:34:59.000000000","message":"remove extra step","commit_id":"9e054cc1533ae47337f77b2338bed45aa61e5b3b"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  * List all subunit data- admin capability"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  * View a specific subunit data- admin capability"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  * View a link to a set of attached files, if they exist- admin capability"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_9c09d996","line":41,"range":{"start_line":41,"start_character":33,"end_line":41,"end_character":39},"updated":"2017-10-11 23:38:34.000000000","message":"should it be available also for the owner of the file(the user who upload the file even if not a refstack admin)?","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  * List all subunit data- admin capability"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  * View a specific subunit data- admin capability"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  * View a link to a set of attached files, if they exist- admin capability"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_08531a41","line":41,"range":{"start_line":41,"start_character":33,"end_line":41,"end_character":39},"in_reply_to":"5f4e5783_9c09d996","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  * View a specific subunit data- admin capability"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  * View a link to a set of attached files, if they exist- admin capability"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * View id of the corresponding test result- admin capability"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_7c0e1d8e","line":43,"range":{"start_line":43,"start_character":2,"end_line":43,"end_character":75},"updated":"2017-10-11 23:38:34.000000000","message":"I didn\u0027t understand what is the action for this bullet.\nIf it refers to additional files that can be collected aside of subunit data, how are those files saved in the first place? via upload subunit data api?\n\nI know these might come from subunit2sql table (which original intention was to collect gate logs and other files in addition to the subunit result files)... but how is refstack collecting this data? does refstack need this capability? are you enabling it for future use cases?\nPlease reword and/or elaborate.","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  * View a specific subunit data- admin capability"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  * View a link to a set of attached files, if they exist- admin capability"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * View id of the corresponding test result- admin capability"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_e948bf87","line":43,"range":{"start_line":43,"start_character":2,"end_line":43,"end_character":75},"in_reply_to":"5f4e5783_7c0e1d8e","updated":"2017-10-14 03:30:26.000000000","message":"I have detailed the use case for this capability lower down in the spec, It really wasn\u0027t something I\u0027d elaborated much on in the current version, as sometimes I forget reviewers don\u0027t necessary have the same context that I have. It is, briefly, generated by subunit2sql, and can be really handy for use in debugging","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":61,"context_line":"This is because, as per the spec defining the changes needed to upload and"},{"line_number":62,"context_line":"utilize subunit data, the current plan is to link the two entries via the"},{"line_number":63,"context_line":"metadata table. This, actually, is the reason for adding a field and function"},{"line_number":64,"context_line":"that tracks whether subunit data exists for a given result: though a nonadmin"},{"line_number":65,"context_line":"user should not be able to view the subunit entry itself, they may need to"},{"line_number":66,"context_line":"know, for the sake of verifying upload success and updating test results,"},{"line_number":67,"context_line":"whether they have already uploaded the associated file."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_e73036eb","line":65,"range":{"start_line":64,"start_character":60,"end_line":65,"end_character":57},"updated":"2017-10-11 23:38:34.000000000","message":"I think the owner of the file (user whom upload the file/ test results) should be able to retrieve the data too. Others opinions?","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"This is because, as per the spec defining the changes needed to upload and"},{"line_number":62,"context_line":"utilize subunit data, the current plan is to link the two entries via the"},{"line_number":63,"context_line":"metadata table. This, actually, is the reason for adding a field and function"},{"line_number":64,"context_line":"that tracks whether subunit data exists for a given result: though a nonadmin"},{"line_number":65,"context_line":"user should not be able to view the subunit entry itself, they may need to"},{"line_number":66,"context_line":"know, for the sake of verifying upload success and updating test results,"},{"line_number":67,"context_line":"whether they have already uploaded the associated file."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_4330d5e8","line":65,"range":{"start_line":64,"start_character":60,"end_line":65,"end_character":57},"in_reply_to":"5f4e5783_e73036eb","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":268,"context_line":"  | result_id     | URI   | csapi:UUID   | test result ID to link to         |"},{"line_number":269,"context_line":"  +---------------+-------+--------------+-----------------------------------+"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"* JSON schema definition for the body data:"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"  .. parsed-literal::"},{"line_number":274,"context_line":"    {"},{"line_number":275,"context_line":"      \u0027subunit-data:\u0027: {"},{"line_number":276,"context_line":"        \u0027run_at\u0027: 2017-08-16 18:34:58.367221Z"},{"line_number":277,"context_line":"        \u0027uuid\u0027: \u00274d7950cb-586e-407e-9acf-5b169825af98\u0027,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_5689fdc7","line":274,"range":{"start_line":271,"start_character":2,"end_line":274,"end_character":5},"updated":"2017-10-11 23:38:34.000000000","message":"End users have a subunit file, and there is no subunit2json filter.\nI think API should receive the data_blob as in ** upload subunit data ** and handle the data transformation and processing as needed.","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":268,"context_line":"  | result_id     | URI   | csapi:UUID   | test result ID to link to         |"},{"line_number":269,"context_line":"  +---------------+-------+--------------+-----------------------------------+"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"* JSON schema definition for the body data:"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"  .. parsed-literal::"},{"line_number":274,"context_line":"    {"},{"line_number":275,"context_line":"      \u0027subunit-data:\u0027: {"},{"line_number":276,"context_line":"        \u0027run_at\u0027: 2017-08-16 18:34:58.367221Z"},{"line_number":277,"context_line":"        \u0027uuid\u0027: \u00274d7950cb-586e-407e-9acf-5b169825af98\u0027,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_a36b09b5","line":274,"range":{"start_line":271,"start_character":2,"end_line":274,"end_character":5},"in_reply_to":"5f4e5783_5689fdc7","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":608,"context_line":""},{"line_number":609,"context_line":"* Description"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"  This utility will return the link to a set of logs (if they have"},{"line_number":612,"context_line":"  been recorded in the database), given a specific subunit id."},{"line_number":613,"context_line":"  This will be an admin-only capability."},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"* Method Type: GET"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_6ae76614","line":612,"range":{"start_line":611,"start_character":53,"end_line":612,"end_character":33},"updated":"2017-10-11 23:38:34.000000000","message":"how artifacts are recorded in refstack? Does refstack need these links? what is the use case?","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":608,"context_line":""},{"line_number":609,"context_line":"* Description"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"  This utility will return the link to a set of logs (if they have"},{"line_number":612,"context_line":"  been recorded in the database), given a specific subunit id."},{"line_number":613,"context_line":"  This will be an admin-only capability."},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"* Method Type: GET"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_c35cc5ee","line":612,"range":{"start_line":611,"start_character":53,"end_line":612,"end_character":33},"in_reply_to":"5f4e5783_6ae76614","updated":"2017-10-14 03:30:26.000000000","message":"This would call upon a field that is automatically built in via subunit2sql. being able to grab the link would be pretty useful, if someone debugging their instance were to want to provide a quick link to the logs for help with the debugging process","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":757,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":758,"context_line":"  | Parameter     | Style   | Type           | Description                       |"},{"line_number":759,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":760,"context_line":"  | token         | query   | xsd:string     | token to use in authentication    |"},{"line_number":761,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"* JSON schema definition for the body data: N/A"},{"line_number":764,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_8a8622db","line":761,"range":{"start_line":760,"start_character":3,"end_line":761,"end_character":82},"updated":"2017-10-11 23:38:34.000000000","message":"Should this receive also a given test result id?","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":757,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":758,"context_line":"  | Parameter     | Style   | Type           | Description                       |"},{"line_number":759,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":760,"context_line":"  | token         | query   | xsd:string     | token to use in authentication    |"},{"line_number":761,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"* JSON schema definition for the body data: N/A"},{"line_number":764,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_2330399f","line":761,"range":{"start_line":760,"start_character":3,"end_line":761,"end_character":82},"in_reply_to":"5f4e5783_8a8622db","updated":"2017-10-14 03:30:26.000000000","message":"good catch, thank you","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":769,"context_line":"        \u0027uuid\u0027: \u00274d7950cb-586e-407e-9acf-5b169825af98\u0027,"},{"line_number":770,"context_line":"    }"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"**Show link to logs associated with a given result id**"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"* Description"},{"line_number":775,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_eac7d611","line":772,"range":{"start_line":772,"start_character":0,"end_line":772,"end_character":55},"updated":"2017-10-11 23:38:34.000000000","message":"This needs clarification about how are the logs/ artifact links saved in the first time. And if there is a valid use case for refstack.","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":769,"context_line":"        \u0027uuid\u0027: \u00274d7950cb-586e-407e-9acf-5b169825af98\u0027,"},{"line_number":770,"context_line":"    }"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"**Show link to logs associated with a given result id**"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"* Description"},{"line_number":775,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_03389dec","line":772,"range":{"start_line":772,"start_character":0,"end_line":772,"end_character":55},"in_reply_to":"5f4e5783_eac7d611","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":819,"context_line":"  the appropriate test result. This will be done by using the supplied id to"},{"line_number":820,"context_line":"  check for a subunit-result link in the meta table. If a subunit-result pair"},{"line_number":821,"context_line":"  comprised of that id exists in the meta table, it will return that same id;"},{"line_number":822,"context_line":"  otherwise, it will return an empty dict. "},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"* Method Type: GET"},{"line_number":825,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_4ad6eac5","line":822,"range":{"start_line":822,"start_character":42,"end_line":822,"end_character":43},"updated":"2017-10-11 23:38:34.000000000","message":"remove space","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":819,"context_line":"  the appropriate test result. This will be done by using the supplied id to"},{"line_number":820,"context_line":"  check for a subunit-result link in the meta table. If a subunit-result pair"},{"line_number":821,"context_line":"  comprised of that id exists in the meta table, it will return that same id;"},{"line_number":822,"context_line":"  otherwise, it will return an empty dict. "},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"* Method Type: GET"},{"line_number":825,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_c33de5dd","line":822,"range":{"start_line":822,"start_character":42,"end_line":822,"end_character":43},"in_reply_to":"5f4e5783_4ad6eac5","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"423ff46e9380271f81efaeef263755aeeb51ee64","unresolved":false,"context_lines":[{"line_number":908,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":909,"context_line":""},{"line_number":910,"context_line":"* subunit2sql and its dependencies will need to be installed"},{"line_number":911,"context_line":"  during refstack server setup."},{"line_number":912,"context_line":""},{"line_number":913,"context_line":""},{"line_number":914,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_e5ff09ff","line":911,"range":{"start_line":911,"start_character":9,"end_line":911,"end_character":30},"updated":"2017-10-11 23:38:34.000000000","message":"does puppet-refstack need changes?","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"85f56813d6a8e82a207e9f0519ea82770e5c637f","unresolved":false,"context_lines":[{"line_number":908,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":909,"context_line":""},{"line_number":910,"context_line":"* subunit2sql and its dependencies will need to be installed"},{"line_number":911,"context_line":"  during refstack server setup."},{"line_number":912,"context_line":""},{"line_number":913,"context_line":""},{"line_number":914,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_e9ec3f90","line":911,"range":{"start_line":911,"start_character":9,"end_line":911,"end_character":30},"in_reply_to":"5f4e5783_e5ff09ff","updated":"2017-10-14 03:30:26.000000000","message":"Done","commit_id":"5db58db811c0e7f87f00ef702e5aff35897c134f"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":66,"context_line":"results, whether they have already uploaded the associated file."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Because of the size and scope of these changes, they will likely be most"},{"line_number":69,"context_line":"effectively implemented as 3 patches, with the following scopes:"},{"line_number":70,"context_line":"  * The addition of subunit data upload and management API"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * result table field addition and API additions which consume that data:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_e0366451","line":69,"updated":"2017-10-17 08:33:38.000000000","message":"Newline here before the list.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    {"},{"line_number":218,"context_line":"        {"},{"line_number":219,"context_line":"            \u0027subunit_data\u0027: \u003csubunit data blob\u003e"},{"line_number":220,"context_line":"            }"},{"line_number":221,"context_line":"        }"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* JSON schema definition for the response data:"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_69093894","line":221,"range":{"start_line":220,"start_character":0,"end_line":221,"end_character":9},"updated":"2017-10-17 08:33:38.000000000","message":"Indentation of closing brackets is off here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* JSON schema definition for the response data:"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"  .. parse-literal::"},{"line_number":226,"context_line":"    {"},{"line_number":227,"context_line":"        \u0027subunit-uuid\u0027: \u0027subunit2sql-defined run id\u0027,"},{"line_number":228,"context_line":"        \u0027result-id\u0027: \u0027result id\u0027"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_a0250c0b","line":225,"range":{"start_line":225,"start_character":5,"end_line":225,"end_character":10},"updated":"2017-10-17 08:33:38.000000000","message":"s/parse/parsed/","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"* JSON schema definition for the response data:"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"  .. parse-literal::"},{"line_number":279,"context_line":"    {"},{"line_number":280,"context_line":"      \u0027uuid\u0027: \u0027subunit2sql-defined run id\u0027,"},{"line_number":281,"context_line":"      \u0027id\u0027: \u0027refstack test result id\u0027"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_407c18eb","line":278,"range":{"start_line":278,"start_character":5,"end_line":278,"end_character":10},"updated":"2017-10-17 08:33:38.000000000","message":"s/parse/parsed/","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":311,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":312,"context_line":"  | id            | URI   | csapi:UUID   | ID to be removed.                 |"},{"line_number":313,"context_line":"  +---------------+-------+--------------+-----------------------------------+"},{"line_number":314,"context_line":"  | token         | query | xsd:string   | token to use for authentication   |"},{"line_number":315,"context_line":"  +---------------+-------+--------------+-----------------------------------+"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"* JSON schema definition for the body data: N/A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_868b4366","line":314,"range":{"start_line":314,"start_character":4,"end_line":314,"end_character":75},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t have to mention tokens here as that is something specified in the header and not as a request parameter.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":368,"context_line":"  uploaded into the RefStack database. This action will be available"},{"line_number":369,"context_line":"  to vendor and Foundation admins only."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"* Method type: GET"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"* URI: v1/subunit/"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"* Normal Response Codes:"},{"line_number":376,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_09f524ed","line":373,"range":{"start_line":371,"start_character":0,"end_line":373,"end_character":18},"updated":"2017-10-17 08:33:38.000000000","message":"This endpoint doesn\u0027t seem to be different from the one above. Will probably need to add a request parameter to make api return something more verbose. Though we probably don\u0027t want to be returning all subunit data like this seems to be doing as that response size will inevitably grow quite large.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":387,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":388,"context_line":"  | Parameter     | Style   | Type           | Description                       |"},{"line_number":389,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":390,"context_line":"  | token         | query   | xsd:string     | token to use in authentication    |"},{"line_number":391,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"* JSON schema definition for the body data: N/A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_66ecc729","line":390,"range":{"start_line":390,"start_character":4,"end_line":390,"end_character":77},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t need token here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":484,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":485,"context_line":"  | id            | URI     | csapi:UUID     | ID to retrieve data               |"},{"line_number":486,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":487,"context_line":"  | token         | query   | xsd:string     | token to use in authentication    |"},{"line_number":488,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"* JSON schema definition for the body data: N/A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_46ef8b1d","line":487,"range":{"start_line":487,"start_character":4,"end_line":487,"end_character":77},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t need token here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":549,"context_line":"    }"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"**View a link to a set of logs**"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"* Description"},{"line_number":555,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_668de730","line":552,"range":{"start_line":552,"start_character":0,"end_line":552,"end_character":32},"updated":"2017-10-17 08:33:38.000000000","message":"Is this the same as the endpoint described on line 719?","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":559,"context_line":""},{"line_number":560,"context_line":"* Method Type: GET"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"* URI: /v1/subunit-data/{id}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"* Normal Response Codes:"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_86710347","line":562,"range":{"start_line":562,"start_character":7,"end_line":562,"end_character":27},"updated":"2017-10-17 08:33:38.000000000","message":"Not sure if we need a whole new endpoint for this. Maybe keep the subunit endpoint then use something like\n/v1/subunit/{id}/logs","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":579,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":580,"context_line":"  | uuid          | URI      | csapi:UUID     | id of subunit entry to search for  |"},{"line_number":581,"context_line":"  +---------------+----------+----------------+------------------------------------+"},{"line_number":582,"context_line":"  | token         | query    | xsd:string     | token to use in authentication     |"},{"line_number":583,"context_line":"  +---------------+----------+----------------+------------------------------------+"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"* JSON schema definition for the body data: N/A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_06f513ed","line":582,"range":{"start_line":582,"start_character":4,"end_line":582,"end_character":78},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t need token here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":601,"context_line":""},{"line_number":602,"context_line":"* Method Type: GET"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"* URI: /v1/meta"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"* Normal Response Codes:"},{"line_number":607,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_a9ef30e7","line":604,"range":{"start_line":604,"start_character":7,"end_line":604,"end_character":15},"updated":"2017-10-17 08:33:38.000000000","message":"Not a big fan of making a new \u0027meta\u0027 endpoint for this stuff. Perhaps something like v1/subunit/{id}/(test or result) would be better. Not sure how often this endpoint would be used as users will be mainly interacting the the results id which will have the connection to the subunit id.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":621,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":622,"context_line":"  | uuid          | URI     | csapi:UUID     | id of subunit entry to search for  |"},{"line_number":623,"context_line":"  +---------------+---------+----------------+------------------------------------+"},{"line_number":624,"context_line":"  | token         | query   | xsd:string     | token to use in authentication     |"},{"line_number":625,"context_line":"  +---------------+---------+----------------+------------------------------------+"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"* JSON schema definition for the body data: N/A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_c6da5b76","line":624,"range":{"start_line":624,"start_character":4,"end_line":624,"end_character":77},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t need token here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":629,"context_line":"* JSON schema definition for the response data:"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"  .. parsed-literal::"},{"line_number":632,"context_line":"  {"},{"line_number":633,"context_line":"    \u0027result-id\u0027: \u0027dc18ac71-d662-4efd-8f22-5b9a2fc2236d\u0027,"},{"line_number":634,"context_line":"  }"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"**List all test results with attached subunit data**"},{"line_number":637,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_c06fe828","line":634,"range":{"start_line":632,"start_character":2,"end_line":634,"end_character":3},"updated":"2017-10-17 08:33:38.000000000","message":"Getting parse errors. Indent this block two more spaces.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"* Method Type: GET"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"* URI: v1/meta"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"* Normal Response Codes:"},{"line_number":649,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_6634c7fc","line":646,"range":{"start_line":646,"start_character":7,"end_line":646,"end_character":14},"updated":"2017-10-17 08:33:38.000000000","message":"perhaps this should be an extension of the /v1/results endpoint request parameters like ?subunit\u003d1\n\nThough this will paginate the results (which may or may not be desirable).","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":660,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":661,"context_line":"  | Parameter     | Style   | Type           | Description                       |"},{"line_number":662,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":663,"context_line":"  | token         | query   | xsd:string     | token to use in authentication    |"},{"line_number":664,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"* JSON schema definition for the body data: N/A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_a6c4ff40","line":663,"range":{"start_line":663,"start_character":4,"end_line":663,"end_character":77},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t need token here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":668,"context_line":"* JSON schema definition for the response data:"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"  .. parsed-literal::"},{"line_number":671,"context_line":"  {"},{"line_number":672,"context_line":"    \u0027result\u0027 : {"},{"line_number":673,"context_line":"      \u0027id\u0027: \u0027046b8763-84c5-49ea-bddd-5ba03f10503e\u0027,"},{"line_number":674,"context_line":"      \u0027created_at\u0027: \u0027046b8763-84c5-49ea-bddd-5ba03f10503e\u0027,"},{"line_number":675,"context_line":"    },"},{"line_number":676,"context_line":"    ......"},{"line_number":677,"context_line":"  }"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"**Show id of subunit data entry corresponding with a given test result**"},{"line_number":680,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_807570fc","line":677,"range":{"start_line":671,"start_character":2,"end_line":677,"end_character":3},"updated":"2017-10-17 08:33:38.000000000","message":"Indent this block two more spaces.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"* Method Type: GET"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"* URI: /v1/meta"},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"* Normal Response Codes:"},{"line_number":691,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_09a7640d","line":688,"range":{"start_line":688,"start_character":7,"end_line":688,"end_character":15},"updated":"2017-10-17 08:33:38.000000000","message":"Since we are using the meta table, perhaps we can just use the /v1/results/\u003ctest id\u003e/meta endpoint to get whatever the key is. e.g. /v1/results/\u003ctest id\u003e/meta/subunit_id\n\nThis returns null if there is the given key does not exist.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":702,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":703,"context_line":"  | Parameter     | Style   | Type           | Description                       |"},{"line_number":704,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":705,"context_line":"  | token         | query   | xsd:string     | token to use in authentication    |"},{"line_number":706,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":707,"context_line":"  | id            | URI     | csapi:UUID     | ID to retrieve data               |"},{"line_number":708,"context_line":"  +---------------+---------+----------------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_86bfc3a8","line":705,"range":{"start_line":705,"start_character":4,"end_line":705,"end_character":79},"updated":"2017-10-17 08:33:38.000000000","message":"Don\u0027t need token here.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":761,"context_line":"      \u0027artifacts\u0027: \u0027http://example-logs.log\u0027,"},{"line_number":762,"context_line":"    }"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"**Check if there is subunit data associated with a given result**"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"* Description"},{"line_number":767,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_099be465","line":764,"range":{"start_line":764,"start_character":0,"end_line":764,"end_character":65},"updated":"2017-10-17 08:33:38.000000000","message":"Isn\u0027t this essentially the same as the endpoint described on line 679?","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"cd3008c6c74c8151dc89d94459644d4552067c13","unresolved":false,"context_lines":[{"line_number":863,"context_line":""},{"line_number":864,"context_line":"* subunit2sql and its dependencies will need to be installed"},{"line_number":865,"context_line":"  during refstack server setup. As a result, puppet-refstack may"},{"line_number":866,"context_line":" need some adjustments."},{"line_number":867,"context_line":""},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f4e5783_2068fc1a","line":866,"range":{"start_line":866,"start_character":0,"end_line":866,"end_character":1},"updated":"2017-10-17 08:33:38.000000000","message":"indent this one more space.","commit_id":"ac75e958dd8abd35c04add250f6366b0549fcde2"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"f453e368b42d864cd8d1995cdd436b7f9ba70749","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"**Add new API functionality to the RefStack v1 API**"},{"line_number":30,"context_line":"  "},{"line_number":31,"context_line":"  * Upload new subunit data- nonadmin capability"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  * Link new subunit data to a corresponding existing test result-"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f4b6375_28c0232a","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":2},"updated":"2017-10-23 21:28:23.000000000","message":"lots of whitespace to clean up :-)","commit_id":"8cb0271df2f15299b2712544f4e1c2c11c4dc494"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"6c138feb37dabe4cb140d8a8249b6d7f61e6d358","unresolved":false,"context_lines":[{"line_number":591,"context_line":""},{"line_number":592,"context_line":"* Method Type: GET"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"* URI: v1/results/{test id}/meta/subunit_id"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"* Normal Response Codes:"},{"line_number":597,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f4b6375_481fdfb6","line":594,"range":{"start_line":594,"start_character":6,"end_line":594,"end_character":43},"updated":"2017-10-23 21:36:52.000000000","message":"This isn\u0027t necessary. If the subunit id is available and the user has the proper credentials, you can return it as an optional field in the response for get v1/results/{test id}","commit_id":"8cb0271df2f15299b2712544f4e1c2c11c4dc494"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"6c138feb37dabe4cb140d8a8249b6d7f61e6d358","unresolved":false,"context_lines":[{"line_number":636,"context_line":""},{"line_number":637,"context_line":"* Method Type: GET"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"* URI: /v1/meta"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"* Normal Response Codes:"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"  * OK (200)"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"* Error Response Codes:"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"  * Bad Request (400)"},{"line_number":648,"context_line":"  * Unauthorized (401)"},{"line_number":649,"context_line":"  * Forbidden (403)"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"* Request Parameters:"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":654,"context_line":"  | Parameter     | Style   | Type           | Description                       |"},{"line_number":655,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":656,"context_line":"  | id            | URI     | csapi:UUID     | ID to retrieve data               |"},{"line_number":657,"context_line":"  +---------------+---------+----------------+-----------------------------------+"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"* JSON schema definition for the body data: N/A"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"* JSON schema definition for the response data:"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"  .. parsed-literal::"},{"line_number":664,"context_line":"    {"},{"line_number":665,"context_line":"        \u0027uuid\u0027: \u00274d7950cb-586e-407e-9acf-5b169825af98\u0027,"},{"line_number":666,"context_line":"    }"},{"line_number":667,"context_line":""},{"line_number":668,"context_line":"**Show link to logs associated with a given subunit data uuid**"},{"line_number":669,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f4b6375_686bbb1d","line":666,"range":{"start_line":639,"start_character":0,"end_line":666,"end_character":5},"updated":"2017-10-23 21:36:52.000000000","message":"agree with Paul\u0027s previous comment.","commit_id":"8cb0271df2f15299b2712544f4e1c2c11c4dc494"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"f453e368b42d864cd8d1995cdd436b7f9ba70749","unresolved":false,"context_lines":[{"line_number":674,"context_line":"  well as to the owner of the subunit data. This functionality should return"},{"line_number":675,"context_line":"  the artifacts related to a particular set of subunit data by taking as an"},{"line_number":676,"context_line":"  argument the uuid of a particular set of subunit data, and returning any"},{"line_number":677,"context_line":"  artifacts related to that dataset. "},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"* Method Type: GET"},{"line_number":680,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f4b6375_0808c78f","line":677,"range":{"start_line":677,"start_character":36,"end_line":677,"end_character":37},"updated":"2017-10-23 21:28:23.000000000","message":"trailing","commit_id":"8cb0271df2f15299b2712544f4e1c2c11c4dc494"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"93168e0420445455c062be1789b6dd004d7e9bfe","unresolved":false,"context_lines":[{"line_number":170,"context_line":"  and the resulting test result into the database.  Uploading subunit data"},{"line_number":171,"context_line":"  will not require admin privileges."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* Method Type: POST"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"* URI: v1/subunit/"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f4b6375_571641aa","line":173,"range":{"start_line":173,"start_character":15,"end_line":173,"end_character":19},"updated":"2017-10-24 16:46:59.000000000","message":"The way the POST and PUT APIs are written today would create duplicates subunit data (because both of them include \" subunit data\u0027: \u003csubunit data blob\u003e \" in the data body).","commit_id":"46347fdcaf76fb3df315b152f29d256cacc62411"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"93168e0420445455c062be1789b6dd004d7e9bfe","unresolved":false,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"* Method type: GET"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* URI: v1/subunit/"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"* Normal Response Codes:"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f4b6375_b72335bd","line":348,"range":{"start_line":348,"start_character":1,"end_line":348,"end_character":18},"updated":"2017-10-24 16:46:59.000000000","message":"v1/subunit/{id}  ?","commit_id":"46347fdcaf76fb3df315b152f29d256cacc62411"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"e86c006d3cf6043f494d63c0cd9c9e84cc6a613d","unresolved":false,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"* Method type: GET"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* URI: v1/subunit/"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"* Normal Response Codes:"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f4b6375_d847014c","line":348,"range":{"start_line":348,"start_character":1,"end_line":348,"end_character":18},"in_reply_to":"3f4b6375_b72335bd","updated":"2017-11-21 06:43:56.000000000","message":"Agree, and remove from the parameter. Should the bare endpoint just return a list of subunit data ids that the user is authenticated to see?","commit_id":"46347fdcaf76fb3df315b152f29d256cacc62411"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"93168e0420445455c062be1789b6dd004d7e9bfe","unresolved":false,"context_lines":[{"line_number":502,"context_line":"  artifacts related to that dataset."},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"* Method Type: GET"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"* URI: /v1/subunit/{id}"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"* Normal Response Codes:"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f4b6375_327d137f","line":506,"range":{"start_line":505,"start_character":0,"end_line":506,"end_character":23},"updated":"2017-10-24 16:46:59.000000000","message":"Duplicate to the URI defined at line 348 ?","commit_id":"46347fdcaf76fb3df315b152f29d256cacc62411"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d70278860cf439cefec0516014c6ee17d243969c","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        }"},{"line_number":382,"context_line":"      ]"},{"line_number":383,"context_line":"    }"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"Security impact"},{"line_number":387,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1f485f77_cf8a8768","line":384,"range":{"start_line":384,"start_character":0,"end_line":384,"end_character":0},"updated":"2017-11-16 20:09:35.000000000","message":"Is refstack v1/results, delete action impacted too? \nI mean when a test result is deleted, the associated subunit data must be deleted too :: \"Subunit data should always have an associated test result\"","commit_id":"10e64ce87a1abdfa1b0b871db44ffa2b60361c5c"}]}
