)]}'
{"tacker/db/nfvo/ns_db.py":[{"author":{"_account_id":30198,"name":"Hiroya Nakaya","email":"nakaya.hr@ncos.nec.co.jp","username":"nakkay"},"change_message_id":"e922bf5a790f1b10f4024c88702362b8f2f981ed","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        return ns_dict"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    # reference implementation. needs to be overrided by subclass"},{"line_number":343,"context_line":"    def delete_ns_pre(self, context, ns_id, orce_delete\u003dFalse):"},{"line_number":344,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":345,"context_line":"            ns_db \u003d self._get_ns_db("},{"line_number":346,"context_line":"                context, ns_id, _ACTIVE_UPDATE_ERROR_DEAD,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_30b105e3","line":343,"range":{"start_line":343,"start_character":44,"end_line":343,"end_character":55},"updated":"2019-07-04 05:01:04.000000000","message":"Is this argument needed? It isn\u0027t used.","commit_id":"00b3b4951bf90a2ef18fc03b630731629e855dbd"},{"author":{"_account_id":30198,"name":"Hiroya Nakaya","email":"nakaya.hr@ncos.nec.co.jp","username":"nakkay"},"change_message_id":"ceadf22a28fe60e0e4887886cf5813628f534355","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        return ns_dict"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    # reference implementation. needs to be overrided by subclass"},{"line_number":343,"context_line":"    def delete_ns_pre(self, context, ns_id, orce_delete\u003dFalse):"},{"line_number":344,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":345,"context_line":"            ns_db \u003d self._get_ns_db("},{"line_number":346,"context_line":"                context, ns_id, _ACTIVE_UPDATE_ERROR_DEAD,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_430dd935","line":343,"range":{"start_line":343,"start_character":44,"end_line":343,"end_character":55},"in_reply_to":"7faddb67_30b105e3","updated":"2019-07-04 05:55:35.000000000","message":"\u003e Is this argument needed? It isn\u0027t used.\n\nForce delete resource is updating state before exec delete resource.\nWhy force delete NS isn\u0027t updating state?","commit_id":"00b3b4951bf90a2ef18fc03b630731629e855dbd"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"ea7b622b887cfb3105b0f31de3d549f7df874e4f","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        return ns_dict"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    # reference implementation. needs to be overrided by subclass"},{"line_number":343,"context_line":"    def delete_ns_pre(self, context, ns_id, orce_delete\u003dFalse):"},{"line_number":344,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":345,"context_line":"            ns_db \u003d self._get_ns_db("},{"line_number":346,"context_line":"                context, ns_id, _ACTIVE_UPDATE_ERROR_DEAD,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_9db7d0f5","line":343,"range":{"start_line":343,"start_character":44,"end_line":343,"end_character":55},"in_reply_to":"7faddb67_430dd935","updated":"2019-07-19 05:00:35.000000000","message":"In line#345(i.e. self._get_ns_db), updating that state.\n\nAlthough method name(i.e. self._get_ns_db) is not suitable, so i will refactor it.","commit_id":"00b3b4951bf90a2ef18fc03b630731629e855dbd"}],"tacker/nfvo/nfvo_plugin.py":[{"author":{"_account_id":30198,"name":"Hiroya Nakaya","email":"nakaya.hr@ncos.nec.co.jp","username":"nakkay"},"change_message_id":"cbf730e713f46f6edf123e8cbede54e21b0761af","unresolved":false,"context_lines":[{"line_number":900,"context_line":"    def delete_ns(self, context, ns_id, ns\u003dNone):"},{"line_number":901,"context_line":"        # Extract \"force_delete\" from request\u0027s body"},{"line_number":902,"context_line":"        force_delete \u003d False"},{"line_number":903,"context_line":"        if ns and ns[\u0027ns\u0027].get(\u0027attributes\u0027).get(\u0027force\u0027):"},{"line_number":904,"context_line":"            force_delete \u003d ns[\u0027ns\u0027].get(\u0027attributes\u0027).get(\u0027force\u0027)"},{"line_number":905,"context_line":"        if force_delete and not context.is_admin:"},{"line_number":906,"context_line":"            LOG.warning(\"force delete is admin only operation\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_2755291e","line":903,"range":{"start_line":903,"start_character":27,"end_line":903,"end_character":44},"updated":"2019-07-24 02:59:13.000000000","message":"IMO, it\u0027s better to add blank dictionary value in second argument for the pattern as which attributes or ns isn\u0027t defined.\n\n\n ns.get(\u0027ns\u0027,{}).get(\u0027attributes\u0027,{})","commit_id":"a3f844f23440dfa9b94d7553501a7cdc1bfc3c73"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"b024122b77fa5f643367cd718a07dcfeaea816bd","unresolved":false,"context_lines":[{"line_number":900,"context_line":"    def delete_ns(self, context, ns_id, ns\u003dNone):"},{"line_number":901,"context_line":"        # Extract \"force_delete\" from request\u0027s body"},{"line_number":902,"context_line":"        force_delete \u003d False"},{"line_number":903,"context_line":"        if ns and ns[\u0027ns\u0027].get(\u0027attributes\u0027).get(\u0027force\u0027):"},{"line_number":904,"context_line":"            force_delete \u003d ns[\u0027ns\u0027].get(\u0027attributes\u0027).get(\u0027force\u0027)"},{"line_number":905,"context_line":"        if force_delete and not context.is_admin:"},{"line_number":906,"context_line":"            LOG.warning(\"force delete is admin only operation\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_e4bb796f","line":903,"range":{"start_line":903,"start_character":27,"end_line":903,"end_character":44},"in_reply_to":"7faddb67_2755291e","updated":"2019-07-25 04:45:56.000000000","message":"Done","commit_id":"a3f844f23440dfa9b94d7553501a7cdc1bfc3c73"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"cb3136390af6bd59860d0579c4771b6537db2b1f","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                    resource\u003d\u0027ns\u0027,"},{"line_number":921,"context_line":"                    action\u003d\u0027delete\u0027,"},{"line_number":922,"context_line":"                    auth_dict\u003dself.get_auth_dict(context),"},{"line_number":923,"context_line":"                    kwargs\u003d{\u0027ns\u0027: ns})"},{"line_number":924,"context_line":"        except nfvo.NoTasksException:"},{"line_number":925,"context_line":"            LOG.warning(\"No VNF deletion task(s).\")"},{"line_number":926,"context_line":"        if workflow:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_34b85573","line":923,"range":{"start_line":923,"start_character":19,"end_line":923,"end_character":37},"updated":"2019-08-20 06:36:35.000000000","message":"Don\u0027t we need to pass force_delete flag doing like {\u0027ns:\u0027 ns, \u0027force\u0027: force_delete} ? Or do we expect users to delete stucking VNFs manually?","commit_id":"61febe30ca243e5d2ff46a274cbd183a023fdc89"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"45a5738ffb129cfa95d04cf3e9b785e9702da837","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                    resource\u003d\u0027ns\u0027,"},{"line_number":921,"context_line":"                    action\u003d\u0027delete\u0027,"},{"line_number":922,"context_line":"                    auth_dict\u003dself.get_auth_dict(context),"},{"line_number":923,"context_line":"                    kwargs\u003d{\u0027ns\u0027: ns})"},{"line_number":924,"context_line":"        except nfvo.NoTasksException:"},{"line_number":925,"context_line":"            LOG.warning(\"No VNF deletion task(s).\")"},{"line_number":926,"context_line":"        if workflow:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_8a18001e","line":923,"range":{"start_line":923,"start_character":19,"end_line":923,"end_character":37},"in_reply_to":"7faddb67_34b85573","updated":"2019-08-20 08:15:54.000000000","message":"here kwargs is like: {\u0027ns\u0027: {\u0027attributes\u0027: {\u0027force\u0027: True}}}","commit_id":"61febe30ca243e5d2ff46a274cbd183a023fdc89"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"8894547bbdb8e62afa7d20b89739b0c2865894f6","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                    resource\u003d\u0027ns\u0027,"},{"line_number":921,"context_line":"                    action\u003d\u0027delete\u0027,"},{"line_number":922,"context_line":"                    auth_dict\u003dself.get_auth_dict(context),"},{"line_number":923,"context_line":"                    kwargs\u003d{\u0027ns\u0027: ns})"},{"line_number":924,"context_line":"        except nfvo.NoTasksException:"},{"line_number":925,"context_line":"            LOG.warning(\"No VNF deletion task(s).\")"},{"line_number":926,"context_line":"        if workflow:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_62935aa4","line":923,"range":{"start_line":923,"start_character":19,"end_line":923,"end_character":37},"in_reply_to":"7faddb67_8a18001e","updated":"2019-08-20 21:56:33.000000000","message":"I oversight it here, and correcting my point, here kwargs is not {\u0027ns\u0027: {\u0027attributes\u0027: {\u0027force\u0027: True}}}, but {\u0027ns\u0027: ns}.\nI will update it as per your first comment, and will also update in workflow_generator.","commit_id":"61febe30ca243e5d2ff46a274cbd183a023fdc89"},{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"affb92276aa66ed9eaf2107cc98692f52482cec6","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                    resource\u003d\u0027ns\u0027,"},{"line_number":921,"context_line":"                    action\u003d\u0027delete\u0027,"},{"line_number":922,"context_line":"                    auth_dict\u003dself.get_auth_dict(context),"},{"line_number":923,"context_line":"                    kwargs\u003d{\u0027ns\u0027: ns})"},{"line_number":924,"context_line":"        except nfvo.NoTasksException:"},{"line_number":925,"context_line":"            LOG.warning(\"No VNF deletion task(s).\")"},{"line_number":926,"context_line":"        if workflow:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_8a732016","line":923,"range":{"start_line":923,"start_character":19,"end_line":923,"end_character":37},"in_reply_to":"7faddb67_8a18001e","updated":"2019-08-20 08:31:54.000000000","message":"Sorry for my misunderstand. Then, currently force_delete flag doesn\u0027t affect anything to workflow creating here for VNF deletion, https://github.com/openstack/tacker/blob/master/tacker/nfvo/drivers/workflow/workflow_generator.py#L255\nThis results VNFs possibly fail to delete and be stucking.","commit_id":"61febe30ca243e5d2ff46a274cbd183a023fdc89"}],"tacker/tests/unit/nfvo/test_nfvo_plugin.py":[{"author":{"_account_id":30198,"name":"Hiroya Nakaya","email":"nakaya.hr@ncos.nec.co.jp","username":"nakkay"},"change_message_id":"cbf730e713f46f6edf123e8cbede54e21b0761af","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        session.flush()"},{"line_number":1045,"context_line":"        return nsd_template"},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"    def _insert_dummy_ns(self, status\u003d\u0027ACTIVE\u0027):"},{"line_number":1048,"context_line":"        session \u003d self.context.session"},{"line_number":1049,"context_line":"        ns \u003d ns_db.NS("},{"line_number":1050,"context_line":"            id\u003d\u0027ba6bf017-f6f7-45f1-a280-57b073bf78ea\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_e72e31f9","line":1047,"updated":"2019-07-24 02:59:13.000000000","message":"status arg is not used.","commit_id":"a3f844f23440dfa9b94d7553501a7cdc1bfc3c73"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"b024122b77fa5f643367cd718a07dcfeaea816bd","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        session.flush()"},{"line_number":1045,"context_line":"        return nsd_template"},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"    def _insert_dummy_ns(self, status\u003d\u0027ACTIVE\u0027):"},{"line_number":1048,"context_line":"        session \u003d self.context.session"},{"line_number":1049,"context_line":"        ns \u003d ns_db.NS("},{"line_number":1050,"context_line":"            id\u003d\u0027ba6bf017-f6f7-45f1-a280-57b073bf78ea\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_a4ad8132","line":1047,"in_reply_to":"7faddb67_e72e31f9","updated":"2019-07-25 04:45:56.000000000","message":"Done","commit_id":"a3f844f23440dfa9b94d7553501a7cdc1bfc3c73"}]}
