)]}'
{"tools/update-rs-db.py":[{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"b00f01e57e1297a78c3d5294a606b991d2da82f5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2015 Mirantis, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":12,"id":"df6247ed_69d10558","line":3,"range":{"start_line":3,"start_character":16,"end_line":3,"end_character":34},"updated":"2017-09-19 22:27:40.000000000","message":"You can put 2017 OpenStack Foundation here.","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2015 Mirantis, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf57530f_af313aef","line":3,"range":{"start_line":3,"start_character":16,"end_line":3,"end_character":34},"in_reply_to":"df6247ed_69d10558","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"b00f01e57e1297a78c3d5294a606b991d2da82f5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            print(\"Link check response_status_code\u003d\" +"},{"line_number":80,"context_line":"                  str(response.status_code))"},{"line_number":81,"context_line":"            return Flase"},{"line_number":82,"context_line":"    except requests.exceptions as err:"},{"line_number":83,"context_line":"        print(err)"},{"line_number":84,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":12,"id":"df6247ed_e9ce1582","line":81,"range":{"start_line":81,"start_character":19,"end_line":81,"end_character":24},"updated":"2017-09-19 22:27:40.000000000","message":"Typo here.","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            print(\"Link check response_status_code\u003d\" +"},{"line_number":80,"context_line":"                  str(response.status_code))"},{"line_number":81,"context_line":"            return Flase"},{"line_number":82,"context_line":"    except requests.exceptions as err:"},{"line_number":83,"context_line":"        print(err)"},{"line_number":84,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf57530f_8f9af6c2","line":81,"range":{"start_line":81,"start_character":19,"end_line":81,"end_character":24},"in_reply_to":"df6247ed_e9ce1582","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"b00f01e57e1297a78c3d5294a606b991d2da82f5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            logfile.write(\u00270\\n\u0027)"},{"line_number":136,"context_line":"            return False"},{"line_number":137,"context_line":"        updated \u003d verification_chk(apiLink, header)"},{"line_number":138,"context_line":"        if response.status_code !\u003d 200 and\\"},{"line_number":139,"context_line":"                response.status_code !\u003d 201:"},{"line_number":140,"context_line":"            print(\u0027verification failure status code\u003d\u0027 +"},{"line_number":141,"context_line":"                  str(response.status_code))"},{"line_number":142,"context_line":"            print(\u0027verification failure detail\u003d\u0027 +"}],"source_content_type":"text/x-python","patch_set":12,"id":"df6247ed_29e9cd7f","line":139,"range":{"start_line":138,"start_character":8,"end_line":139,"end_character":44},"updated":"2017-09-19 22:27:40.000000000","message":"this can be shortened to:\n\nif response.status_code not in (200, 201):","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            logfile.write(\u00270\\n\u0027)"},{"line_number":136,"context_line":"            return False"},{"line_number":137,"context_line":"        updated \u003d verification_chk(apiLink, header)"},{"line_number":138,"context_line":"        if response.status_code !\u003d 200 and\\"},{"line_number":139,"context_line":"                response.status_code !\u003d 201:"},{"line_number":140,"context_line":"            print(\u0027verification failure status code\u003d\u0027 +"},{"line_number":141,"context_line":"                  str(response.status_code))"},{"line_number":142,"context_line":"            print(\u0027verification failure detail\u003d\u0027 +"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf57530f_af5ffa0c","line":139,"range":{"start_line":138,"start_character":8,"end_line":139,"end_character":44},"in_reply_to":"df6247ed_29e9cd7f","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"b00f01e57e1297a78c3d5294a606b991d2da82f5","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            logfile.write(\u00270\\n\u0027)"},{"line_number":145,"context_line":"            return False"},{"line_number":146,"context_line":"        elif not updated:"},{"line_number":147,"context_line":"            print(\"verification_status field failed to update\")"},{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\u0027Test result verified!\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"df6247ed_6ce8f315","line":147,"updated":"2017-09-19 22:27:40.000000000","message":"Seems we should also add a logfile.write(\u00270\\n\u0027) here.","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            logfile.write(\u00270\\n\u0027)"},{"line_number":145,"context_line":"            return False"},{"line_number":146,"context_line":"        elif not updated:"},{"line_number":147,"context_line":"            print(\"verification_status field failed to update\")"},{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\u0027Test result verified!\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf57530f_2fa9cade","line":147,"in_reply_to":"df6247ed_6ce8f315","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"b00f01e57e1297a78c3d5294a606b991d2da82f5","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                    \" cannot be updated and verified: entry incomplete.\\n\")"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                apiLink \u003d os.path.join("},{"line_number":201,"context_line":"                    endpoint, \u0027results\u0027, testId).replace(\u0027https\u0027, \u0027http\u0027, 1)"},{"line_number":202,"context_line":"                testResult \u003d linkChk(apiLink, token)"},{"line_number":203,"context_line":"                if testResult:"},{"line_number":204,"context_line":"                    if testResult.get(\u0027verification_status\u0027):"}],"source_content_type":"text/x-python","patch_set":12,"id":"df6247ed_4c32cfa9","line":201,"range":{"start_line":201,"start_character":48,"end_line":201,"end_character":76},"updated":"2017-09-19 22:27:40.000000000","message":"Any specific reason why you are replacing https with http? I feel the API link should just use whatever protocol was passed in with the --endpoint argument.","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                    \" cannot be updated and verified: entry incomplete.\\n\")"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                apiLink \u003d os.path.join("},{"line_number":201,"context_line":"                    endpoint, \u0027results\u0027, testId).replace(\u0027https\u0027, \u0027http\u0027, 1)"},{"line_number":202,"context_line":"                testResult \u003d linkChk(apiLink, token)"},{"line_number":203,"context_line":"                if testResult:"},{"line_number":204,"context_line":"                    if testResult.get(\u0027verification_status\u0027):"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf57530f_cf010eb2","line":201,"range":{"start_line":201,"start_character":48,"end_line":201,"end_character":76},"in_reply_to":"df6247ed_4c32cfa9","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"77866d6f2c72768747a9c99894aa256dcf06505e"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"7e5b1133832ccba1d7d2b6f46ea837d8882df27f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"def getData(entry):"},{"line_number":31,"context_line":"    \"\"\"Extract and reformat data from a product data csv\"\"\""},{"line_number":32,"context_line":"    guidelines \u003d [\u00272015.03\u0027, \u00272015.04\u0027, \u00272015.05\u0027, \u00272015.07\u0027, \u00272016.01\u0027,"},{"line_number":33,"context_line":"                  \u00272016.08\u0027, \u00272017.01\u0027]"},{"line_number":34,"context_line":"    components \u003d [\u0027platform\u0027, \u0027compute\u0027, \u0027storage\u0027]"},{"line_number":35,"context_line":"    if len(entry) \u003c 10:"},{"line_number":36,"context_line":"        return None, None, None"}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_7099dd1d","line":33,"updated":"2017-09-22 01:11:49.000000000","message":"2017.09 exists now","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"def getData(entry):"},{"line_number":31,"context_line":"    \"\"\"Extract and reformat data from a product data csv\"\"\""},{"line_number":32,"context_line":"    guidelines \u003d [\u00272015.03\u0027, \u00272015.04\u0027, \u00272015.05\u0027, \u00272015.07\u0027, \u00272016.01\u0027,"},{"line_number":33,"context_line":"                  \u00272016.08\u0027, \u00272017.01\u0027]"},{"line_number":34,"context_line":"    components \u003d [\u0027platform\u0027, \u0027compute\u0027, \u0027storage\u0027]"},{"line_number":35,"context_line":"    if len(entry) \u003c 10:"},{"line_number":36,"context_line":"        return None, None, None"}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_235e7de6","line":33,"in_reply_to":"7f515b1d_7099dd1d","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"7e5b1133832ccba1d7d2b6f46ea837d8882df27f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    components \u003d [\u0027platform\u0027, \u0027compute\u0027, \u0027storage\u0027]"},{"line_number":35,"context_line":"    if len(entry) \u003c 10:"},{"line_number":36,"context_line":"        return None, None, None"},{"line_number":37,"context_line":"    if entry[9] !\u003d \"\" and entry[9] !\u003d \" \":"},{"line_number":38,"context_line":"        refstackLink \u003d entry[9].strip()"},{"line_number":39,"context_line":"        testId \u003d refstackLink.split(\"/\")[-1]"},{"line_number":40,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_d091b1f3","line":37,"range":{"start_line":37,"start_character":13,"end_line":37,"end_character":14},"updated":"2017-09-22 01:11:49.000000000","message":"It\u0027s such a minor point, but can we alias these magic values to meaningful words? It would really clarify what the script is doing.","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    components \u003d [\u0027platform\u0027, \u0027compute\u0027, \u0027storage\u0027]"},{"line_number":35,"context_line":"    if len(entry) \u003c 10:"},{"line_number":36,"context_line":"        return None, None, None"},{"line_number":37,"context_line":"    if entry[9] !\u003d \"\" and entry[9] !\u003d \" \":"},{"line_number":38,"context_line":"        refstackLink \u003d entry[9].strip()"},{"line_number":39,"context_line":"        testId \u003d refstackLink.split(\"/\")[-1]"},{"line_number":40,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_0321414e","line":37,"range":{"start_line":37,"start_character":13,"end_line":37,"end_character":14},"in_reply_to":"7f515b1d_d091b1f3","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"7e5b1133832ccba1d7d2b6f46ea837d8882df27f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            return False"},{"line_number":145,"context_line":"        elif not updated:"},{"line_number":146,"context_line":"            print(\"verification_status field failed to update\")"},{"line_number":147,"context_line":"            logfile.write(\u00270\\n\u0027)"},{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\u0027Test result verified!\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_70679d27","line":147,"updated":"2017-09-22 01:11:49.000000000","message":"can we have stronger logging so we can track down exactly which fields failed and why (if that information is available)?","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            return False"},{"line_number":145,"context_line":"        elif not updated:"},{"line_number":146,"context_line":"            print(\"verification_status field failed to update\")"},{"line_number":147,"context_line":"            logfile.write(\u00270\\n\u0027)"},{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\u0027Test result verified!\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_e66513e3","line":147,"in_reply_to":"7f515b1d_70679d27","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"7e5b1133832ccba1d7d2b6f46ea837d8882df27f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\u0027Test result verified!\\n\u0027)"},{"line_number":151,"context_line":"            logfile.write(\u00271\\n\u0027)"},{"line_number":152,"context_line":"            return True"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_f0726de3","line":151,"updated":"2017-09-22 01:11:49.000000000","message":"Again, 1 and 0 aren\u0027t really informative as log values","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            return False"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\u0027Test result verified!\\n\u0027)"},{"line_number":151,"context_line":"            logfile.write(\u00271\\n\u0027)"},{"line_number":152,"context_line":"            return True"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7f515b1d_c66217d9","line":151,"in_reply_to":"7f515b1d_f0726de3","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"f36c305ee0cf158f87adadcdcab63777024e0184"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"871503d1dbb18bcef77b1df3dc4a5a67fcdfa097","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return None, None, None"},{"line_number":37,"context_line":"    refstackLink \u003d entry[9].strip()"},{"line_number":38,"context_line":"    guideline \u003d entry[4].strip()"},{"line_number":39,"context_line":"    target \u003d target[5].tolower().strip()"},{"line_number":40,"context_line":"    if refstackLink and refstackLink !\u003d \u0027 \u0027:"},{"line_number":41,"context_line":"        testId \u003d refstackLink.split(\u0027/\u0027)[-1]"},{"line_number":42,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_67ad3330","line":39,"range":{"start_line":39,"start_character":13,"end_line":39,"end_character":19},"updated":"2017-09-26 20:11:13.000000000","message":"should this be entry[5]?","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return None, None, None"},{"line_number":37,"context_line":"    refstackLink \u003d entry[9].strip()"},{"line_number":38,"context_line":"    guideline \u003d entry[4].strip()"},{"line_number":39,"context_line":"    target \u003d target[5].tolower().strip()"},{"line_number":40,"context_line":"    if refstackLink and refstackLink !\u003d \u0027 \u0027:"},{"line_number":41,"context_line":"        testId \u003d refstackLink.split(\u0027/\u0027)[-1]"},{"line_number":42,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_3fe29ba1","line":39,"range":{"start_line":39,"start_character":13,"end_line":39,"end_character":19},"in_reply_to":"7f515b1d_67ad3330","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"871503d1dbb18bcef77b1df3dc4a5a67fcdfa097","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    refstackLink \u003d entry[9].strip()"},{"line_number":38,"context_line":"    guideline \u003d entry[4].strip()"},{"line_number":39,"context_line":"    target \u003d target[5].tolower().strip()"},{"line_number":40,"context_line":"    if refstackLink and refstackLink !\u003d \u0027 \u0027:"},{"line_number":41,"context_line":"        testId \u003d refstackLink.split(\u0027/\u0027)[-1]"},{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        refstackLink \u003d None"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_0a2fa63f","line":40,"range":{"start_line":40,"start_character":19,"end_line":40,"end_character":43},"updated":"2017-09-26 20:11:13.000000000","message":"second statement \"and refstackLink !\u003d \u0027 \u0027 \" is not necessary since strip will removes spaces leaving an empty string already...","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    refstackLink \u003d entry[9].strip()"},{"line_number":38,"context_line":"    guideline \u003d entry[4].strip()"},{"line_number":39,"context_line":"    target \u003d target[5].tolower().strip()"},{"line_number":40,"context_line":"    if refstackLink and refstackLink !\u003d \u0027 \u0027:"},{"line_number":41,"context_line":"        testId \u003d refstackLink.split(\u0027/\u0027)[-1]"},{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        refstackLink \u003d None"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_1fdfdfd6","line":40,"range":{"start_line":40,"start_character":19,"end_line":40,"end_character":43},"in_reply_to":"7f515b1d_0a2fa63f","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"715f45a43750cccffa72d4a0b8e602f8caa07f2f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        refstackLink \u003d None"},{"line_number":44,"context_line":"        testId \u003d None"},{"line_number":45,"context_line":"    if guideline in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or guideline not in guidelines:"},{"line_number":46,"context_line":"        guideline \u003d None"},{"line_number":47,"context_line":"    if target in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or target not in components:"},{"line_number":48,"context_line":"        target \u003d None    "}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_ead68a27","line":45,"range":{"start_line":45,"start_character":7,"end_line":45,"end_character":40},"updated":"2017-09-26 20:36:43.000000000","message":"Lets just remove this check as it will still fail on the \u0027guideline not in guidelines\u0027 check.","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        refstackLink \u003d None"},{"line_number":44,"context_line":"        testId \u003d None"},{"line_number":45,"context_line":"    if guideline in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or guideline not in guidelines:"},{"line_number":46,"context_line":"        guideline \u003d None"},{"line_number":47,"context_line":"    if target in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or target not in components:"},{"line_number":48,"context_line":"        target \u003d None    "}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_1ff8ff46","line":45,"range":{"start_line":45,"start_character":7,"end_line":45,"end_character":40},"in_reply_to":"7f515b1d_ead68a27","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"715f45a43750cccffa72d4a0b8e602f8caa07f2f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        testId \u003d None"},{"line_number":45,"context_line":"    if guideline in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or guideline not in guidelines:"},{"line_number":46,"context_line":"        guideline \u003d None"},{"line_number":47,"context_line":"    if target in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or target not in components:"},{"line_number":48,"context_line":"        target \u003d None    "},{"line_number":49,"context_line":"    elif target \u003d\u003d \"storage\":"},{"line_number":50,"context_line":"        target \u003d \"object\""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_8ae71613","line":47,"range":{"start_line":47,"start_character":7,"end_line":47,"end_character":37},"updated":"2017-09-26 20:36:43.000000000","message":"Similarly, we don\u0027t need this check.","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        testId \u003d None"},{"line_number":45,"context_line":"    if guideline in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or guideline not in guidelines:"},{"line_number":46,"context_line":"        guideline \u003d None"},{"line_number":47,"context_line":"    if target in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or target not in components:"},{"line_number":48,"context_line":"        target \u003d None    "},{"line_number":49,"context_line":"    elif target \u003d\u003d \"storage\":"},{"line_number":50,"context_line":"        target \u003d \"object\""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_ff9643f0","line":47,"range":{"start_line":47,"start_character":7,"end_line":47,"end_character":37},"in_reply_to":"7f515b1d_8ae71613","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":7822,"name":"Chris Hoge (not involved in upstream development)","email":"chris@hogepodge.com","username":"hogepodge"},"change_message_id":"203daaf81b73d7b928049d918cf2dad2ea644a73","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    if guideline in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or guideline not in guidelines:"},{"line_number":46,"context_line":"        guideline \u003d None"},{"line_number":47,"context_line":"    if target in (\u0027\u0027, \u0027 \u0027, \u0027None\u0027) or target not in components:"},{"line_number":48,"context_line":"        target \u003d None    "},{"line_number":49,"context_line":"    elif target \u003d\u003d \"storage\":"},{"line_number":50,"context_line":"        target \u003d \"object\""},{"line_number":51,"context_line":"    return testId, guideline, target"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_74e28603","line":48,"range":{"start_line":48,"start_character":21,"end_line":48,"end_character":25},"updated":"2017-09-26 17:37:40.000000000","message":"nit trailing white space","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d89b438b963c6a59449918ced6cd6d3d149bcf11","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def updateField(logfile, header, apiLink, raw_data):"},{"line_number":84,"context_line":"    valid_keytype \u003d [\u0027shared\u0027, \u0027guideline\u0027, \u0027target\u0027]"},{"line_number":85,"context_line":"    keytype \u003d raw_data.type"},{"line_number":86,"context_line":"    keyval \u003d raw_data.value"},{"line_number":87,"context_line":"    if keytype not in valid_keytype or not keyval:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_c0ea8d73","line":84,"range":{"start_line":84,"start_character":3,"end_line":84,"end_character":12},"updated":"2017-09-26 22:20:26.000000000","message":"Method need docstring","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d89b438b963c6a59449918ced6cd6d3d149bcf11","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        print(\u0027update response status code\u003d\u0027 +"},{"line_number":93,"context_line":"              str(response.status_code))"},{"line_number":94,"context_line":"        print(\u0027update response text\u003d\u0027 + response.text)"},{"line_number":95,"context_line":"        logfile.write(\u0027%s field update failed: reason: %s,\u0027 %"},{"line_number":96,"context_line":"                      (keytype, response.text))"},{"line_number":97,"context_line":"        return False"},{"line_number":98,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_db796293","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":15},"updated":"2017-09-26 22:20:26.000000000","message":"I would prefer to make this method an inner method of updateResult.\nI think that using a file object instead of a file name looks like a weird code cohesion.\nAlso can we change the variable name? probably \"results_csv\".  I thought of python logging module when I first saw log file.","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d89b438b963c6a59449918ced6cd6d3d149bcf11","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        logfile.write(str(datetime.datetime.now()) + \",\" + apiLink + \",\")"},{"line_number":110,"context_line":"        # update the shared field"},{"line_number":111,"context_line":"        data \u003d MetadataField(\u0027shared\u0027, \u0027true\u0027)"},{"line_number":112,"context_line":"        success.append(updateField(logfile, header, apiLink, data))"},{"line_number":113,"context_line":"        # update the target field"},{"line_number":114,"context_line":"        data \u003d MetadataField(\u0027target\u0027, target)"},{"line_number":115,"context_line":"        success.append(updateField(logfile, header, apiLink, data))"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_f6bc33dd","line":112,"range":{"start_line":112,"start_character":23,"end_line":112,"end_character":43},"updated":"2017-09-26 22:20:26.000000000","message":"I would like to make updateField to be an inner method of updateResult.","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        logfile.write(str(datetime.datetime.now()) + \",\" + apiLink + \",\")"},{"line_number":110,"context_line":"        # update the shared field"},{"line_number":111,"context_line":"        data \u003d MetadataField(\u0027shared\u0027, \u0027true\u0027)"},{"line_number":112,"context_line":"        success.append(updateField(logfile, header, apiLink, data))"},{"line_number":113,"context_line":"        # update the target field"},{"line_number":114,"context_line":"        data \u003d MetadataField(\u0027target\u0027, target)"},{"line_number":115,"context_line":"        success.append(updateField(logfile, header, apiLink, data))"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_ea343f95","line":112,"range":{"start_line":112,"start_character":23,"end_line":112,"end_character":43},"in_reply_to":"7f515b1d_f6bc33dd","updated":"2017-09-27 06:04:06.000000000","message":"it roughly triples the function length, with a great deal of near-carbon-copy repetition if i do, which is why I originally broke it out. I can move it back, of course, but i\u0027d like to get a few more viewpoints on this before I do.","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d89b438b963c6a59449918ced6cd6d3d149bcf11","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                        help\u003d\"name of logfile to output data into\")"},{"line_number":184,"context_line":"    result \u003d parser.parse_args()"},{"line_number":185,"context_line":"    infile \u003d result.file"},{"line_number":186,"context_line":"    logfile \u003d result.logfile"},{"line_number":187,"context_line":"    endpoint \u003d result.endpoint"},{"line_number":188,"context_line":"    token \u003d result.token"},{"line_number":189,"context_line":"    with open(infile) as f:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_36b9ab2d","line":186,"range":{"start_line":186,"start_character":4,"end_line":186,"end_character":11},"updated":"2017-09-26 22:20:26.000000000","message":"Probably change the name to \"results_csv\" since log file has a different meaning.","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"5ae47b97039ea5e945e8219b8e86c57b86d979e9","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                        help\u003d\"name of logfile to output data into\")"},{"line_number":184,"context_line":"    result \u003d parser.parse_args()"},{"line_number":185,"context_line":"    infile \u003d result.file"},{"line_number":186,"context_line":"    logfile \u003d result.logfile"},{"line_number":187,"context_line":"    endpoint \u003d result.endpoint"},{"line_number":188,"context_line":"    token \u003d result.token"},{"line_number":189,"context_line":"    with open(infile) as f:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f515b1d_6a0ccf40","line":186,"range":{"start_line":186,"start_character":4,"end_line":186,"end_character":11},"in_reply_to":"7f515b1d_36b9ab2d","updated":"2017-09-27 06:04:06.000000000","message":"Done","commit_id":"17a8bb1e0203a4c8d1988663c09265551b3a2f74"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"0c957e10d16c1a25ad0338a71f685dcdea9d9791","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return None, None, None"},{"line_number":37,"context_line":"    refstackLink \u003d entry[9].strip()"},{"line_number":38,"context_line":"    guideline \u003d entry[4].strip()"},{"line_number":39,"context_line":"    target \u003d entry[5].tolower().strip()"},{"line_number":40,"context_line":"    if refstackLink:"},{"line_number":41,"context_line":"        testId \u003d refstackLink.split(\u0027/\u0027)[-1]"},{"line_number":42,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f515b1d_7267daea","line":39,"range":{"start_line":39,"start_character":22,"end_line":39,"end_character":29},"updated":"2017-09-29 19:18:27.000000000","message":"you mean \u0027entry[5].lower().strip()\u0027","commit_id":"d2e4f911d8866d75dbaa9139206f25db003a7c61"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"934ec1b2ecbec7f1efb06d890ba966b66ad2e9a6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return None, None, None"},{"line_number":37,"context_line":"    refstackLink \u003d entry[9].strip()"},{"line_number":38,"context_line":"    guideline \u003d entry[4].strip()"},{"line_number":39,"context_line":"    target \u003d entry[5].tolower().strip()"},{"line_number":40,"context_line":"    if refstackLink:"},{"line_number":41,"context_line":"        testId \u003d refstackLink.split(\u0027/\u0027)[-1]"},{"line_number":42,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f515b1d_53c3bd57","line":39,"range":{"start_line":39,"start_character":22,"end_line":39,"end_character":29},"in_reply_to":"7f515b1d_7267daea","updated":"2017-10-04 06:09:44.000000000","message":"Done","commit_id":"d2e4f911d8866d75dbaa9139206f25db003a7c61"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"0c957e10d16c1a25ad0338a71f685dcdea9d9791","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        print(\u0027update response status code\u003d\u0027 +"},{"line_number":95,"context_line":"              str(response.status_code))"},{"line_number":96,"context_line":"        print(\u0027update response text\u003d\u0027 + response.text)"},{"line_number":97,"context_line":"        updresult \u003d \u0027%s field update failed: reason: %s,\u0027 %"},{"line_number":98,"context_line":"                      (keytype, response.text))"},{"line_number":99,"context_line":"        return updresult, False"},{"line_number":100,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f515b1d_725d9a45","line":97,"range":{"start_line":97,"start_character":20,"end_line":97,"end_character":21},"updated":"2017-09-29 19:18:27.000000000","message":"Missing open parenthesis character.","commit_id":"d2e4f911d8866d75dbaa9139206f25db003a7c61"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"934ec1b2ecbec7f1efb06d890ba966b66ad2e9a6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        print(\u0027update response status code\u003d\u0027 +"},{"line_number":95,"context_line":"              str(response.status_code))"},{"line_number":96,"context_line":"        print(\u0027update response text\u003d\u0027 + response.text)"},{"line_number":97,"context_line":"        updresult \u003d \u0027%s field update failed: reason: %s,\u0027 %"},{"line_number":98,"context_line":"                      (keytype, response.text))"},{"line_number":99,"context_line":"        return updresult, False"},{"line_number":100,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f515b1d_f3a9898f","line":97,"range":{"start_line":97,"start_character":20,"end_line":97,"end_character":21},"in_reply_to":"7f515b1d_725d9a45","updated":"2017-10-04 06:09:44.000000000","message":"Done","commit_id":"d2e4f911d8866d75dbaa9139206f25db003a7c61"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"0c957e10d16c1a25ad0338a71f685dcdea9d9791","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        data \u003d MetadataField(\u0027shared\u0027, \u0027true\u0027)"},{"line_number":114,"context_line":"        shared_status, shared_result \u003d updateField(header, apiLink, data)"},{"line_number":115,"context_line":"        r.write(upd_result)"},{"line_number":116,"context_line":"        success.append(updateField(upd_status)"},{"line_number":117,"context_line":"        # update the target field"},{"line_number":118,"context_line":"        data \u003d MetadataField(\u0027target\u0027, target)"},{"line_number":119,"context_line":"        target_status, target_result \u003d updateField(header, apiLink, data)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f515b1d_f5d7344a","line":116,"range":{"start_line":116,"start_character":45,"end_line":116,"end_character":46},"updated":"2017-09-29 19:18:27.000000000","message":"Missing closing parenthesis on this line","commit_id":"d2e4f911d8866d75dbaa9139206f25db003a7c61"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":95,"context_line":"              str(response.status_code))"},{"line_number":96,"context_line":"        print(\u0027update response text\u003d\u0027 + response.text)"},{"line_number":97,"context_line":"        updresult \u003d \u0027%s field update failed: reason: %s,\u0027 % (keytype,"},{"line_number":98,"context_line":"                                                             response.text)"},{"line_number":99,"context_line":"        return updresult, False"},{"line_number":100,"context_line":"    else:"},{"line_number":101,"context_line":"        updresult \u003d \"%s field update successful,\" % (keytype)"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_a6670926","line":98,"range":{"start_line":98,"start_character":61,"end_line":98,"end_character":74},"updated":"2017-10-10 19:08:57.000000000","message":"Lets replace commas with double spaces so as not to break the formatting of the csv columns, but still get the error information across. Errors seem to be json strings anyway, so it\u0027d look like {\"code\": 403   \"detail\": \"\"   \"title\": \"Forbidden\"} now with double spaces.\n\n    updresult \u003d (\u0027%s field update failed: reason: \u0027\n                 \u0027%s,\u0027) % (keytype, response.text.replace(\u0027,\u0027, \u0027  \u0027))","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":95,"context_line":"              str(response.status_code))"},{"line_number":96,"context_line":"        print(\u0027update response text\u003d\u0027 + response.text)"},{"line_number":97,"context_line":"        updresult \u003d \u0027%s field update failed: reason: %s,\u0027 % (keytype,"},{"line_number":98,"context_line":"                                                             response.text)"},{"line_number":99,"context_line":"        return updresult, False"},{"line_number":100,"context_line":"    else:"},{"line_number":101,"context_line":"        updresult \u003d \"%s field update successful,\" % (keytype)"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_08d69550","line":98,"range":{"start_line":98,"start_character":61,"end_line":98,"end_character":74},"in_reply_to":"5f4e5783_a6670926","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        r.write(str(datetime.datetime.now()) + \",\" + apiLink + \",\")"},{"line_number":112,"context_line":"        # update the shared field"},{"line_number":113,"context_line":"        data \u003d MetadataField(\u0027shared\u0027, \u0027true\u0027)"},{"line_number":114,"context_line":"        shared_status, shared_result \u003d updateField(header, apiLink, data)"},{"line_number":115,"context_line":"        r.write(shared_result)"},{"line_number":116,"context_line":"        success.append(shared_status)"},{"line_number":117,"context_line":"        # update the target field"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_6b0d5a36","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":36},"updated":"2017-10-10 19:08:57.000000000","message":"I think you meant to reverse the order of the these arguments since updateField returns the result first.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        r.write(str(datetime.datetime.now()) + \",\" + apiLink + \",\")"},{"line_number":112,"context_line":"        # update the shared field"},{"line_number":113,"context_line":"        data \u003d MetadataField(\u0027shared\u0027, \u0027true\u0027)"},{"line_number":114,"context_line":"        shared_status, shared_result \u003d updateField(header, apiLink, data)"},{"line_number":115,"context_line":"        r.write(shared_result)"},{"line_number":116,"context_line":"        success.append(shared_status)"},{"line_number":117,"context_line":"        # update the target field"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_685509c6","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":36},"in_reply_to":"5f4e5783_6b0d5a36","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        success.append(shared_status)"},{"line_number":117,"context_line":"        # update the target field"},{"line_number":118,"context_line":"        data \u003d MetadataField(\u0027target\u0027, target)"},{"line_number":119,"context_line":"        target_status, target_result \u003d updateField(header, apiLink, data)"},{"line_number":120,"context_line":"        r.write(target_result)"},{"line_number":121,"context_line":"        success.append(target_status)"},{"line_number":122,"context_line":"        # update the guideline field"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_2b0f622f","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":36},"updated":"2017-10-10 19:08:57.000000000","message":"Similarly, reversed.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        success.append(shared_status)"},{"line_number":117,"context_line":"        # update the target field"},{"line_number":118,"context_line":"        data \u003d MetadataField(\u0027target\u0027, target)"},{"line_number":119,"context_line":"        target_status, target_result \u003d updateField(header, apiLink, data)"},{"line_number":120,"context_line":"        r.write(target_result)"},{"line_number":121,"context_line":"        success.append(target_status)"},{"line_number":122,"context_line":"        # update the guideline field"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_086455b8","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":36},"in_reply_to":"5f4e5783_2b0f622f","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        r.write(target_result)"},{"line_number":121,"context_line":"        success.append(target_status)"},{"line_number":122,"context_line":"        # update the guideline field"},{"line_number":123,"context_line":"        data \u003d MetadataField(\u0027guideline\u0027, guideline)"},{"line_number":124,"context_line":"        gl_status, gl_result \u003d updateField(header, apiLink, data)"},{"line_number":125,"context_line":"        r.write(gl_result)"},{"line_number":126,"context_line":"        success.append(gl_status)"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_900d6792","line":123,"range":{"start_line":123,"start_character":42,"end_line":123,"end_character":51},"updated":"2017-10-10 19:08:57.000000000","message":"let\u0027s append \u0027.json\u0027 to guideline like last time since that is what the UI currently expects.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        r.write(target_result)"},{"line_number":121,"context_line":"        success.append(target_status)"},{"line_number":122,"context_line":"        # update the guideline field"},{"line_number":123,"context_line":"        data \u003d MetadataField(\u0027guideline\u0027, guideline)"},{"line_number":124,"context_line":"        gl_status, gl_result \u003d updateField(header, apiLink, data)"},{"line_number":125,"context_line":"        r.write(gl_result)"},{"line_number":126,"context_line":"        success.append(gl_status)"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_48c5ad5a","line":123,"range":{"start_line":123,"start_character":42,"end_line":123,"end_character":51},"in_reply_to":"5f4e5783_900d6792","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        success.append(target_status)"},{"line_number":122,"context_line":"        # update the guideline field"},{"line_number":123,"context_line":"        data \u003d MetadataField(\u0027guideline\u0027, guideline)"},{"line_number":124,"context_line":"        gl_status, gl_result \u003d updateField(header, apiLink, data)"},{"line_number":125,"context_line":"        r.write(gl_result)"},{"line_number":126,"context_line":"        success.append(gl_status)"},{"line_number":127,"context_line":"        if not all(success):"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_8b21b6a2","line":124,"range":{"start_line":124,"start_character":8,"end_line":124,"end_character":28},"updated":"2017-10-10 19:08:57.000000000","message":"reversed.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        success.append(target_status)"},{"line_number":122,"context_line":"        # update the guideline field"},{"line_number":123,"context_line":"        data \u003d MetadataField(\u0027guideline\u0027, guideline)"},{"line_number":124,"context_line":"        gl_status, gl_result \u003d updateField(header, apiLink, data)"},{"line_number":125,"context_line":"        r.write(gl_result)"},{"line_number":126,"context_line":"        success.append(gl_status)"},{"line_number":127,"context_line":"        if not all(success):"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_686e2996","line":124,"range":{"start_line":124,"start_character":8,"end_line":124,"end_character":28},"in_reply_to":"5f4e5783_8b21b6a2","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        r.write(gl_result)"},{"line_number":126,"context_line":"        success.append(gl_status)"},{"line_number":127,"context_line":"        if not all(success):"},{"line_number":128,"context_line":"            return False"},{"line_number":129,"context_line":"        # if there were no update failures, we can verify the result"},{"line_number":130,"context_line":"        # this is the operation most likely to fail, so extra checks are"},{"line_number":131,"context_line":"        # in order"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_0b594659","line":128,"updated":"2017-10-10 19:08:57.000000000","message":"Let\u0027s also write to csv here, saying \u0027unable to verify\\n\u0027 or just a newline \u0027\\n\u0027 so that the next csv line wont continue from the same line.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        r.write(gl_result)"},{"line_number":126,"context_line":"        success.append(gl_status)"},{"line_number":127,"context_line":"        if not all(success):"},{"line_number":128,"context_line":"            return False"},{"line_number":129,"context_line":"        # if there were no update failures, we can verify the result"},{"line_number":130,"context_line":"        # this is the operation most likely to fail, so extra checks are"},{"line_number":131,"context_line":"        # in order"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_c8119dae","line":128,"in_reply_to":"5f4e5783_0b594659","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                    headers\u003dheader)"},{"line_number":137,"context_line":"        except Exception as ex:"},{"line_number":138,"context_line":"            print(\u0027Exception raised while verifying test result: \u0027 +"},{"line_number":139,"context_line":"                  str(ex))"},{"line_number":140,"context_line":"            r.write(\u00270\\n\u0027)"},{"line_number":141,"context_line":"            return False"},{"line_number":142,"context_line":"        updated \u003d verification_chk(apiLink, header)"},{"line_number":143,"context_line":"        if response.status_code not in (200, 201):"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_8b82d6c7","line":140,"range":{"start_line":139,"start_character":26,"end_line":140,"end_character":24},"updated":"2017-10-10 19:08:57.000000000","message":"Did we want to write something like \u0027verification failed: %s\\n\u0027 % str(ex) to match the others?","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                    headers\u003dheader)"},{"line_number":137,"context_line":"        except Exception as ex:"},{"line_number":138,"context_line":"            print(\u0027Exception raised while verifying test result: \u0027 +"},{"line_number":139,"context_line":"                  str(ex))"},{"line_number":140,"context_line":"            r.write(\u00270\\n\u0027)"},{"line_number":141,"context_line":"            return False"},{"line_number":142,"context_line":"        updated \u003d verification_chk(apiLink, header)"},{"line_number":143,"context_line":"        if response.status_code not in (200, 201):"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f4e5783_0899f51d","line":140,"range":{"start_line":139,"start_character":26,"end_line":140,"end_character":24},"in_reply_to":"5f4e5783_8b82d6c7","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"}],"tools/update-rs-db.rst":[{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":10,"context_line":"http://example.com:8000/v1 --token \u003cmy-token\u003e\". In order to"},{"line_number":11,"context_line":"successfully update and verify results, you will need admin rights"},{"line_number":12,"context_line":"for the refstack server in question. Instructions on how to get"},{"line_number":13,"context_line":"these for your local install can be found at https://github.com/"},{"line_number":14,"context_line":"openstack/refstack/blob/master/doc/source/refstack.rst#optional-\\"},{"line_number":15,"context_line":"configure-foundation-organization-and-group"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This script updates RefStack tests as verified given a specific"},{"line_number":18,"context_line":"spreadsheet. The columns in this spreadsheet are, in this order:"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5f4e5783_81e637e8","line":15,"range":{"start_line":13,"start_character":45,"end_line":15,"end_character":43},"updated":"2017-10-10 19:08:57.000000000","message":"Just put this link all on one line so as not to break the hyperlink.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":24728,"name":"megan guiney","email":"meganmguiney@gmail.com","username":"mguiney"},"change_message_id":"61a82473f3726971df3b4626984b6488a9cd8092","unresolved":false,"context_lines":[{"line_number":10,"context_line":"http://example.com:8000/v1 --token \u003cmy-token\u003e\". In order to"},{"line_number":11,"context_line":"successfully update and verify results, you will need admin rights"},{"line_number":12,"context_line":"for the refstack server in question. Instructions on how to get"},{"line_number":13,"context_line":"these for your local install can be found at https://github.com/"},{"line_number":14,"context_line":"openstack/refstack/blob/master/doc/source/refstack.rst#optional-\\"},{"line_number":15,"context_line":"configure-foundation-organization-and-group"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This script updates RefStack tests as verified given a specific"},{"line_number":18,"context_line":"spreadsheet. The columns in this spreadsheet are, in this order:"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5f4e5783_f33a0e96","line":15,"range":{"start_line":13,"start_character":45,"end_line":15,"end_character":43},"in_reply_to":"5f4e5783_81e637e8","updated":"2017-10-15 21:53:34.000000000","message":"Done","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":15,"context_line":"configure-foundation-organization-and-group"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This script updates RefStack tests as verified given a specific"},{"line_number":18,"context_line":"spreadsheet. The columns in this spreadsheet are, in this order:"},{"line_number":19,"context_line":" - Company Name"},{"line_number":20,"context_line":" - Product Name"},{"line_number":21,"context_line":" - Type (Distribution, Public, or Private)"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5f4e5783_e1d60bf2","line":18,"updated":"2017-10-10 19:08:57.000000000","message":"Add a newline before these list items. A blank line is needed before lists to keep the formatting.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"2940473ded1460fb0ffc725c79b863872ee9db89","unresolved":false,"context_lines":[{"line_number":64,"context_line":"The status of each of these steps will be output to \"verification_status.csv\""},{"line_number":65,"context_line":"by default. A \u00271\u0027 will denote that the resource was successfully updated while"},{"line_number":66,"context_line":"a \u00270\u0027 will denote that the resource was not successfully updated. The order of"},{"line_number":67,"context_line":"fields of this file are as follows:"},{"line_number":68,"context_line":"- Date modified"},{"line_number":69,"context_line":"- API link"},{"line_number":70,"context_line":"- Shared update status"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5f4e5783_c1054f7c","line":67,"updated":"2017-10-10 19:08:57.000000000","message":"Similarly blank line before the list items here.","commit_id":"d48f1edeba8366bfa1b51929ba5c1a74c98bd7fc"}]}
