)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1a5aa1b2a4fe62675a1dfc2a12a325417c83123f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-25 23:28:10 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support of OAuth2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported OAuth2.0 as the part of the feature of branching VNFM"},{"line_number":10,"context_line":"and NFVO in Tacker."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_6b43e914","line":7,"updated":"2020-08-28 05:34:09.000000000","message":"It seems that the problem that was FAILURE of openstack-tox-cover has been resolved by recheck for the time being.\nI think it may have been a temporary problem, but I think it may happen again in the future, so please monitor it.\nIf there is no reason to put WIP on this patch other than that openstack-tox-cover was FAILURE, I think you can remove it.","commit_id":"70c95d93f6ce9611b10e8d57e715d943c6072280"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"6cbdcd1b6a62c9d22d6f763958208fe310d64724","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-25 23:28:10 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support of OAuth2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported OAuth2.0 as the part of the feature of branching VNFM"},{"line_number":10,"context_line":"and NFVO in Tacker."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_3f2bf4ea","line":7,"in_reply_to":"9f560f44_197523cd","updated":"2020-09-13 07:44:25.000000000","message":"This problem was already resolved.\nThe root cause was that \"rollback_vnf_instantiated_resources\" function in tacker/vnflcm/vnflcm_driver.py was incorrectly deleted in 746892.\nAlready reverted in the patch.","commit_id":"70c95d93f6ce9611b10e8d57e715d943c6072280"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"ef54a5da9244d667ee154aa020816d5d3f252b3c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-25 23:28:10 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support of OAuth2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported OAuth2.0 as the part of the feature of branching VNFM"},{"line_number":10,"context_line":"and NFVO in Tacker."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_197523cd","line":7,"in_reply_to":"9f560f44_39de27da","updated":"2020-09-02 05:29:36.000000000","message":"Sorry for my lack of previous explanation. Yes, I will fix it in THIS patch.","commit_id":"70c95d93f6ce9611b10e8d57e715d943c6072280"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"cec8504021f8a5e18c3669e2d51fe9761aacc9b7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-25 23:28:10 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support of OAuth2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported OAuth2.0 as the part of the feature of branching VNFM"},{"line_number":10,"context_line":"and NFVO in Tacker."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_b95d177b","line":7,"in_reply_to":"9f560f44_688101c4","updated":"2020-09-02 04:45:28.000000000","message":"I will investigate the cause and fix it by the last patch.","commit_id":"70c95d93f6ce9611b10e8d57e715d943c6072280"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3c71165313d8ad841f4f4d242205fb0d8cb0a3fa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-25 23:28:10 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support of OAuth2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported OAuth2.0 as the part of the feature of branching VNFM"},{"line_number":10,"context_line":"and NFVO in Tacker."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_688101c4","line":7,"in_reply_to":"9f560f44_6b43e914","updated":"2020-09-01 05:27:27.000000000","message":"Recheck seems to have caused the issue to recur.\nBy the time this patch is merged, it is necessary to identify the cause and eliminate it.","commit_id":"70c95d93f6ce9611b10e8d57e715d943c6072280"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2bdd281c19ece8e7df37bf8160940c0801d7d9e1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Aldinson Esto \u003cesto.aln@nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-08-25 23:28:10 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support of OAuth2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Supported OAuth2.0 as the part of the feature of branching VNFM"},{"line_number":10,"context_line":"and NFVO in Tacker."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f560f44_39de27da","line":7,"in_reply_to":"9f560f44_b95d177b","updated":"2020-09-02 04:50:16.000000000","message":"I think the fix should be done in this patch.\nBecause when this problem occurs, it becomes Zuul check -1, and this patch cannot be merged.","commit_id":"70c95d93f6ce9611b10e8d57e715d943c6072280"}],"tacker/auth.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3c71165313d8ad841f4f4d242205fb0d8cb0a3fa","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        response \u003d super().request(method, url, **kwargs)"},{"line_number":127,"context_line":"        if response.status_code \u003d\u003d 401:"},{"line_number":128,"context_line":"            LOG.warning("},{"line_number":129,"context_line":"                \u0027Authentication error {}, details\u003d{}\u0027.format("},{"line_number":130,"context_line":"                    response, response.text))"},{"line_number":131,"context_line":"            self.apply_access_token_info()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_4b44f71b","line":128,"updated":"2020-09-01 05:27:27.000000000","message":"I think LOG.error is better.","commit_id":"20104a4a2a27acd8ce746609421f5fc84e5efbde"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"cec8504021f8a5e18c3669e2d51fe9761aacc9b7","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        response \u003d super().request(method, url, **kwargs)"},{"line_number":127,"context_line":"        if response.status_code \u003d\u003d 401:"},{"line_number":128,"context_line":"            LOG.warning("},{"line_number":129,"context_line":"                \u0027Authentication error {}, details\u003d{}\u0027.format("},{"line_number":130,"context_line":"                    response, response.text))"},{"line_number":131,"context_line":"            self.apply_access_token_info()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_f94e6fc0","line":128,"in_reply_to":"9f560f44_4b44f71b","updated":"2020-09-02 04:45:28.000000000","message":"Modified as you suggested.","commit_id":"20104a4a2a27acd8ce746609421f5fc84e5efbde"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"377cd5d752f8a98401629b1533d80008e5a687f3","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            pass"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class _BasicAuthSession(requests.Session):"},{"line_number":170,"context_line":"    \"\"\"Provide Basic authentication.\"\"\""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def __init__(self, user_name, password):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_ccf68b91","line":169,"updated":"2020-08-28 10:26:27.000000000","message":"Does this patch also include Basic certification?\nIf so, you should add to the commit comment.","commit_id":"20104a4a2a27acd8ce746609421f5fc84e5efbde"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"cec8504021f8a5e18c3669e2d51fe9761aacc9b7","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            pass"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class _BasicAuthSession(requests.Session):"},{"line_number":170,"context_line":"    \"\"\"Provide Basic authentication.\"\"\""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def __init__(self, user_name, password):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_f965cf4a","line":169,"in_reply_to":"9f560f44_ccf68b91","updated":"2020-09-02 04:45:28.000000000","message":"This patch contains only Client Basic certification, so I added the description into the commit message.","commit_id":"20104a4a2a27acd8ce746609421f5fc84e5efbde"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":298,"context_line":"    return app"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"auth_manager \u003d _AuthManager()"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_55e1a4fb","line":301,"range":{"start_line":301,"start_character":0,"end_line":301,"end_character":29},"updated":"2020-09-24 07:02:02.000000000","message":"why here is instanting a _AuthManager() here ? it seems not be used anywhere","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"360cab9f17bb2707a0b021bf31e1b15791652d8d","unresolved":false,"context_lines":[{"line_number":298,"context_line":"    return app"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"auth_manager \u003d _AuthManager()"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_8a12e4fb","line":301,"range":{"start_line":301,"start_character":0,"end_line":301,"end_character":29},"in_reply_to":"9f560f44_55e1a4fb","updated":"2020-09-25 03:06:08.000000000","message":"It\u0027s used from outside of the file, such as following.\n./conductor/conductor_server.py:627:                        auth_client \u003d auth.auth_manager.get_auth_client(\n./conductor/conductor_server.py:888:        auth.auth_manager.set_auth_client(\n./vnfm/nfvo_client.py:50:            auth.auth_manager.get_auth_client().request,","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":298,"context_line":"    return app"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"auth_manager \u003d _AuthManager()"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_4d1c6612","line":301,"range":{"start_line":301,"start_character":0,"end_line":301,"end_character":29},"in_reply_to":"9f560f44_8a12e4fb","updated":"2020-09-25 06:10:27.000000000","message":"Ogawa-san\u0027s comment is correct.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"}],"tacker/conductor/conductor_server.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"377cd5d752f8a98401629b1533d80008e5a687f3","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import os"},{"line_number":22,"context_line":"import shutil"},{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"from tacker import auth"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"import traceback"},{"line_number":27,"context_line":"import yaml"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_0ceec3ec","line":24,"updated":"2020-08-28 10:26:27.000000000","message":"You should move to around line 44.","commit_id":"20104a4a2a27acd8ce746609421f5fc84e5efbde"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"cec8504021f8a5e18c3669e2d51fe9761aacc9b7","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import os"},{"line_number":22,"context_line":"import shutil"},{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"from tacker import auth"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"import traceback"},{"line_number":27,"context_line":"import yaml"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_79637f42","line":24,"in_reply_to":"9f560f44_0ceec3ec","updated":"2020-09-02 04:45:28.000000000","message":"Moved to the line 43.","commit_id":"20104a4a2a27acd8ce746609421f5fc84e5efbde"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d5d688e6fa23abacc7a34d8194a4d599345f59f2","unresolved":false,"context_lines":[{"line_number":891,"context_line":"                                CONF.vnf_lcm.retry_wait)"},{"line_number":892,"context_line":"                            time.sleep(CONF.vnf_lcm.retry_wait)"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"            self._send_lcm_op_occ_notification("},{"line_number":895,"context_line":"                context\u003dcontext,"},{"line_number":896,"context_line":"                vnf_lcm_op_occs_id\u003dvnf_lcm_op_occs_id,"},{"line_number":897,"context_line":"                old_vnf_instance\u003dold_vnf_instance,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_a21476ea","line":894,"updated":"2020-09-07 17:15:13.000000000","message":"pep8: E999 IndentationError: unexpected unindent","commit_id":"f50d3db22f9e574bebaa522606265173d09f3066"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from glance_store import exceptions as store_exceptions"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"},{"line_number":31,"context_line":"import oslo_messaging"},{"line_number":32,"context_line":"from oslo_serialization import jsonutils"},{"line_number":33,"context_line":"from oslo_service import periodic_task"},{"line_number":34,"context_line":"from oslo_service import service"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_157d6c6c","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":21},"updated":"2020-09-24 07:02:02.000000000","message":"This import should move to L26","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"360cab9f17bb2707a0b021bf31e1b15791652d8d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from glance_store import exceptions as store_exceptions"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"},{"line_number":31,"context_line":"import oslo_messaging"},{"line_number":32,"context_line":"from oslo_serialization import jsonutils"},{"line_number":33,"context_line":"from oslo_service import periodic_task"},{"line_number":34,"context_line":"from oslo_service import service"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_2ad91855","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":21},"in_reply_to":"9f560f44_157d6c6c","updated":"2020-09-25 03:06:08.000000000","message":"It\u0027s OK here because it\u0027s not a standard lib, but a common module of openstack.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from glance_store import exceptions as store_exceptions"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"},{"line_number":31,"context_line":"import oslo_messaging"},{"line_number":32,"context_line":"from oslo_serialization import jsonutils"},{"line_number":33,"context_line":"from oslo_service import periodic_task"},{"line_number":34,"context_line":"from oslo_service import service"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_ad1702ee","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":21},"in_reply_to":"9f560f44_2ad91855","updated":"2020-09-25 06:10:27.000000000","message":"Ogawa-san\u0027s comment is correct.\nAdditionally, it will violate pep8 if moved, so left as it is.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from glance_store import exceptions as store_exceptions"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"},{"line_number":31,"context_line":"import oslo_messaging"},{"line_number":32,"context_line":"from oslo_serialization import jsonutils"},{"line_number":33,"context_line":"from oslo_service import periodic_task"},{"line_number":34,"context_line":"from oslo_service import service"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_e3ef4b84","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":21},"in_reply_to":"9f560f44_2ad91855","updated":"2020-09-25 07:07:58.000000000","message":"thanks for that.. sorry for a mistake","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from glance_store import exceptions as store_exceptions"},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"},{"line_number":31,"context_line":"import oslo_messaging"},{"line_number":32,"context_line":"from oslo_serialization import jsonutils"},{"line_number":33,"context_line":"from oslo_service import periodic_task"},{"line_number":34,"context_line":"from oslo_service import service"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_03e99f7d","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":21},"in_reply_to":"9f560f44_ad1702ee","updated":"2020-09-25 07:07:58.000000000","message":"sorry for a mistake..","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":658,"context_line":"        except Exception as e:"},{"line_number":659,"context_line":"            LOG.warn(\"Internal Sever Error[%s]\" % str(e))"},{"line_number":660,"context_line":"            LOG.warn(traceback.format_exc())"},{"line_number":661,"context_line":"            return 99"},{"line_number":662,"context_line":"        return 0"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    @coordination.synchronized(\u0027{vnf_instance[id]}\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_95ddfc6e","line":661,"range":{"start_line":661,"start_character":12,"end_line":661,"end_character":21},"updated":"2020-09-24 07:02:02.000000000","message":"why it is returning 99 here? is this have some special meaning?","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":658,"context_line":"        except Exception as e:"},{"line_number":659,"context_line":"            LOG.warn(\"Internal Sever Error[%s]\" % str(e))"},{"line_number":660,"context_line":"            LOG.warn(traceback.format_exc())"},{"line_number":661,"context_line":"            return 99"},{"line_number":662,"context_line":"        return 0"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    @coordination.synchronized(\u0027{vnf_instance[id]}\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_0d838e04","line":661,"range":{"start_line":661,"start_character":12,"end_line":661,"end_character":21},"in_reply_to":"9f560f44_95ddfc6e","updated":"2020-09-25 06:10:27.000000000","message":"This change is derived from 746892. This value means this route is illegal one.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"}],"tacker/objects/vnf_lcm_subscriptions.py":[{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    result_line \u003d \"\""},{"line_number":115,"context_line":"    try:"},{"line_number":116,"context_line":"        result \u003d context.session.execute(sql, {\u0027subsc_id\u0027: subscriptionId})"},{"line_number":117,"context_line":"        for line in result:"},{"line_number":118,"context_line":"            result_line \u003d line"},{"line_number":119,"context_line":"    except exceptions.NotFound:"},{"line_number":120,"context_line":"        return \u0027\u0027"},{"line_number":121,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_b569208d","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":30},"updated":"2020-09-24 07:02:02.000000000","message":"will this logic overwrite at each line if result have multiple line value?\nor are you willing to change return the last line of result?","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    result_line \u003d \"\""},{"line_number":115,"context_line":"    try:"},{"line_number":116,"context_line":"        result \u003d context.session.execute(sql, {\u0027subsc_id\u0027: subscriptionId})"},{"line_number":117,"context_line":"        for line in result:"},{"line_number":118,"context_line":"            result_line \u003d line"},{"line_number":119,"context_line":"    except exceptions.NotFound:"},{"line_number":120,"context_line":"        return \u0027\u0027"},{"line_number":121,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_cd087692","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":30},"in_reply_to":"9f560f44_b569208d","updated":"2020-09-25 06:10:27.000000000","message":"This indicates changing return the last line of result.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    result_line \u003d \"\""},{"line_number":115,"context_line":"    try:"},{"line_number":116,"context_line":"        result \u003d context.session.execute(sql, {\u0027subsc_id\u0027: subscriptionId})"},{"line_number":117,"context_line":"        for line in result:"},{"line_number":118,"context_line":"            result_line \u003d line"},{"line_number":119,"context_line":"    except exceptions.NotFound:"},{"line_number":120,"context_line":"        return \u0027\u0027"},{"line_number":121,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_a38ef3cd","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":30},"in_reply_to":"9f560f44_cd087692","updated":"2020-09-25 07:07:58.000000000","message":"got it, thanks","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    try:"},{"line_number":198,"context_line":"        result \u003d context.session.execute(sql)"},{"line_number":199,"context_line":"        for line in result:"},{"line_number":200,"context_line":"            return line"},{"line_number":201,"context_line":"    except exceptions.NotFound:"},{"line_number":202,"context_line":"        return \u0027\u0027"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_95f97cc6","line":200,"range":{"start_line":199,"start_character":0,"end_line":200,"end_character":23},"updated":"2020-09-24 07:02:02.000000000","message":"why are you returning line using for loop? this seems to return the first line in result, but there may have some better way to solve that.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    try:"},{"line_number":198,"context_line":"        result \u003d context.session.execute(sql)"},{"line_number":199,"context_line":"        for line in result:"},{"line_number":200,"context_line":"            return line"},{"line_number":201,"context_line":"    except exceptions.NotFound:"},{"line_number":202,"context_line":"        return \u0027\u0027"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_0d826ec7","line":200,"range":{"start_line":199,"start_character":0,"end_line":200,"end_character":23},"in_reply_to":"9f560f44_95f97cc6","updated":"2020-09-25 06:10:27.000000000","message":"This was fixed in 746892.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        updates \u003d self.obj_clone()"},{"line_number":292,"context_line":"        db_vnf_lcm_subscriptions \u003d _vnf_lcm_subscriptions_create("},{"line_number":293,"context_line":"            self._context, updates, filter)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug("},{"line_number":296,"context_line":"            \u0027test_log: db_vnf_lcm_subscriptions %s\u0027 %"},{"line_number":297,"context_line":"            db_vnf_lcm_subscriptions)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        return db_vnf_lcm_subscriptions"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_7521484d","line":297,"range":{"start_line":294,"start_character":0,"end_line":297,"end_character":37},"updated":"2020-09-24 07:02:02.000000000","message":"are you forget to delete this test log?","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        updates \u003d self.obj_clone()"},{"line_number":292,"context_line":"        db_vnf_lcm_subscriptions \u003d _vnf_lcm_subscriptions_create("},{"line_number":293,"context_line":"            self._context, updates, filter)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug("},{"line_number":296,"context_line":"            \u0027test_log: db_vnf_lcm_subscriptions %s\u0027 %"},{"line_number":297,"context_line":"            db_vnf_lcm_subscriptions)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        return db_vnf_lcm_subscriptions"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_ad726210","line":297,"range":{"start_line":294,"start_character":0,"end_line":297,"end_character":37},"in_reply_to":"9f560f44_7521484d","updated":"2020-09-25 06:10:27.000000000","message":"Deleted in 746892.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        updates \u003d self.obj_clone()"},{"line_number":292,"context_line":"        db_vnf_lcm_subscriptions \u003d _vnf_lcm_subscriptions_create("},{"line_number":293,"context_line":"            self._context, updates, filter)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug("},{"line_number":296,"context_line":"            \u0027test_log: db_vnf_lcm_subscriptions %s\u0027 %"},{"line_number":297,"context_line":"            db_vnf_lcm_subscriptions)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        return db_vnf_lcm_subscriptions"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_e3946bea","line":297,"range":{"start_line":294,"start_character":0,"end_line":297,"end_character":37},"in_reply_to":"9f560f44_ad726210","updated":"2020-09-25 07:07:58.000000000","message":"Confirmed, thanks","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"}],"tacker/tests/unit/test_auth.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"dba1ebabfc05e2178d532eb1912d01c9afcc9a25","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from oslo_middleware import request_id"},{"line_number":19,"context_line":"import requests"},{"line_number":20,"context_line":"from tacker import auth"},{"line_number":21,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":22,"context_line":"from tacker.tests import base"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import threading"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_9b96c64b","line":21,"updated":"2020-08-25 11:38:30.000000000","message":"pep8: H306: imports not in alphabetical order (tacker.auth, requests_mock.contrib.fixture)","commit_id":"e8a326520e2bea0713e8f33a495f806b3bfa945d"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ddt"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":"from oslo_middleware import request_id"},{"line_number":19,"context_line":"import requests"},{"line_number":20,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":21,"context_line":"from tacker import auth"},{"line_number":22,"context_line":"from tacker.tests import base"},{"line_number":23,"context_line":"import tacker.tests.unit.vnfm.test_nfvo_client as nfvo_client"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import threading"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from tacker.tests import uuidsentinel"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_log import log as logging"},{"line_number":30,"context_line":"from unittest import mock"},{"line_number":31,"context_line":"import webob"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_f58ef824","line":31,"range":{"start_line":16,"start_character":0,"end_line":31,"end_character":12},"updated":"2020-09-24 07:02:02.000000000","message":"the order of import may should be sorted as other file:\nimport ...\nimport ...\n\n\nfrom ... import ...\nfrom ... import ...","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ddt"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":"from oslo_middleware import request_id"},{"line_number":19,"context_line":"import requests"},{"line_number":20,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":21,"context_line":"from tacker import auth"},{"line_number":22,"context_line":"from tacker.tests import base"},{"line_number":23,"context_line":"import tacker.tests.unit.vnfm.test_nfvo_client as nfvo_client"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import threading"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from tacker.tests import uuidsentinel"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_log import log as logging"},{"line_number":30,"context_line":"from unittest import mock"},{"line_number":31,"context_line":"import webob"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_03b7df86","line":31,"range":{"start_line":16,"start_character":0,"end_line":31,"end_character":12},"in_reply_to":"9f560f44_2dcdb22f","updated":"2020-09-25 07:07:58.000000000","message":"got it","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ddt"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":"from oslo_middleware import request_id"},{"line_number":19,"context_line":"import requests"},{"line_number":20,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":21,"context_line":"from tacker import auth"},{"line_number":22,"context_line":"from tacker.tests import base"},{"line_number":23,"context_line":"import tacker.tests.unit.vnfm.test_nfvo_client as nfvo_client"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import threading"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from tacker.tests import uuidsentinel"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_log import log as logging"},{"line_number":30,"context_line":"from unittest import mock"},{"line_number":31,"context_line":"import webob"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_2dcdb22f","line":31,"range":{"start_line":16,"start_character":0,"end_line":31,"end_character":12},"in_reply_to":"9f560f44_f58ef824","updated":"2020-09-25 06:10:27.000000000","message":"It will violate pep8 if sorted as you suggested, so left as they are.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"}],"tacker/tests/unit/vnfm/test_nfvo_client.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"dba1ebabfc05e2178d532eb1912d01c9afcc9a25","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":28,"context_line":"from tacker.tests import base"},{"line_number":29,"context_line":"from tacker import auth"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from tacker.tests.unit.vnfpkgm import fakes"},{"line_number":32,"context_line":"from tacker.tests import uuidsentinel"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_7b913252","line":29,"updated":"2020-08-25 11:38:30.000000000","message":"pep8: H306: imports not in alphabetical order (tacker.tests.base, tacker.auth)","commit_id":"e8a326520e2bea0713e8f33a495f806b3bfa945d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"dba1ebabfc05e2178d532eb1912d01c9afcc9a25","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from tacker.tests.unit.vnfpkgm import fakes"},{"line_number":32,"context_line":"from tacker.tests import uuidsentinel"},{"line_number":33,"context_line":"from tacker.vnfm.nfvo_client import FaliedDownloadContentException"},{"line_number":34,"context_line":"from tacker.vnfm.nfvo_client import _Connect"},{"line_number":35,"context_line":"from tacker.vnfm.nfvo_client import GrantRequest"},{"line_number":36,"context_line":"from tacker.vnfm.nfvo_client import UndefinedExternalSettingException"},{"line_number":37,"context_line":"from tacker.vnfm.nfvo_client import VnfPackageRequest"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_db9cbe6b","line":34,"updated":"2020-08-25 11:38:30.000000000","message":"pep8: H306: imports not in alphabetical order (tacker.vnfm.nfvo_client.falieddownloadcontentexception, tacker.vnfm.nfvo_client._connect)","commit_id":"e8a326520e2bea0713e8f33a495f806b3bfa945d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d5d688e6fa23abacc7a34d8194a4d599345f59f2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        self.assertEqual(20, cfg.CONF.connect_vnf_packages.timeout)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def _make_zip_file_from_sample(self, dir_name, read_vnfd_only\u003dFalse):"},{"line_number":130,"context_line":"        unique_name \u003d str(uuid.uuid4())"},{"line_number":131,"context_line":"        temp_dir \u003d os.path.join(\u0027/tmp\u0027, unique_name)"},{"line_number":132,"context_line":"        utils.copy_csar_files(temp_dir, dir_name, read_vnfd_only)"},{"line_number":133,"context_line":"        tempfd, temp_filepath \u003d tempfile.mkstemp(suffix\u003d\".zip\", dir\u003dtemp_dir)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_82217250","line":130,"updated":"2020-09-07 17:15:13.000000000","message":"pep8: F821 undefined name \u0027uuid\u0027","commit_id":"f50d3db22f9e574bebaa522606265173d09f3066"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d5d688e6fa23abacc7a34d8194a4d599345f59f2","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        unique_name \u003d str(uuid.uuid4())"},{"line_number":131,"context_line":"        temp_dir \u003d os.path.join(\u0027/tmp\u0027, unique_name)"},{"line_number":132,"context_line":"        utils.copy_csar_files(temp_dir, dir_name, read_vnfd_only)"},{"line_number":133,"context_line":"        tempfd, temp_filepath \u003d tempfile.mkstemp(suffix\u003d\".zip\", dir\u003dtemp_dir)"},{"line_number":134,"context_line":"        os.close(tempfd)"},{"line_number":135,"context_line":"        zipfile.ZipFile(temp_filepath, \u0027w\u0027)"},{"line_number":136,"context_line":"        self.addCleanup(shutil.rmtree, temp_dir)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_621ede0c","line":133,"updated":"2020-09-07 17:15:13.000000000","message":"pep8: F821 undefined name \u0027tempfile\u0027","commit_id":"f50d3db22f9e574bebaa522606265173d09f3066"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d5d688e6fa23abacc7a34d8194a4d599345f59f2","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        tempfd, temp_filepath \u003d tempfile.mkstemp(suffix\u003d\".zip\", dir\u003dtemp_dir)"},{"line_number":134,"context_line":"        os.close(tempfd)"},{"line_number":135,"context_line":"        zipfile.ZipFile(temp_filepath, \u0027w\u0027)"},{"line_number":136,"context_line":"        self.addCleanup(shutil.rmtree, temp_dir)"},{"line_number":137,"context_line":"        return temp_filepath"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @ddt.data({\u0027content\u0027: \u0027vnfpkgm1\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_c217eaed","line":136,"updated":"2020-09-07 17:15:13.000000000","message":"pep8: F821 undefined name \u0027shutil\u0027","commit_id":"f50d3db22f9e574bebaa522606265173d09f3066"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":"import zipfile"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import ddt"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":28,"context_line":"from tacker import auth"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_f5bb98e1","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":10},"updated":"2020-09-24 07:02:02.000000000","message":"better to move L24","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":"import zipfile"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import ddt"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":28,"context_line":"from tacker import auth"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_e3bd8b68","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":10},"in_reply_to":"9f560f44_0dd0aec7","updated":"2020-09-25 07:07:58.000000000","message":"got it","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":"import zipfile"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import ddt"},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from requests_mock.contrib import fixture as requests_mock_fixture"},{"line_number":28,"context_line":"from tacker import auth"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_0dd0aec7","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":10},"in_reply_to":"9f560f44_f5bb98e1","updated":"2020-09-25 06:10:27.000000000","message":"It will violate pep8 if moved, so left as it is.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":388,"context_line":"        pipelines \u003d []"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        content \u003d \u0027sample_vnf_package_content.zip\u0027"},{"line_number":391,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":392,"context_line":"        pipelines.append(\u0027package_content\u0027)"},{"line_number":393,"context_line":"        path \u003d os.path.join(self.test_package_dir, content)"},{"line_number":394,"context_line":"        with open(path, \u0027rb\u0027) as test_package_content_zip_obj:"},{"line_number":395,"context_line":"            expected_package_content_zip \u003d zipfile.ZipFile("},{"line_number":396,"context_line":"                io.BytesIO(test_package_content_zip_obj.read()))"},{"line_number":397,"context_line":"            test_package_content_zip_obj.seek(0)"},{"line_number":398,"context_line":"            self.requests_mock.register_uri("},{"line_number":399,"context_line":"                \u0027GET\u0027,"},{"line_number":400,"context_line":"                os.path.join("},{"line_number":401,"context_line":"                    fetch_base_url,"},{"line_number":402,"context_line":"                    \u0027package_content\u0027),"},{"line_number":403,"context_line":"                content\u003dtest_package_content_zip_obj.read(),"},{"line_number":404,"context_line":"                headers\u003d{"},{"line_number":405,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":406,"context_line":"                status_code\u003d200)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        vnfd \u003d \u0027sample_vnf_package_vnfd.zip\u0027"},{"line_number":409,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":410,"context_line":"        pipelines.append(\u0027vnfd\u0027)"},{"line_number":411,"context_line":"        path \u003d os.path.join(self.test_package_dir, vnfd)"},{"line_number":412,"context_line":"        with open(path, \u0027rb\u0027) as test_vnfd_zip_obj:"},{"line_number":413,"context_line":"            expected_vnfd_zip \u003d zipfile.ZipFile("},{"line_number":414,"context_line":"                io.BytesIO(test_vnfd_zip_obj.read()))"},{"line_number":415,"context_line":"            test_vnfd_zip_obj.seek(0)"},{"line_number":416,"context_line":"            self.requests_mock.register_uri("},{"line_number":417,"context_line":"                \u0027GET\u0027,"},{"line_number":418,"context_line":"                os.path.join("},{"line_number":419,"context_line":"                    fetch_base_url,"},{"line_number":420,"context_line":"                    \u0027vnfd\u0027),"},{"line_number":421,"context_line":"                content\u003dtest_vnfd_zip_obj.read(),"},{"line_number":422,"context_line":"                headers\u003d{"},{"line_number":423,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":424,"context_line":"                status_code\u003d200)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        artifacts \u003d [\"sample_vnf_package_artifact.yaml\"]"},{"line_number":427,"context_line":"        pipelines.append(\u0027artifacts\u0027)"},{"line_number":428,"context_line":"        artifacts \u003d [os.path.join(self.test_package_dir, p)"},{"line_number":429,"context_line":"                     for p in artifacts]"},{"line_number":430,"context_line":"        for artifact_path in artifacts:"},{"line_number":431,"context_line":"            expected_connect_cnt +\u003d 1"},{"line_number":432,"context_line":"            with open(artifact_path, \u0027rb\u0027) as artifact_path_obj:"},{"line_number":433,"context_line":"                self.requests_mock.register_uri("},{"line_number":434,"context_line":"                    \u0027GET\u0027,"},{"line_number":435,"context_line":"                    os.path.join("},{"line_number":436,"context_line":"                        fetch_base_url,"},{"line_number":437,"context_line":"                        \u0027artifacts\u0027,"},{"line_number":438,"context_line":"                        artifact_path),"},{"line_number":439,"context_line":"                    headers\u003d{"},{"line_number":440,"context_line":"                        \u0027Content-Type\u0027: \u0027application/octet-stream\u0027},"},{"line_number":441,"context_line":"                    status_code\u003d200,"},{"line_number":442,"context_line":"                    content\u003dartifact_path_obj.read())"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        cfg.CONF.set_default("},{"line_number":445,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":446,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":447,"context_line":"            default\u003dpipelines)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        res \u003d nfvo_client.VnfPackageRequest.download_vnf_packages("},{"line_number":450,"context_line":"            uuidsentinel.vnf_pkg_id, artifacts)"},{"line_number":451,"context_line":"        self.assertIsInstance(res, io.BytesIO)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        actual_zip \u003d zipfile.ZipFile(res)"},{"line_number":454,"context_line":"        self.assert_zipfile("},{"line_number":455,"context_line":"            actual_zip, ["},{"line_number":456,"context_line":"                expected_package_content_zip,"},{"line_number":457,"context_line":"                expected_vnfd_zip], artifacts)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":460,"context_line":"        req_count \u003d _count_mock_history(history, self.nfvo_url, self.oauth_url)"},{"line_number":461,"context_line":"        self.assertEqual(expected_connect_cnt, req_count)"},{"line_number":462,"context_line":"        self.assert_auth_basic(history[0])"},{"line_number":463,"context_line":"        for h in history[1:]:"},{"line_number":464,"context_line":"            self.assert_auth_client_credentials(h, \"test_token\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_95c05c4c","line":461,"range":{"start_line":390,"start_character":2,"end_line":461,"end_character":57},"updated":"2020-09-24 07:02:02.000000000","message":"seems dupulicate with L290-361, maybe better to write a funtion and call it twice.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"13fd7ed0550a17a9db98c2cb5225022e9e26ca3f","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":388,"context_line":"        pipelines \u003d []"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        content \u003d \u0027sample_vnf_package_content.zip\u0027"},{"line_number":391,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":392,"context_line":"        pipelines.append(\u0027package_content\u0027)"},{"line_number":393,"context_line":"        path \u003d os.path.join(self.test_package_dir, content)"},{"line_number":394,"context_line":"        with open(path, \u0027rb\u0027) as test_package_content_zip_obj:"},{"line_number":395,"context_line":"            expected_package_content_zip \u003d zipfile.ZipFile("},{"line_number":396,"context_line":"                io.BytesIO(test_package_content_zip_obj.read()))"},{"line_number":397,"context_line":"            test_package_content_zip_obj.seek(0)"},{"line_number":398,"context_line":"            self.requests_mock.register_uri("},{"line_number":399,"context_line":"                \u0027GET\u0027,"},{"line_number":400,"context_line":"                os.path.join("},{"line_number":401,"context_line":"                    fetch_base_url,"},{"line_number":402,"context_line":"                    \u0027package_content\u0027),"},{"line_number":403,"context_line":"                content\u003dtest_package_content_zip_obj.read(),"},{"line_number":404,"context_line":"                headers\u003d{"},{"line_number":405,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":406,"context_line":"                status_code\u003d200)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        vnfd \u003d \u0027sample_vnf_package_vnfd.zip\u0027"},{"line_number":409,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":410,"context_line":"        pipelines.append(\u0027vnfd\u0027)"},{"line_number":411,"context_line":"        path \u003d os.path.join(self.test_package_dir, vnfd)"},{"line_number":412,"context_line":"        with open(path, \u0027rb\u0027) as test_vnfd_zip_obj:"},{"line_number":413,"context_line":"            expected_vnfd_zip \u003d zipfile.ZipFile("},{"line_number":414,"context_line":"                io.BytesIO(test_vnfd_zip_obj.read()))"},{"line_number":415,"context_line":"            test_vnfd_zip_obj.seek(0)"},{"line_number":416,"context_line":"            self.requests_mock.register_uri("},{"line_number":417,"context_line":"                \u0027GET\u0027,"},{"line_number":418,"context_line":"                os.path.join("},{"line_number":419,"context_line":"                    fetch_base_url,"},{"line_number":420,"context_line":"                    \u0027vnfd\u0027),"},{"line_number":421,"context_line":"                content\u003dtest_vnfd_zip_obj.read(),"},{"line_number":422,"context_line":"                headers\u003d{"},{"line_number":423,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":424,"context_line":"                status_code\u003d200)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        artifacts \u003d [\"sample_vnf_package_artifact.yaml\"]"},{"line_number":427,"context_line":"        pipelines.append(\u0027artifacts\u0027)"},{"line_number":428,"context_line":"        artifacts \u003d [os.path.join(self.test_package_dir, p)"},{"line_number":429,"context_line":"                     for p in artifacts]"},{"line_number":430,"context_line":"        for artifact_path in artifacts:"},{"line_number":431,"context_line":"            expected_connect_cnt +\u003d 1"},{"line_number":432,"context_line":"            with open(artifact_path, \u0027rb\u0027) as artifact_path_obj:"},{"line_number":433,"context_line":"                self.requests_mock.register_uri("},{"line_number":434,"context_line":"                    \u0027GET\u0027,"},{"line_number":435,"context_line":"                    os.path.join("},{"line_number":436,"context_line":"                        fetch_base_url,"},{"line_number":437,"context_line":"                        \u0027artifacts\u0027,"},{"line_number":438,"context_line":"                        artifact_path),"},{"line_number":439,"context_line":"                    headers\u003d{"},{"line_number":440,"context_line":"                        \u0027Content-Type\u0027: \u0027application/octet-stream\u0027},"},{"line_number":441,"context_line":"                    status_code\u003d200,"},{"line_number":442,"context_line":"                    content\u003dartifact_path_obj.read())"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        cfg.CONF.set_default("},{"line_number":445,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":446,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":447,"context_line":"            default\u003dpipelines)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        res \u003d nfvo_client.VnfPackageRequest.download_vnf_packages("},{"line_number":450,"context_line":"            uuidsentinel.vnf_pkg_id, artifacts)"},{"line_number":451,"context_line":"        self.assertIsInstance(res, io.BytesIO)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        actual_zip \u003d zipfile.ZipFile(res)"},{"line_number":454,"context_line":"        self.assert_zipfile("},{"line_number":455,"context_line":"            actual_zip, ["},{"line_number":456,"context_line":"                expected_package_content_zip,"},{"line_number":457,"context_line":"                expected_vnfd_zip], artifacts)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":460,"context_line":"        req_count \u003d _count_mock_history(history, self.nfvo_url, self.oauth_url)"},{"line_number":461,"context_line":"        self.assertEqual(expected_connect_cnt, req_count)"},{"line_number":462,"context_line":"        self.assert_auth_basic(history[0])"},{"line_number":463,"context_line":"        for h in history[1:]:"},{"line_number":464,"context_line":"            self.assert_auth_client_credentials(h, \"test_token\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_63d05bf8","line":461,"range":{"start_line":390,"start_character":2,"end_line":461,"end_character":57},"in_reply_to":"9f560f44_4dfe2638","updated":"2020-09-25 07:07:58.000000000","message":"Confirmed! thanks for fix!","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"360cab9f17bb2707a0b021bf31e1b15791652d8d","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":388,"context_line":"        pipelines \u003d []"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        content \u003d \u0027sample_vnf_package_content.zip\u0027"},{"line_number":391,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":392,"context_line":"        pipelines.append(\u0027package_content\u0027)"},{"line_number":393,"context_line":"        path \u003d os.path.join(self.test_package_dir, content)"},{"line_number":394,"context_line":"        with open(path, \u0027rb\u0027) as test_package_content_zip_obj:"},{"line_number":395,"context_line":"            expected_package_content_zip \u003d zipfile.ZipFile("},{"line_number":396,"context_line":"                io.BytesIO(test_package_content_zip_obj.read()))"},{"line_number":397,"context_line":"            test_package_content_zip_obj.seek(0)"},{"line_number":398,"context_line":"            self.requests_mock.register_uri("},{"line_number":399,"context_line":"                \u0027GET\u0027,"},{"line_number":400,"context_line":"                os.path.join("},{"line_number":401,"context_line":"                    fetch_base_url,"},{"line_number":402,"context_line":"                    \u0027package_content\u0027),"},{"line_number":403,"context_line":"                content\u003dtest_package_content_zip_obj.read(),"},{"line_number":404,"context_line":"                headers\u003d{"},{"line_number":405,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":406,"context_line":"                status_code\u003d200)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        vnfd \u003d \u0027sample_vnf_package_vnfd.zip\u0027"},{"line_number":409,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":410,"context_line":"        pipelines.append(\u0027vnfd\u0027)"},{"line_number":411,"context_line":"        path \u003d os.path.join(self.test_package_dir, vnfd)"},{"line_number":412,"context_line":"        with open(path, \u0027rb\u0027) as test_vnfd_zip_obj:"},{"line_number":413,"context_line":"            expected_vnfd_zip \u003d zipfile.ZipFile("},{"line_number":414,"context_line":"                io.BytesIO(test_vnfd_zip_obj.read()))"},{"line_number":415,"context_line":"            test_vnfd_zip_obj.seek(0)"},{"line_number":416,"context_line":"            self.requests_mock.register_uri("},{"line_number":417,"context_line":"                \u0027GET\u0027,"},{"line_number":418,"context_line":"                os.path.join("},{"line_number":419,"context_line":"                    fetch_base_url,"},{"line_number":420,"context_line":"                    \u0027vnfd\u0027),"},{"line_number":421,"context_line":"                content\u003dtest_vnfd_zip_obj.read(),"},{"line_number":422,"context_line":"                headers\u003d{"},{"line_number":423,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":424,"context_line":"                status_code\u003d200)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        artifacts \u003d [\"sample_vnf_package_artifact.yaml\"]"},{"line_number":427,"context_line":"        pipelines.append(\u0027artifacts\u0027)"},{"line_number":428,"context_line":"        artifacts \u003d [os.path.join(self.test_package_dir, p)"},{"line_number":429,"context_line":"                     for p in artifacts]"},{"line_number":430,"context_line":"        for artifact_path in artifacts:"},{"line_number":431,"context_line":"            expected_connect_cnt +\u003d 1"},{"line_number":432,"context_line":"            with open(artifact_path, \u0027rb\u0027) as artifact_path_obj:"},{"line_number":433,"context_line":"                self.requests_mock.register_uri("},{"line_number":434,"context_line":"                    \u0027GET\u0027,"},{"line_number":435,"context_line":"                    os.path.join("},{"line_number":436,"context_line":"                        fetch_base_url,"},{"line_number":437,"context_line":"                        \u0027artifacts\u0027,"},{"line_number":438,"context_line":"                        artifact_path),"},{"line_number":439,"context_line":"                    headers\u003d{"},{"line_number":440,"context_line":"                        \u0027Content-Type\u0027: \u0027application/octet-stream\u0027},"},{"line_number":441,"context_line":"                    status_code\u003d200,"},{"line_number":442,"context_line":"                    content\u003dartifact_path_obj.read())"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        cfg.CONF.set_default("},{"line_number":445,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":446,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":447,"context_line":"            default\u003dpipelines)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        res \u003d nfvo_client.VnfPackageRequest.download_vnf_packages("},{"line_number":450,"context_line":"            uuidsentinel.vnf_pkg_id, artifacts)"},{"line_number":451,"context_line":"        self.assertIsInstance(res, io.BytesIO)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        actual_zip \u003d zipfile.ZipFile(res)"},{"line_number":454,"context_line":"        self.assert_zipfile("},{"line_number":455,"context_line":"            actual_zip, ["},{"line_number":456,"context_line":"                expected_package_content_zip,"},{"line_number":457,"context_line":"                expected_vnfd_zip], artifacts)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":460,"context_line":"        req_count \u003d _count_mock_history(history, self.nfvo_url, self.oauth_url)"},{"line_number":461,"context_line":"        self.assertEqual(expected_connect_cnt, req_count)"},{"line_number":462,"context_line":"        self.assert_auth_basic(history[0])"},{"line_number":463,"context_line":"        for h in history[1:]:"},{"line_number":464,"context_line":"            self.assert_auth_client_credentials(h, \"test_token\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_caba1cbe","line":461,"range":{"start_line":390,"start_character":2,"end_line":461,"end_character":57},"in_reply_to":"9f560f44_95c05c4c","updated":"2020-09-25 03:06:08.000000000","message":"Good suggestion. Let us think of it as a TODO of refactoring. Just now, it\u0027s only one more part duplicated, so not so serious considering to include RC1 release. What do you think, LiangLu?","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"345b0682d3eb55172546ca15dd268a176cf1f253","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":388,"context_line":"        pipelines \u003d []"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        content \u003d \u0027sample_vnf_package_content.zip\u0027"},{"line_number":391,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":392,"context_line":"        pipelines.append(\u0027package_content\u0027)"},{"line_number":393,"context_line":"        path \u003d os.path.join(self.test_package_dir, content)"},{"line_number":394,"context_line":"        with open(path, \u0027rb\u0027) as test_package_content_zip_obj:"},{"line_number":395,"context_line":"            expected_package_content_zip \u003d zipfile.ZipFile("},{"line_number":396,"context_line":"                io.BytesIO(test_package_content_zip_obj.read()))"},{"line_number":397,"context_line":"            test_package_content_zip_obj.seek(0)"},{"line_number":398,"context_line":"            self.requests_mock.register_uri("},{"line_number":399,"context_line":"                \u0027GET\u0027,"},{"line_number":400,"context_line":"                os.path.join("},{"line_number":401,"context_line":"                    fetch_base_url,"},{"line_number":402,"context_line":"                    \u0027package_content\u0027),"},{"line_number":403,"context_line":"                content\u003dtest_package_content_zip_obj.read(),"},{"line_number":404,"context_line":"                headers\u003d{"},{"line_number":405,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":406,"context_line":"                status_code\u003d200)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        vnfd \u003d \u0027sample_vnf_package_vnfd.zip\u0027"},{"line_number":409,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":410,"context_line":"        pipelines.append(\u0027vnfd\u0027)"},{"line_number":411,"context_line":"        path \u003d os.path.join(self.test_package_dir, vnfd)"},{"line_number":412,"context_line":"        with open(path, \u0027rb\u0027) as test_vnfd_zip_obj:"},{"line_number":413,"context_line":"            expected_vnfd_zip \u003d zipfile.ZipFile("},{"line_number":414,"context_line":"                io.BytesIO(test_vnfd_zip_obj.read()))"},{"line_number":415,"context_line":"            test_vnfd_zip_obj.seek(0)"},{"line_number":416,"context_line":"            self.requests_mock.register_uri("},{"line_number":417,"context_line":"                \u0027GET\u0027,"},{"line_number":418,"context_line":"                os.path.join("},{"line_number":419,"context_line":"                    fetch_base_url,"},{"line_number":420,"context_line":"                    \u0027vnfd\u0027),"},{"line_number":421,"context_line":"                content\u003dtest_vnfd_zip_obj.read(),"},{"line_number":422,"context_line":"                headers\u003d{"},{"line_number":423,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":424,"context_line":"                status_code\u003d200)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        artifacts \u003d [\"sample_vnf_package_artifact.yaml\"]"},{"line_number":427,"context_line":"        pipelines.append(\u0027artifacts\u0027)"},{"line_number":428,"context_line":"        artifacts \u003d [os.path.join(self.test_package_dir, p)"},{"line_number":429,"context_line":"                     for p in artifacts]"},{"line_number":430,"context_line":"        for artifact_path in artifacts:"},{"line_number":431,"context_line":"            expected_connect_cnt +\u003d 1"},{"line_number":432,"context_line":"            with open(artifact_path, \u0027rb\u0027) as artifact_path_obj:"},{"line_number":433,"context_line":"                self.requests_mock.register_uri("},{"line_number":434,"context_line":"                    \u0027GET\u0027,"},{"line_number":435,"context_line":"                    os.path.join("},{"line_number":436,"context_line":"                        fetch_base_url,"},{"line_number":437,"context_line":"                        \u0027artifacts\u0027,"},{"line_number":438,"context_line":"                        artifact_path),"},{"line_number":439,"context_line":"                    headers\u003d{"},{"line_number":440,"context_line":"                        \u0027Content-Type\u0027: \u0027application/octet-stream\u0027},"},{"line_number":441,"context_line":"                    status_code\u003d200,"},{"line_number":442,"context_line":"                    content\u003dartifact_path_obj.read())"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        cfg.CONF.set_default("},{"line_number":445,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":446,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":447,"context_line":"            default\u003dpipelines)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        res \u003d nfvo_client.VnfPackageRequest.download_vnf_packages("},{"line_number":450,"context_line":"            uuidsentinel.vnf_pkg_id, artifacts)"},{"line_number":451,"context_line":"        self.assertIsInstance(res, io.BytesIO)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        actual_zip \u003d zipfile.ZipFile(res)"},{"line_number":454,"context_line":"        self.assert_zipfile("},{"line_number":455,"context_line":"            actual_zip, ["},{"line_number":456,"context_line":"                expected_package_content_zip,"},{"line_number":457,"context_line":"                expected_vnfd_zip], artifacts)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":460,"context_line":"        req_count \u003d _count_mock_history(history, self.nfvo_url, self.oauth_url)"},{"line_number":461,"context_line":"        self.assertEqual(expected_connect_cnt, req_count)"},{"line_number":462,"context_line":"        self.assert_auth_basic(history[0])"},{"line_number":463,"context_line":"        for h in history[1:]:"},{"line_number":464,"context_line":"            self.assert_auth_client_credentials(h, \"test_token\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_4dfe2638","line":461,"range":{"start_line":390,"start_character":2,"end_line":461,"end_character":57},"in_reply_to":"9f560f44_aaf9a84e","updated":"2020-09-25 06:10:27.000000000","message":"Thank you for suggesting, but we already modified it. Please check again.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"7f1f6e52538b8b43ec20fcee1b3edb6d8a3a5813","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":388,"context_line":"        pipelines \u003d []"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        content \u003d \u0027sample_vnf_package_content.zip\u0027"},{"line_number":391,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":392,"context_line":"        pipelines.append(\u0027package_content\u0027)"},{"line_number":393,"context_line":"        path \u003d os.path.join(self.test_package_dir, content)"},{"line_number":394,"context_line":"        with open(path, \u0027rb\u0027) as test_package_content_zip_obj:"},{"line_number":395,"context_line":"            expected_package_content_zip \u003d zipfile.ZipFile("},{"line_number":396,"context_line":"                io.BytesIO(test_package_content_zip_obj.read()))"},{"line_number":397,"context_line":"            test_package_content_zip_obj.seek(0)"},{"line_number":398,"context_line":"            self.requests_mock.register_uri("},{"line_number":399,"context_line":"                \u0027GET\u0027,"},{"line_number":400,"context_line":"                os.path.join("},{"line_number":401,"context_line":"                    fetch_base_url,"},{"line_number":402,"context_line":"                    \u0027package_content\u0027),"},{"line_number":403,"context_line":"                content\u003dtest_package_content_zip_obj.read(),"},{"line_number":404,"context_line":"                headers\u003d{"},{"line_number":405,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":406,"context_line":"                status_code\u003d200)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        vnfd \u003d \u0027sample_vnf_package_vnfd.zip\u0027"},{"line_number":409,"context_line":"        expected_connect_cnt +\u003d 1"},{"line_number":410,"context_line":"        pipelines.append(\u0027vnfd\u0027)"},{"line_number":411,"context_line":"        path \u003d os.path.join(self.test_package_dir, vnfd)"},{"line_number":412,"context_line":"        with open(path, \u0027rb\u0027) as test_vnfd_zip_obj:"},{"line_number":413,"context_line":"            expected_vnfd_zip \u003d zipfile.ZipFile("},{"line_number":414,"context_line":"                io.BytesIO(test_vnfd_zip_obj.read()))"},{"line_number":415,"context_line":"            test_vnfd_zip_obj.seek(0)"},{"line_number":416,"context_line":"            self.requests_mock.register_uri("},{"line_number":417,"context_line":"                \u0027GET\u0027,"},{"line_number":418,"context_line":"                os.path.join("},{"line_number":419,"context_line":"                    fetch_base_url,"},{"line_number":420,"context_line":"                    \u0027vnfd\u0027),"},{"line_number":421,"context_line":"                content\u003dtest_vnfd_zip_obj.read(),"},{"line_number":422,"context_line":"                headers\u003d{"},{"line_number":423,"context_line":"                    \u0027Content-Type\u0027: \u0027application/zip\u0027},"},{"line_number":424,"context_line":"                status_code\u003d200)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        artifacts \u003d [\"sample_vnf_package_artifact.yaml\"]"},{"line_number":427,"context_line":"        pipelines.append(\u0027artifacts\u0027)"},{"line_number":428,"context_line":"        artifacts \u003d [os.path.join(self.test_package_dir, p)"},{"line_number":429,"context_line":"                     for p in artifacts]"},{"line_number":430,"context_line":"        for artifact_path in artifacts:"},{"line_number":431,"context_line":"            expected_connect_cnt +\u003d 1"},{"line_number":432,"context_line":"            with open(artifact_path, \u0027rb\u0027) as artifact_path_obj:"},{"line_number":433,"context_line":"                self.requests_mock.register_uri("},{"line_number":434,"context_line":"                    \u0027GET\u0027,"},{"line_number":435,"context_line":"                    os.path.join("},{"line_number":436,"context_line":"                        fetch_base_url,"},{"line_number":437,"context_line":"                        \u0027artifacts\u0027,"},{"line_number":438,"context_line":"                        artifact_path),"},{"line_number":439,"context_line":"                    headers\u003d{"},{"line_number":440,"context_line":"                        \u0027Content-Type\u0027: \u0027application/octet-stream\u0027},"},{"line_number":441,"context_line":"                    status_code\u003d200,"},{"line_number":442,"context_line":"                    content\u003dartifact_path_obj.read())"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        cfg.CONF.set_default("},{"line_number":445,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":446,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":447,"context_line":"            default\u003dpipelines)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        res \u003d nfvo_client.VnfPackageRequest.download_vnf_packages("},{"line_number":450,"context_line":"            uuidsentinel.vnf_pkg_id, artifacts)"},{"line_number":451,"context_line":"        self.assertIsInstance(res, io.BytesIO)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        actual_zip \u003d zipfile.ZipFile(res)"},{"line_number":454,"context_line":"        self.assert_zipfile("},{"line_number":455,"context_line":"            actual_zip, ["},{"line_number":456,"context_line":"                expected_package_content_zip,"},{"line_number":457,"context_line":"                expected_vnfd_zip], artifacts)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        history \u003d self.requests_mock.request_history"},{"line_number":460,"context_line":"        req_count \u003d _count_mock_history(history, self.nfvo_url, self.oauth_url)"},{"line_number":461,"context_line":"        self.assertEqual(expected_connect_cnt, req_count)"},{"line_number":462,"context_line":"        self.assert_auth_basic(history[0])"},{"line_number":463,"context_line":"        for h in history[1:]:"},{"line_number":464,"context_line":"            self.assert_auth_client_credentials(h, \"test_token\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_aaf9a84e","line":461,"range":{"start_line":390,"start_character":2,"end_line":461,"end_character":57},"in_reply_to":"9f560f44_caba1cbe","updated":"2020-09-25 03:37:29.000000000","message":"I agree with it, this change is not necessary for release, remain TODO for refactoring is good for me","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f22c8d29cd710852885eda3bba6de2e82d834247","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        self.assertEqual(1, req_count)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_download_vnf_packages_with_retry_raise_not_found(self):"},{"line_number":536,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url,"},{"line_number":537,"context_line":"                              group\u003d\u0027connect_vnf_packages\u0027)"},{"line_number":538,"context_line":"        cfg.CONF.set_default("},{"line_number":539,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":540,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":541,"context_line":"            default\u003d["},{"line_number":542,"context_line":"                \"package_content\","},{"line_number":543,"context_line":"                \"vnfd\"])"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":546,"context_line":"        self.requests_mock.register_uri("}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_7594a844","line":543,"range":{"start_line":536,"start_character":2,"end_line":543,"end_character":24},"updated":"2020-09-24 07:02:02.000000000","message":"Although this is not in your patch.. but here seems duplicate with below 2 methods.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"360cab9f17bb2707a0b021bf31e1b15791652d8d","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        self.assertEqual(1, req_count)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_download_vnf_packages_with_retry_raise_not_found(self):"},{"line_number":536,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url,"},{"line_number":537,"context_line":"                              group\u003d\u0027connect_vnf_packages\u0027)"},{"line_number":538,"context_line":"        cfg.CONF.set_default("},{"line_number":539,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":540,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":541,"context_line":"            default\u003d["},{"line_number":542,"context_line":"                \"package_content\","},{"line_number":543,"context_line":"                \"vnfd\"])"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":546,"context_line":"        self.requests_mock.register_uri("}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_aa9a486b","line":543,"range":{"start_line":536,"start_character":2,"end_line":543,"end_character":24},"in_reply_to":"9f560f44_7594a844","updated":"2020-09-25 03:06:08.000000000","message":"I think it should be revised in another patch because it\u0027s not a good way to include additional changes not related to the purpose of the commit in general. Why don\u0027t you, Koichi, add a TODO comment now instead?","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"45614e689f80d64b248fadcae9e4641caa767951","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        self.assertEqual(1, req_count)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_download_vnf_packages_with_retry_raise_not_found(self):"},{"line_number":536,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url,"},{"line_number":537,"context_line":"                              group\u003d\u0027connect_vnf_packages\u0027)"},{"line_number":538,"context_line":"        cfg.CONF.set_default("},{"line_number":539,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":540,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":541,"context_line":"            default\u003d["},{"line_number":542,"context_line":"                \"package_content\","},{"line_number":543,"context_line":"                \"vnfd\"])"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":546,"context_line":"        self.requests_mock.register_uri("}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_2a25ef0a","line":543,"range":{"start_line":536,"start_character":2,"end_line":543,"end_character":24},"in_reply_to":"9f560f44_a0ef09af","updated":"2020-10-07 08:08:11.000000000","message":"This TODO is fixed in the patch 756451.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"7f1f6e52538b8b43ec20fcee1b3edb6d8a3a5813","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        self.assertEqual(1, req_count)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_download_vnf_packages_with_retry_raise_not_found(self):"},{"line_number":536,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url,"},{"line_number":537,"context_line":"                              group\u003d\u0027connect_vnf_packages\u0027)"},{"line_number":538,"context_line":"        cfg.CONF.set_default("},{"line_number":539,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":540,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":541,"context_line":"            default\u003d["},{"line_number":542,"context_line":"                \"package_content\","},{"line_number":543,"context_line":"                \"vnfd\"])"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":546,"context_line":"        self.requests_mock.register_uri("}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_ca97bcea","line":543,"range":{"start_line":536,"start_character":2,"end_line":543,"end_character":24},"in_reply_to":"9f560f44_aa9a486b","updated":"2020-09-25 03:37:29.000000000","message":"I agree with it!","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"},{"author":{"_account_id":31813,"name":"Koichi Edagawa","email":"edagawa.kc@nec.com","username":"k-edagawa"},"change_message_id":"d0e1820ad1eb9ab8e5db7ad846648e93d8d403d7","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        self.assertEqual(1, req_count)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_download_vnf_packages_with_retry_raise_not_found(self):"},{"line_number":536,"context_line":"        cfg.CONF.set_override(\"base_url\", self.url,"},{"line_number":537,"context_line":"                              group\u003d\u0027connect_vnf_packages\u0027)"},{"line_number":538,"context_line":"        cfg.CONF.set_default("},{"line_number":539,"context_line":"            name\u003d\u0027pipeline\u0027,"},{"line_number":540,"context_line":"            group\u003d\u0027connect_vnf_packages\u0027,"},{"line_number":541,"context_line":"            default\u003d["},{"line_number":542,"context_line":"                \"package_content\","},{"line_number":543,"context_line":"                \"vnfd\"])"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        fetch_base_url \u003d os.path.join(self.url, uuidsentinel.vnf_pkg_id)"},{"line_number":546,"context_line":"        self.requests_mock.register_uri("}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_a0ef09af","line":543,"range":{"start_line":536,"start_character":2,"end_line":543,"end_character":24},"in_reply_to":"9f560f44_ca97bcea","updated":"2020-09-25 06:12:21.000000000","message":"Thank you for suggestion. I inserted TODO comment.","commit_id":"15ed36bc8c8a200de07351a5b5a99acc8b161f79"}]}
