)]}'
{"doc/source/user/vnffg_usage_guide.rst":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"76f5560229ba124836d40a1caf8b460a8a61c7a0","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"After he determined which VNF is used and which VNF is going to be used in the update"},{"line_number":263,"context_line":"procedure he can execute:"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f4b6375_d73f4a85","line":262,"range":{"start_line":262,"start_character":6,"end_line":262,"end_character":8},"updated":"2017-10-30 11:43:19.000000000","message":"you should change from \"he\" to \"user\" or \"you\"","commit_id":"294560ff64c889287a337d4aa85c03129493eefe"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"221cbc777b17805eb2c88bb10f1cfcb0e3002e22","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"After he determined which VNF is used and which VNF is going to be used in the update"},{"line_number":263,"context_line":"procedure he can execute:"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f4b6375_dddbeb4c","line":262,"range":{"start_line":262,"start_character":6,"end_line":262,"end_character":8},"in_reply_to":"3f4b6375_d73f4a85","updated":"2017-10-30 12:45:57.000000000","message":"Done","commit_id":"294560ff64c889287a337d4aa85c03129493eefe"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"eff73f6ff2ddc7bf3d6f8a9c1a4f6e46a904824a","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD:\u003cVNF name or id\u003e \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df87a7cf_a992f855","line":286,"range":{"start_line":286,"start_character":3,"end_line":286,"end_character":58},"updated":"2017-12-18 17:19:27.000000000","message":"add: --vnffgd-file \u003cVNFFG file\u003e here","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"545a6fdbbf1f4d803a1509dac76d741409a8c933","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD:\u003cVNF name or id\u003e \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df87a7cf_8a7fbd64","line":286,"range":{"start_line":286,"start_character":3,"end_line":286,"end_character":58},"in_reply_to":"df87a7cf_92b94f16","updated":"2017-12-20 02:31:24.000000000","message":"I got it :-)","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"2a581497fd1914dd6a80e946a3277c27da6e5d2c","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD:\u003cVNF name or id\u003e \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df87a7cf_92b94f16","line":286,"range":{"start_line":286,"start_character":3,"end_line":286,"end_character":58},"in_reply_to":"df87a7cf_a992f855","updated":"2017-12-19 08:19:18.000000000","message":"Actually this patch is more for update vnf-mapping implementation. I should Update the commit message so it can be more explicit.\n\nI am planning to implememnt the update vnffg functionalilty in subsequent commits. Which means that I would do the changes that you are proposinig there.","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"490ac3b3b0c0da31bff696cc4b25b5181fe88cdd","unresolved":false,"context_lines":[{"line_number":261,"context_line":"~~~~~~~~~~~~~~~~~~"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"To update an already created VNFFG template the user needs to locate the VNFFG"},{"line_number":264,"context_line":"that he wants to update. To do so he can execute the following command:"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":".. code-block:: console"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"bf8cb3f7_7c973d92","line":264,"range":{"start_line":264,"start_character":34,"end_line":264,"end_character":36},"updated":"2017-12-21 15:25:38.000000000","message":"ditto for the other \u0027he\"","commit_id":"69f9ab2f181e61b11a93ed96c6b20131a0b207b1"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"490ac3b3b0c0da31bff696cc4b25b5181fe88cdd","unresolved":false,"context_lines":[{"line_number":261,"context_line":"~~~~~~~~~~~~~~~~~~"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"To update an already created VNFFG template the user needs to locate the VNFFG"},{"line_number":264,"context_line":"that he wants to update. To do so he can execute the following command:"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":".. code-block:: console"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"bf8cb3f7_dc820950","line":264,"range":{"start_line":264,"start_character":5,"end_line":264,"end_character":7},"updated":"2017-12-21 15:25:38.000000000","message":"not use genders, make it in second person :\n\nhttps://docs.openstack.org/doc-contrib-guide/writing-style/general-writing-guidelines.html","commit_id":"69f9ab2f181e61b11a93ed96c6b20131a0b207b1"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"4184866eb83be405e17e5bf7e91aa2ae0a02300b","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":282,"context_line":"in the update procedure he can execute:"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":33,"id":"bf8cb3f7_4dbcfa04","line":281,"range":{"start_line":281,"start_character":0,"end_line":281,"end_character":73},"updated":"2017-12-22 04:04:14.000000000","message":"we can use a command to list vnfs of a given vnfd, such as (please make sure it works):\ntacker vnf-list --vnfd-id vnfd1","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"a3ff14c26d127edb8e5cf9ffeb330cd79c7ae9de","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":282,"context_line":"in the update procedure he can execute:"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":33,"id":"9f91af0f_9af0e169","line":281,"range":{"start_line":281,"start_character":0,"end_line":281,"end_character":73},"in_reply_to":"bf8cb3f7_4dbcfa04","updated":"2018-01-03 15:31:31.000000000","message":"From what i am seeing in the tacker-client side there is not such command.","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"4184866eb83be405e17e5bf7e91aa2ae0a02300b","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD:\u003cVNF name or id\u003e \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":33,"id":"bf8cb3f7_edd14e59","line":286,"range":{"start_line":286,"start_character":37,"end_line":286,"end_character":58},"updated":"2017-12-22 04:04:14.000000000","message":"use: VNFD1: vnf1 to make it consist with previous example.","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"063c02eaab1924fbfc83f8a1a9f089eec6be002d","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD:\u003cVNF name or id\u003e \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":33,"id":"9f91af0f_1d41190c","line":286,"range":{"start_line":286,"start_character":37,"end_line":286,"end_character":58},"in_reply_to":"9f91af0f_3aff5535","updated":"2018-01-04 09:58:51.000000000","message":"Done","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"a3ff14c26d127edb8e5cf9ffeb330cd79c7ae9de","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD:\u003cVNF name or id\u003e \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":33,"id":"9f91af0f_3aff5535","line":286,"range":{"start_line":286,"start_character":37,"end_line":286,"end_character":58},"in_reply_to":"bf8cb3f7_edd14e59","updated":"2018-01-03 15:31:31.000000000","message":"ok I will fix that. thanks","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"b7eace15696c59ce91f179872ed45e05ad091038","unresolved":false,"context_lines":[{"line_number":268,"context_line":"   tacker vnffg-list"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the user located the VNFFG the subsequent action is to update it."},{"line_number":271,"context_line":"Currently we suppport only the update of the vnf-mapping in a VNFFG."},{"line_number":272,"context_line":"The user needs to use a VNF which is actually derived from the VNFD which"},{"line_number":273,"context_line":"is going to be used in the vnf-mapping parameter."},{"line_number":274,"context_line":"If the user is not sure which VNF was used for the mapping during the time"}],"source_content_type":"text/x-rst","patch_set":38,"id":"9f91af0f_f312f361","line":271,"range":{"start_line":271,"start_character":13,"end_line":271,"end_character":21},"updated":"2018-01-10 06:46:16.000000000","message":"nit: support","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":268,"context_line":"   tacker vnffg-list"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the user located the VNFFG the subsequent action is to update it."},{"line_number":271,"context_line":"Currently we suppport only the update of the vnf-mapping in a VNFFG."},{"line_number":272,"context_line":"The user needs to use a VNF which is actually derived from the VNFD which"},{"line_number":273,"context_line":"is going to be used in the vnf-mapping parameter."},{"line_number":274,"context_line":"If the user is not sure which VNF was used for the mapping during the time"}],"source_content_type":"text/x-rst","patch_set":38,"id":"7f96bb07_b3b659d9","line":271,"range":{"start_line":271,"start_character":13,"end_line":271,"end_character":21},"in_reply_to":"9f91af0f_f312f361","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1 \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":38,"id":"9f91af0f_1cd68929","line":286,"range":{"start_line":286,"start_character":29,"end_line":286,"end_character":36},"updated":"2018-01-10 02:42:08.000000000","message":"show us how to update more than one vnf mapping one time. thanks","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1 \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":38,"id":"7f96bb07_73c8d154","line":286,"range":{"start_line":286,"start_character":29,"end_line":286,"end_character":36},"in_reply_to":"9f91af0f_1cd68929","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"To update an already created VNFFG template the user needs to locate the VNFFG"},{"line_number":264,"context_line":"which wants to update. To do so the following command is getting executed:"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":".. code-block:: console"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"   tacker vnffg-list"}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_725ea0ea","line":265,"updated":"2018-01-19 11:13:04.000000000","message":"Using the below command query the list of existing VNFFG templates. \n\n... code-block:: console\n   \n    tacker vnffg-list","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"To update an already created VNFFG template the user needs to locate the VNFFG"},{"line_number":264,"context_line":"which wants to update. To do so the following command is getting executed:"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":".. code-block:: console"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"   tacker vnffg-list"}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_99826c52","line":265,"in_reply_to":"7f96bb07_725ea0ea","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"   tacker vnffg-list"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the user located the VNFFG the subsequent action is to update it."},{"line_number":271,"context_line":"Currently we support only the update of the vnf-mapping in a VNFFG."},{"line_number":272,"context_line":"The user needs to use a VNF which is actually derived from the VNFD which"},{"line_number":273,"context_line":"is going to be used in the vnf-mapping parameter."}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_720300c0","line":270,"updated":"2018-01-19 11:13:04.000000000","message":"based on the appropriate choice, update VNFFG template.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"   tacker vnffg-list"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the user located the VNFFG the subsequent action is to update it."},{"line_number":271,"context_line":"Currently we support only the update of the vnf-mapping in a VNFFG."},{"line_number":272,"context_line":"The user needs to use a VNF which is actually derived from the VNFD which"},{"line_number":273,"context_line":"is going to be used in the vnf-mapping parameter."}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_b9872862","line":270,"in_reply_to":"7f96bb07_720300c0","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":273,"context_line":"is going to be used in the vnf-mapping parameter."},{"line_number":274,"context_line":"If the user is not sure which VNF was used for the mapping during the time"},{"line_number":275,"context_line":"of the VNFFG creation he can execute:"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":".. code-block:: console"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_52e044fb","line":276,"updated":"2018-01-19 11:13:04.000000000","message":"Execute the below command to query the VNF that was used in mapping at the time of VNFFG creation.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":273,"context_line":"is going to be used in the vnf-mapping parameter."},{"line_number":274,"context_line":"If the user is not sure which VNF was used for the mapping during the time"},{"line_number":275,"context_line":"of the VNFFG creation he can execute:"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":".. code-block:: console"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_597ce471","line":276,"in_reply_to":"7f96bb07_52e044fb","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":279,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":282,"context_line":"in the update procedure he can execute:"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_6d4b215f","line":282,"updated":"2018-01-19 11:13:04.000000000","message":"To update the VNF mappings to VNFFG, execute the below command.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":279,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":282,"context_line":"in the update procedure he can execute:"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_7981a04a","line":282,"in_reply_to":"7f96bb07_6d4b215f","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_4d5ae52a","line":287,"updated":"2018-01-19 11:13:04.000000000","message":"mardim, please also put some sample outputs of the commands if you have any.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":284,"context_line":".. code-block:: console"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"Known Issues and Limitations"},{"line_number":289,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"7f96bb07_19965c96","line":287,"in_reply_to":"7f96bb07_4d5ae52a","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"ac3c94c623fdde29237bbedcd01db3a58c1c0978","unresolved":false,"context_lines":[{"line_number":232,"context_line":".. code-block:: console"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"   tacker vnffg-create --vnffgd-name vnffgd-param --vnf-mapping VNFD1:\u002791e32c20-6d1f-47a4-9ba7-08f5e5effe07\u0027,\\"},{"line_number":235,"context_line":"   VNFD2:\u00277168062e-9fa1-4203-8cb7-f5c99ff3ee1b\u0027 --param-file vnffg-param-file.yaml myvnffg"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"See `VNFFGD template samples with parameter support \u003chttps://github.com/"}],"source_content_type":"text/x-rst","patch_set":50,"id":"7f96bb07_2c3d112c","line":235,"range":{"start_line":235,"start_character":83,"end_line":235,"end_character":90},"updated":"2018-01-19 17:45:59.000000000","message":"because of it","commit_id":"fdedb70a7efc4fe21df3fc6521c81db8a4a0945c"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"ac3c94c623fdde29237bbedcd01db3a58c1c0978","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"   tacker vnffg-list"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"+--------------------------------------+-------+-------------+--------+--------------------------------------+"},{"line_number":273,"context_line":"| id                                   | name  | description | status | vnffgd_id                            |"},{"line_number":274,"context_line":"+--------------------------------------+-------+-------------+--------+--------------------------------------+"},{"line_number":275,"context_line":"| f4438511-e33d-43df-95d9-0199253db72e | green |             | ACTIVE | bd7829bf-85de-4f3b-960a-8482028bfb34 |"},{"line_number":276,"context_line":"+--------------------------------------+-------+-------------+--------+--------------------------------------+"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"After the user located the VNFFG the subsequent action is to update it."}],"source_content_type":"text/x-rst","patch_set":50,"id":"7f96bb07_ccbb4dc2","line":276,"range":{"start_line":272,"start_character":0,"end_line":276,"end_character":110},"updated":"2018-01-19 17:45:59.000000000","message":"You need to put some backspaces, align with \"tacker vnffg-list\", because the table is inside the code-block.\n \nIf possible, you should change \"green\" name to myvnffg, because it is suitable with creating vnffg part.","commit_id":"fdedb70a7efc4fe21df3fc6521c81db8a4a0945c"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"13ce641399570e27bd0f8555bbea666034a548d7","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"   tacker vnffg-list"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"+--------------------------------------+-------+-------------+--------+--------------------------------------+"},{"line_number":273,"context_line":"| id                                   | name  | description | status | vnffgd_id                            |"},{"line_number":274,"context_line":"+--------------------------------------+-------+-------------+--------+--------------------------------------+"},{"line_number":275,"context_line":"| f4438511-e33d-43df-95d9-0199253db72e | green |             | ACTIVE | bd7829bf-85de-4f3b-960a-8482028bfb34 |"},{"line_number":276,"context_line":"+--------------------------------------+-------+-------------+--------+--------------------------------------+"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"After the user located the VNFFG the subsequent action is to update it."}],"source_content_type":"text/x-rst","patch_set":50,"id":"7f96bb07_0e358cf7","line":276,"range":{"start_line":272,"start_character":0,"end_line":276,"end_character":110},"in_reply_to":"7f96bb07_ccbb4dc2","updated":"2018-01-22 08:23:29.000000000","message":"Done","commit_id":"fdedb70a7efc4fe21df3fc6521c81db8a4a0945c"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"ac3c94c623fdde29237bbedcd01db3a58c1c0978","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Updated vnffg: green"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Known Issues and Limitations"},{"line_number":306,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":50,"id":"7f96bb07_0ceff5b0","line":303,"range":{"start_line":303,"start_character":15,"end_line":303,"end_character":20},"updated":"2018-01-19 17:45:59.000000000","message":"here too","commit_id":"fdedb70a7efc4fe21df3fc6521c81db8a4a0945c"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"13ce641399570e27bd0f8555bbea666034a548d7","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Updated vnffg: green"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Known Issues and Limitations"},{"line_number":306,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":50,"id":"7f96bb07_ee2f00a5","line":303,"range":{"start_line":303,"start_character":15,"end_line":303,"end_character":20},"in_reply_to":"7f96bb07_0ceff5b0","updated":"2018-01-22 08:23:29.000000000","message":"Done","commit_id":"fdedb70a7efc4fe21df3fc6521c81db8a4a0945c"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"12f9afd4b8d437af89629915067f9bea504deafc","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":".. code-block:: console"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":296,"context_line":"in the update procedure he can execute:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"7f96bb07_ceb9e4e9","line":293,"range":{"start_line":293,"start_character":21,"end_line":293,"end_character":39},"updated":"2018-01-22 08:01:36.000000000","message":"why not use myvnffg?","commit_id":"77d1cf5a3f7851275f5b65a7d049b3b2f03f3010"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"0121e11b0eddc12a359eadb970dbc4b32eb69701","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":".. code-block:: console"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":296,"context_line":"in the update procedure he can execute:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"7f96bb07_ee9380ff","line":293,"range":{"start_line":293,"start_character":21,"end_line":293,"end_character":39},"in_reply_to":"7f96bb07_ceb9e4e9","updated":"2018-01-22 08:18:47.000000000","message":"Yes we can do that.Thanks","commit_id":"77d1cf5a3f7851275f5b65a7d049b3b2f03f3010"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"13ce641399570e27bd0f8555bbea666034a548d7","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":".. code-block:: console"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"   tacker vnffg-show \u003cVNFFG name or id\u003e"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"After user determined which VNF is used and which VNF is going to be used"},{"line_number":296,"context_line":"in the update procedure he can execute:"}],"source_content_type":"text/x-rst","patch_set":51,"id":"7f96bb07_2e588854","line":293,"range":{"start_line":293,"start_character":21,"end_line":293,"end_character":39},"in_reply_to":"7f96bb07_ee9380ff","updated":"2018-01-22 08:23:29.000000000","message":"Done","commit_id":"77d1cf5a3f7851275f5b65a7d049b3b2f03f3010"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"12f9afd4b8d437af89629915067f9bea504deafc","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":".. code-block:: console"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Updated vnffg: myvnffg"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"7f96bb07_6e93f05d","line":302,"range":{"start_line":302,"start_character":59,"end_line":302,"end_character":71},"updated":"2018-01-22 08:01:36.000000000","message":"myvnffg","commit_id":"77d1cf5a3f7851275f5b65a7d049b3b2f03f3010"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"0121e11b0eddc12a359eadb970dbc4b32eb69701","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":".. code-block:: console"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Updated vnffg: myvnffg"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"7f96bb07_8e843cb3","line":302,"range":{"start_line":302,"start_character":59,"end_line":302,"end_character":71},"in_reply_to":"7f96bb07_6e93f05d","updated":"2018-01-22 08:18:47.000000000","message":"Here too","commit_id":"77d1cf5a3f7851275f5b65a7d049b3b2f03f3010"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"13ce641399570e27bd0f8555bbea666034a548d7","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":".. code-block:: console"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 \u003cvnffg-name\u003e"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Updated vnffg: myvnffg"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-rst","patch_set":51,"id":"7f96bb07_4e55d41c","line":302,"range":{"start_line":302,"start_character":59,"end_line":302,"end_character":71},"in_reply_to":"7f96bb07_8e843cb3","updated":"2018-01-22 08:23:29.000000000","message":"Done","commit_id":"77d1cf5a3f7851275f5b65a7d049b3b2f03f3010"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"bfd7b30df0bfa5705eee7535d25f5ce00780f439","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":".. code-block:: console"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 myvnffg"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"   Updated vnffg: myvnffg"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"7f96bb07_915be385","line":302,"range":{"start_line":302,"start_character":37,"end_line":302,"end_character":58},"updated":"2018-01-23 01:21:05.000000000","message":"do you have ways to prevent user from giving VNFD2:vnf2, VNFD1:vnf1 in the reverse order from vnffg template? or user just provide parts of the vnffg. for example, user\u0027s vnffg has vnfd1-\u003evnfd2-\u003evnfd3, if users just want to change vnfd3:vnf3, vnfd1:vnf1, does it hurt the system?","commit_id":"1a14d45d65c0cd8064776ec41dc611da8bf9a667"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"7d88452fe28d241fe248d0305a2ae8e546247118","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":".. code-block:: console"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"   tacker vnffg-update --vnf-mapping VNFD1:vnf1,VNFD2:vnf2 myvnffg"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"   Updated vnffg: myvnffg"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-rst","patch_set":52,"id":"7f96bb07_b0c84774","line":302,"range":{"start_line":302,"start_character":37,"end_line":302,"end_character":58},"in_reply_to":"7f96bb07_915be385","updated":"2018-01-23 13:04:13.000000000","message":"the vnf-mapping is independent from the order of the VNFs in the chain which means that even if the user pass the vnf-mapping in a reverse order that will no hurt the system.\n\nYour proposal motivated me so I ran some tests by hand to check that. Here is the results:\n\nhttps://hastebin.com/kizibasago.rb","commit_id":"1a14d45d65c0cd8064776ec41dc611da8bf9a667"}],"releasenotes/notes/implement-vnf-mapping-update-1151c52a71e8ad75.yaml":[{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":48,"id":"7f96bb07_2d8199c4","line":6,"updated":"2018-01-19 11:13:04.000000000","message":"Every feature is important.\n\nMay be the above lines be re written as, \n\n        VNFFG Update - VNF mapping functionality.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":48,"id":"7f96bb07_d98f9473","line":6,"in_reply_to":"7f96bb07_2d8199c4","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"}],"tacker/db/nfvo/vnffg_db.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"690e7643f5082f4eea9b49cbc25e2c6d50e06d78","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        the vnf_mapping is valid so we can use it to update the chain."},{"line_number":545,"context_line":"        \"\"\""},{"line_number":546,"context_line":"        if not vnf_mapping:"},{"line_number":547,"context_line":"            raise nfvo.VnfMappingNotFoundException()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            for vnfd, vnf in vnf_mapping.items():"},{"line_number":550,"context_line":"                if vnfd not in vnf_members:"}],"source_content_type":"text/x-python","patch_set":33,"id":"bf8cb3f7_832e4aa3","line":547,"range":{"start_line":547,"start_character":23,"end_line":547,"end_character":52},"updated":"2017-12-22 17:59:38.000000000","message":"msg is missing :-)","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"4effbd1f055b4b3d43087145f4f60cb53825e245","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        the vnf_mapping is valid so we can use it to update the chain."},{"line_number":545,"context_line":"        \"\"\""},{"line_number":546,"context_line":"        if not vnf_mapping:"},{"line_number":547,"context_line":"            raise nfvo.VnfMappingNotFoundException()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            for vnfd, vnf in vnf_mapping.items():"},{"line_number":550,"context_line":"                if vnfd not in vnf_members:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9f91af0f_ef7d9f1c","line":547,"range":{"start_line":547,"start_character":23,"end_line":547,"end_character":52},"in_reply_to":"9f91af0f_ba4fe590","updated":"2018-01-04 08:38:50.000000000","message":"Actually message is not missing check:\n\nhttps://git.openstack.org/cgit/openstack/tacker/tree/tacker/extensions/nfvo.py?h\u003drefs/changes/20/513720/33#n243","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"a3ff14c26d127edb8e5cf9ffeb330cd79c7ae9de","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        the vnf_mapping is valid so we can use it to update the chain."},{"line_number":545,"context_line":"        \"\"\""},{"line_number":546,"context_line":"        if not vnf_mapping:"},{"line_number":547,"context_line":"            raise nfvo.VnfMappingNotFoundException()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            for vnfd, vnf in vnf_mapping.items():"},{"line_number":550,"context_line":"                if vnfd not in vnf_members:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9f91af0f_ba4fe590","line":547,"range":{"start_line":547,"start_character":23,"end_line":547,"end_character":52},"in_reply_to":"bf8cb3f7_832e4aa3","updated":"2018-01-03 15:31:31.000000000","message":"I thought that the name of the exception was sufficient enough so the user can understand the problem. But you are right maybe I should add a message :)","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_ACTIVE_UPDATE_ERROR_DEAD \u003d ("},{"line_number":37,"context_line":"    constants.PENDING_CREATE, constants.ACTIVE, constants.PENDING_UPDATE,"},{"line_number":38,"context_line":"    constants.ERROR, constants.DEAD)"},{"line_number":39,"context_line":"_VALID_VNFFG_UPDATE_ATTRIBUTES \u003d (\u0027vnf_mapping\u0027,)"},{"line_number":40,"context_line":"_VALID_SFC_UPDATE_ATTRIBUTES \u003d (\u0027chain\u0027, \u0027symmetrical\u0027)"},{"line_number":41,"context_line":"_VALID_NFP_UPDATE_ATTRIBUTES \u003d (\u0027symmetrical\u0027,)"},{"line_number":42,"context_line":"_VALID_FC_UPDATE_ATTRIBUTES \u003d ()"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_7cfc75b4","line":39,"range":{"start_line":39,"start_character":33,"end_line":39,"end_character":35},"updated":"2018-01-10 02:42:08.000000000","message":"why \u0027name\u0027 and \u0027des\u0027 cannot be updated?","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_ACTIVE_UPDATE_ERROR_DEAD \u003d ("},{"line_number":37,"context_line":"    constants.PENDING_CREATE, constants.ACTIVE, constants.PENDING_UPDATE,"},{"line_number":38,"context_line":"    constants.ERROR, constants.DEAD)"},{"line_number":39,"context_line":"_VALID_VNFFG_UPDATE_ATTRIBUTES \u003d (\u0027vnf_mapping\u0027,)"},{"line_number":40,"context_line":"_VALID_SFC_UPDATE_ATTRIBUTES \u003d (\u0027chain\u0027, \u0027symmetrical\u0027)"},{"line_number":41,"context_line":"_VALID_NFP_UPDATE_ATTRIBUTES \u003d (\u0027symmetrical\u0027,)"},{"line_number":42,"context_line":"_VALID_FC_UPDATE_ATTRIBUTES \u003d ()"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_a4f74359","line":39,"range":{"start_line":39,"start_character":33,"end_line":39,"end_character":35},"in_reply_to":"9f91af0f_661b8372","updated":"2018-01-10 08:47:23.000000000","message":"If I remember correctly there was no actual implementation of this that\u0027s why I removed it. But i think I can fix this by implementing it.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"b7eace15696c59ce91f179872ed45e05ad091038","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_ACTIVE_UPDATE_ERROR_DEAD \u003d ("},{"line_number":37,"context_line":"    constants.PENDING_CREATE, constants.ACTIVE, constants.PENDING_UPDATE,"},{"line_number":38,"context_line":"    constants.ERROR, constants.DEAD)"},{"line_number":39,"context_line":"_VALID_VNFFG_UPDATE_ATTRIBUTES \u003d (\u0027vnf_mapping\u0027,)"},{"line_number":40,"context_line":"_VALID_SFC_UPDATE_ATTRIBUTES \u003d (\u0027chain\u0027, \u0027symmetrical\u0027)"},{"line_number":41,"context_line":"_VALID_NFP_UPDATE_ATTRIBUTES \u003d (\u0027symmetrical\u0027,)"},{"line_number":42,"context_line":"_VALID_FC_UPDATE_ATTRIBUTES \u003d ()"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_661b8372","line":39,"range":{"start_line":39,"start_character":33,"end_line":39,"end_character":35},"in_reply_to":"9f91af0f_7cfc75b4","updated":"2018-01-10 06:46:16.000000000","message":"+1","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"882cb603042d939aea219f52c56f64ac2091e35f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_ACTIVE_UPDATE_ERROR_DEAD \u003d ("},{"line_number":37,"context_line":"    constants.PENDING_CREATE, constants.ACTIVE, constants.PENDING_UPDATE,"},{"line_number":38,"context_line":"    constants.ERROR, constants.DEAD)"},{"line_number":39,"context_line":"_VALID_VNFFG_UPDATE_ATTRIBUTES \u003d (\u0027vnf_mapping\u0027,)"},{"line_number":40,"context_line":"_VALID_SFC_UPDATE_ATTRIBUTES \u003d (\u0027chain\u0027, \u0027symmetrical\u0027)"},{"line_number":41,"context_line":"_VALID_NFP_UPDATE_ATTRIBUTES \u003d (\u0027symmetrical\u0027,)"},{"line_number":42,"context_line":"_VALID_FC_UPDATE_ATTRIBUTES \u003d ()"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_a2e88e7b","line":39,"range":{"start_line":39,"start_character":33,"end_line":39,"end_character":35},"in_reply_to":"9f91af0f_7faa2219","updated":"2018-01-10 13:50:56.000000000","message":"we have to see if API support these updation, instead of client command.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"683a7c424f27338c9b1b9db2679a757744cdd3ea","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_ACTIVE_UPDATE_ERROR_DEAD \u003d ("},{"line_number":37,"context_line":"    constants.PENDING_CREATE, constants.ACTIVE, constants.PENDING_UPDATE,"},{"line_number":38,"context_line":"    constants.ERROR, constants.DEAD)"},{"line_number":39,"context_line":"_VALID_VNFFG_UPDATE_ATTRIBUTES \u003d (\u0027vnf_mapping\u0027,)"},{"line_number":40,"context_line":"_VALID_SFC_UPDATE_ATTRIBUTES \u003d (\u0027chain\u0027, \u0027symmetrical\u0027)"},{"line_number":41,"context_line":"_VALID_NFP_UPDATE_ATTRIBUTES \u003d (\u0027symmetrical\u0027,)"},{"line_number":42,"context_line":"_VALID_FC_UPDATE_ATTRIBUTES \u003d ()"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_7faa2219","line":39,"range":{"start_line":39,"start_character":33,"end_line":39,"end_character":35},"in_reply_to":"9f91af0f_a4f74359","updated":"2018-01-10 09:22:29.000000000","message":"Ah now I remembered why I erased the name and description.\n\nThere is no support for name and description update in the tacker client side which means that we should first implement the tacker client side and then the tacker server side.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"b7eace15696c59ce91f179872ed45e05ad091038","unresolved":false,"context_lines":[{"line_number":569,"context_line":"                if new_mapping[vnfd] !\u003d vnf:"},{"line_number":570,"context_line":"                    updated_vnf_mapping[vnfd] \u003d new_mapping[vnfd]"},{"line_number":571,"context_line":"                else:"},{"line_number":572,"context_line":"                    raise nfvo. \\"},{"line_number":573,"context_line":"                        VnfMappingAlreadyExistsException(vnfd\u003dvnfd,"},{"line_number":574,"context_line":"                                                         vnf\u003dvnf)"},{"line_number":575,"context_line":"        return updated_vnf_mapping"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_vnf_mapping(self, context, vnf_mapping, vnf_members):"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_66c86373","line":574,"range":{"start_line":572,"start_character":20,"end_line":574,"end_character":65},"updated":"2018-01-10 06:46:16.000000000","message":"Not sure, but Why to raise exception if some mapping already same?","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":569,"context_line":"                if new_mapping[vnfd] !\u003d vnf:"},{"line_number":570,"context_line":"                    updated_vnf_mapping[vnfd] \u003d new_mapping[vnfd]"},{"line_number":571,"context_line":"                else:"},{"line_number":572,"context_line":"                    raise nfvo. \\"},{"line_number":573,"context_line":"                        VnfMappingAlreadyExistsException(vnfd\u003dvnfd,"},{"line_number":574,"context_line":"                                                         vnf\u003dvnf)"},{"line_number":575,"context_line":"        return updated_vnf_mapping"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_vnf_mapping(self, context, vnf_mapping, vnf_members):"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_a48c23d7","line":574,"range":{"start_line":572,"start_character":20,"end_line":574,"end_character":65},"in_reply_to":"9f91af0f_66c86373","updated":"2018-01-10 08:47:23.000000000","message":"Because I thought that would be good to inform the user that the mapping that he tries to create already exists. \n\nThis is not harmfull at all for the Tacker ecosystem because it will raise the exception and it will leave the database in an ACTIVE state. This is just for informing the user.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"b7eace15696c59ce91f179872ed45e05ad091038","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        a mix of the vnf_mapping which already exists in database"},{"line_number":562,"context_line":"        and the new mapping that the user passes."},{"line_number":563,"context_line":"        \"\"\""},{"line_number":564,"context_line":"        updated_vnf_mapping \u003d dict()"},{"line_number":565,"context_line":"        for vnfd, vnf in old_mapping.items():"},{"line_number":566,"context_line":"            if new_mapping.get(vnfd) is None:"},{"line_number":567,"context_line":"                updated_vnf_mapping[vnfd] \u003d vnf"},{"line_number":568,"context_line":"            else:"},{"line_number":569,"context_line":"                if new_mapping[vnfd] !\u003d vnf:"},{"line_number":570,"context_line":"                    updated_vnf_mapping[vnfd] \u003d new_mapping[vnfd]"},{"line_number":571,"context_line":"                else:"},{"line_number":572,"context_line":"                    raise nfvo. \\"},{"line_number":573,"context_line":"                        VnfMappingAlreadyExistsException(vnfd\u003dvnfd,"},{"line_number":574,"context_line":"                                                         vnf\u003dvnf)"},{"line_number":575,"context_line":"        return updated_vnf_mapping"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_vnf_mapping(self, context, vnf_mapping, vnf_members):"},{"line_number":578,"context_line":"        \"\"\"Creates/validates a mapping of VNFD names to VNF IDs for NFP."}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_26ca5b1a","line":575,"range":{"start_line":564,"start_character":8,"end_line":575,"end_character":34},"updated":"2018-01-10 06:46:16.000000000","message":"Instead of above logic, can\u0027t we just use dict.update()?\n\nEx.\nupdated_vnf_mapping \u003d old_mapping.copy()\nupdated_vnf_mapping.update(new_mapping)\nreturn updated_vnf_mapping","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        a mix of the vnf_mapping which already exists in database"},{"line_number":562,"context_line":"        and the new mapping that the user passes."},{"line_number":563,"context_line":"        \"\"\""},{"line_number":564,"context_line":"        updated_vnf_mapping \u003d dict()"},{"line_number":565,"context_line":"        for vnfd, vnf in old_mapping.items():"},{"line_number":566,"context_line":"            if new_mapping.get(vnfd) is None:"},{"line_number":567,"context_line":"                updated_vnf_mapping[vnfd] \u003d vnf"},{"line_number":568,"context_line":"            else:"},{"line_number":569,"context_line":"                if new_mapping[vnfd] !\u003d vnf:"},{"line_number":570,"context_line":"                    updated_vnf_mapping[vnfd] \u003d new_mapping[vnfd]"},{"line_number":571,"context_line":"                else:"},{"line_number":572,"context_line":"                    raise nfvo. \\"},{"line_number":573,"context_line":"                        VnfMappingAlreadyExistsException(vnfd\u003dvnfd,"},{"line_number":574,"context_line":"                                                         vnf\u003dvnf)"},{"line_number":575,"context_line":"        return updated_vnf_mapping"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_vnf_mapping(self, context, vnf_mapping, vnf_members):"},{"line_number":578,"context_line":"        \"\"\"Creates/validates a mapping of VNFD names to VNF IDs for NFP."}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_a4018308","line":575,"range":{"start_line":564,"start_character":8,"end_line":575,"end_character":34},"in_reply_to":"9f91af0f_26ca5b1a","updated":"2018-01-10 08:47:23.000000000","message":"I think you are right on this. I will change that thanks!","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        a mix of the vnf_mapping which already exists in database"},{"line_number":562,"context_line":"        and the new mapping that the user passes."},{"line_number":563,"context_line":"        \"\"\""},{"line_number":564,"context_line":"        updated_vnf_mapping \u003d dict()"},{"line_number":565,"context_line":"        for vnfd, vnf in old_mapping.items():"},{"line_number":566,"context_line":"            if new_mapping.get(vnfd) is None:"},{"line_number":567,"context_line":"                updated_vnf_mapping[vnfd] \u003d vnf"},{"line_number":568,"context_line":"            else:"},{"line_number":569,"context_line":"                if new_mapping[vnfd] !\u003d vnf:"},{"line_number":570,"context_line":"                    updated_vnf_mapping[vnfd] \u003d new_mapping[vnfd]"},{"line_number":571,"context_line":"                else:"},{"line_number":572,"context_line":"                    raise nfvo. \\"},{"line_number":573,"context_line":"                        VnfMappingAlreadyExistsException(vnfd\u003dvnfd,"},{"line_number":574,"context_line":"                                                         vnf\u003dvnf)"},{"line_number":575,"context_line":"        return updated_vnf_mapping"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_vnf_mapping(self, context, vnf_mapping, vnf_members):"},{"line_number":578,"context_line":"        \"\"\"Creates/validates a mapping of VNFD names to VNF IDs for NFP."}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_d3dc451a","line":575,"range":{"start_line":564,"start_character":8,"end_line":575,"end_character":34},"in_reply_to":"9f91af0f_a4018308","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"584ab8d9c5d3af88ffd634b78d9478b160fa75a2","unresolved":false,"context_lines":[{"line_number":550,"context_line":"                if vnfd not in vnf_members:"},{"line_number":551,"context_line":"                    raise nfvo.VnfMappingNotValidException(vnfd\u003dvnfd)"},{"line_number":552,"context_line":"                else:"},{"line_number":553,"context_line":"                    if not uuidutils.is_uuid_like(vnf):"},{"line_number":554,"context_line":"                        raise nfvo. \\"},{"line_number":555,"context_line":"                            VnfMappingUnspecifiedVnfException(vnfd\u003dvnfd)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"7f96bb07_ba226551","line":553,"range":{"start_line":553,"start_character":27,"end_line":553,"end_character":55},"updated":"2018-01-15 08:14:33.000000000","message":"Why this check, Can\u0027t it be a VNF name?","commit_id":"28174153da0f95234e243178a119ca5385d641b3"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"11d9b37d3a7237319d76c6f1fe112db0485f9c2f","unresolved":false,"context_lines":[{"line_number":550,"context_line":"                if vnfd not in vnf_members:"},{"line_number":551,"context_line":"                    raise nfvo.VnfMappingNotValidException(vnfd\u003dvnfd)"},{"line_number":552,"context_line":"                else:"},{"line_number":553,"context_line":"                    if not uuidutils.is_uuid_like(vnf):"},{"line_number":554,"context_line":"                        raise nfvo. \\"},{"line_number":555,"context_line":"                            VnfMappingUnspecifiedVnfException(vnfd\u003dvnfd)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"7f96bb07_8992c19d","line":553,"range":{"start_line":553,"start_character":27,"end_line":553,"end_character":55},"in_reply_to":"7f96bb07_00e8c6b1","updated":"2018-01-15 10:04:52.000000000","message":"Done","commit_id":"28174153da0f95234e243178a119ca5385d641b3"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d81fc314a17066550b5b20daa38dfa2372b2a02b","unresolved":false,"context_lines":[{"line_number":550,"context_line":"                if vnfd not in vnf_members:"},{"line_number":551,"context_line":"                    raise nfvo.VnfMappingNotValidException(vnfd\u003dvnfd)"},{"line_number":552,"context_line":"                else:"},{"line_number":553,"context_line":"                    if not uuidutils.is_uuid_like(vnf):"},{"line_number":554,"context_line":"                        raise nfvo. \\"},{"line_number":555,"context_line":"                            VnfMappingUnspecifiedVnfException(vnfd\u003dvnfd)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"7f96bb07_00e8c6b1","line":553,"range":{"start_line":553,"start_character":27,"end_line":553,"end_character":55},"in_reply_to":"7f96bb07_ba226551","updated":"2018-01-15 08:36:31.000000000","message":"Propably this check is redundant I will remove it thanks!","commit_id":"28174153da0f95234e243178a119ca5385d641b3"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"584ab8d9c5d3af88ffd634b78d9478b160fa75a2","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        a mix of the vnf_mapping which already exists in database"},{"line_number":563,"context_line":"        and the new mapping that the user passes."},{"line_number":564,"context_line":"        \"\"\""},{"line_number":565,"context_line":"        updated_vnf_mapping \u003d dict()"},{"line_number":566,"context_line":"        updated_vnf_mapping \u003d old_mapping.copy()"},{"line_number":567,"context_line":"        updated_vnf_mapping.update(new_mapping)"},{"line_number":568,"context_line":"        return updated_vnf_mapping"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f96bb07_70c71f14","line":565,"range":{"start_line":565,"start_character":7,"end_line":565,"end_character":36},"updated":"2018-01-15 08:14:33.000000000","message":"redundant","commit_id":"28174153da0f95234e243178a119ca5385d641b3"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d81fc314a17066550b5b20daa38dfa2372b2a02b","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        a mix of the vnf_mapping which already exists in database"},{"line_number":563,"context_line":"        and the new mapping that the user passes."},{"line_number":564,"context_line":"        \"\"\""},{"line_number":565,"context_line":"        updated_vnf_mapping \u003d dict()"},{"line_number":566,"context_line":"        updated_vnf_mapping \u003d old_mapping.copy()"},{"line_number":567,"context_line":"        updated_vnf_mapping.update(new_mapping)"},{"line_number":568,"context_line":"        return updated_vnf_mapping"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f96bb07_c0d17efd","line":565,"range":{"start_line":565,"start_character":7,"end_line":565,"end_character":36},"in_reply_to":"7f96bb07_70c71f14","updated":"2018-01-15 08:36:31.000000000","message":"yes you are right I will remove it thanks!","commit_id":"28174153da0f95234e243178a119ca5385d641b3"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"11d9b37d3a7237319d76c6f1fe112db0485f9c2f","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        a mix of the vnf_mapping which already exists in database"},{"line_number":563,"context_line":"        and the new mapping that the user passes."},{"line_number":564,"context_line":"        \"\"\""},{"line_number":565,"context_line":"        updated_vnf_mapping \u003d dict()"},{"line_number":566,"context_line":"        updated_vnf_mapping \u003d old_mapping.copy()"},{"line_number":567,"context_line":"        updated_vnf_mapping.update(new_mapping)"},{"line_number":568,"context_line":"        return updated_vnf_mapping"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f96bb07_a98d3d7c","line":565,"range":{"start_line":565,"start_character":7,"end_line":565,"end_character":36},"in_reply_to":"7f96bb07_c0d17efd","updated":"2018-01-15 10:04:52.000000000","message":"Done","commit_id":"28174153da0f95234e243178a119ca5385d641b3"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                if val is not None:"},{"line_number":538,"context_line":"                    return val"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def _validate_vnf_mapping(self, vnf_mapping, vnf_members):"},{"line_number":541,"context_line":"        \"\"\"Validate whether or not the vnf_mapping is valid for update."},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        In the update_vnnfg procedure we need to know whether or not the"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_03208547","line":540,"range":{"start_line":540,"start_character":8,"end_line":540,"end_character":29},"updated":"2018-01-17 06:27:42.000000000","message":"_validate_vnfd_in_vnf_mapping","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                if val is not None:"},{"line_number":538,"context_line":"                    return val"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def _validate_vnf_mapping(self, vnf_mapping, vnf_members):"},{"line_number":541,"context_line":"        \"\"\"Validate whether or not the vnf_mapping is valid for update."},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        In the update_vnnfg procedure we need to know whether or not the"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_2a054a46","line":540,"range":{"start_line":540,"start_character":8,"end_line":540,"end_character":29},"in_reply_to":"7f96bb07_03208547","updated":"2018-01-17 13:05:55.000000000","message":"Done","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"}],"tacker/extensions/nfvo.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"eff73f6ff2ddc7bf3d6f8a9c1a4f6e46a904824a","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        },"},{"line_number":475,"context_line":"        \u0027vnffgd_template\u0027: {"},{"line_number":476,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":477,"context_line":"            \u0027allow_put\u0027: False,"},{"line_number":478,"context_line":"            \u0027validate\u0027: {\u0027type:dict_or_nodata\u0027: None},"},{"line_number":479,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":480,"context_line":"            \u0027default\u0027: None,"}],"source_content_type":"text/x-python","patch_set":24,"id":"df87a7cf_c9d97c56","line":477,"range":{"start_line":477,"start_character":25,"end_line":477,"end_character":30},"updated":"2017-12-18 17:19:27.000000000","message":"You should set it to True. Because Tacker client is not merged yet, we have to download this patch (https://review.openstack.org/#/c/526417) and install Tacker client again. Then we can extract from \"vnffgd_template\" to get new vnffgd template.","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"2a581497fd1914dd6a80e946a3277c27da6e5d2c","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        },"},{"line_number":475,"context_line":"        \u0027vnffgd_template\u0027: {"},{"line_number":476,"context_line":"            \u0027allow_post\u0027: True,"},{"line_number":477,"context_line":"            \u0027allow_put\u0027: False,"},{"line_number":478,"context_line":"            \u0027validate\u0027: {\u0027type:dict_or_nodata\u0027: None},"},{"line_number":479,"context_line":"            \u0027is_visible\u0027: True,"},{"line_number":480,"context_line":"            \u0027default\u0027: None,"}],"source_content_type":"text/x-python","patch_set":24,"id":"df87a7cf_72512bd9","line":477,"range":{"start_line":477,"start_character":25,"end_line":477,"end_character":30},"in_reply_to":"df87a7cf_c9d97c56","updated":"2017-12-19 08:19:18.000000000","message":"Same here I would do this to subsequent commits.","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"c812b35289d556652d9e150694f56a6cb04449e3","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class VnfMappingNotValidException(exceptions.TackerException):"},{"line_number":249,"context_line":"    message \u003d _(\u0027The %(vnfd) is not found in constituent VNFs\u0027)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class VnfMappingUnspecifiedVnfException(exceptions.TackerException):"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_a156b15b","line":249,"range":{"start_line":249,"start_character":21,"end_line":249,"end_character":28},"updated":"2018-01-05 12:43:29.000000000","message":"Need change it to %(vnfd)s. Example: https://github.com/openstack/tacker/blob/master/tacker/extensions/nfvo.py#L71. I don\u0027t know exactly, but all values must end with \u0027s\u0027","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"1469a0e451b2764f3fc07d42a73ccf84b2f1849c","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class VnfMappingNotValidException(exceptions.TackerException):"},{"line_number":249,"context_line":"    message \u003d _(\u0027The %(vnfd) is not found in constituent VNFs\u0027)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class VnfMappingUnspecifiedVnfException(exceptions.TackerException):"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_05f1a86b","line":249,"range":{"start_line":249,"start_character":21,"end_line":249,"end_character":28},"in_reply_to":"9f91af0f_a156b15b","updated":"2018-01-05 13:24:43.000000000","message":"Done","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"c812b35289d556652d9e150694f56a6cb04449e3","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class VnfMappingUnspecifiedVnfException(exceptions.TackerException):"},{"line_number":253,"context_line":"    message \u003d _(\u0027No mapping specified for the %(vnfd)\u0027)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"class VnfMappingAlreadyExistsException(exceptions.TackerException):"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_c1517564","line":253,"range":{"start_line":253,"start_character":45,"end_line":253,"end_character":54},"updated":"2018-01-05 12:43:29.000000000","message":"same here","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"1469a0e451b2764f3fc07d42a73ccf84b2f1849c","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class VnfMappingUnspecifiedVnfException(exceptions.TackerException):"},{"line_number":253,"context_line":"    message \u003d _(\u0027No mapping specified for the %(vnfd)\u0027)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"class VnfMappingAlreadyExistsException(exceptions.TackerException):"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_25f4ec5a","line":253,"range":{"start_line":253,"start_character":45,"end_line":253,"end_character":54},"in_reply_to":"9f91af0f_c1517564","updated":"2018-01-05 13:24:43.000000000","message":"Done","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"c812b35289d556652d9e150694f56a6cb04449e3","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"class VnfMappingAlreadyExistsException(exceptions.TackerException):"},{"line_number":257,"context_line":"    message \u003d _(\u0027The %(vnfd):%(vnf) mapping already exists\u0027)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"class NSDInUse(exceptions.InUse):"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_814b6dae","line":257,"range":{"start_line":257,"start_character":21,"end_line":257,"end_character":35},"updated":"2018-01-05 12:43:29.000000000","message":"same here","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"1469a0e451b2764f3fc07d42a73ccf84b2f1849c","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"class VnfMappingAlreadyExistsException(exceptions.TackerException):"},{"line_number":257,"context_line":"    message \u003d _(\u0027The %(vnfd):%(vnf) mapping already exists\u0027)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"class NSDInUse(exceptions.InUse):"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_c5eae073","line":257,"range":{"start_line":257,"start_character":21,"end_line":257,"end_character":35},"in_reply_to":"9f91af0f_814b6dae","updated":"2018-01-05 13:24:43.000000000","message":"Done","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class VnfMappingNotValidException(exceptions.TackerException):"},{"line_number":249,"context_line":"    message \u003d _(\u0027The %(vnfd)s is not found in constituent VNFs\u0027)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class NSDInUse(exceptions.InUse):"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_a3c67167","line":249,"range":{"start_line":249,"start_character":58,"end_line":249,"end_character":62},"updated":"2018-01-17 06:27:42.000000000","message":"VNFDs","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class VnfMappingNotValidException(exceptions.TackerException):"},{"line_number":249,"context_line":"    message \u003d _(\u0027The %(vnfd)s is not found in constituent VNFs\u0027)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class NSDInUse(exceptions.InUse):"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_0af88e46","line":249,"range":{"start_line":249,"start_character":58,"end_line":249,"end_character":62},"in_reply_to":"7f96bb07_a3c67167","updated":"2018-01-17 13:05:55.000000000","message":"Done","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":243,"context_line":"class VnfMappingNotFoundException(exceptions.NotFound):"},{"line_number":244,"context_line":"    message \u003d _(\u0027VNF mapping is not defined. Currently only the vnf mapping \u0027"},{"line_number":245,"context_line":"                \u0027update is supported for the VNFFG update.\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class VnfMappingNotValidException(exceptions.TackerException):"},{"line_number":249,"context_line":"    message \u003d _(\u0027The %(vnfd)s is not found in constituent VNFDs\u0027)"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f96bb07_ad4da9c5","line":246,"updated":"2018-01-19 11:13:04.000000000","message":"may be, \n\n       VNF mapping not found/defined.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":243,"context_line":"class VnfMappingNotFoundException(exceptions.NotFound):"},{"line_number":244,"context_line":"    message \u003d _(\u0027VNF mapping is not defined. Currently only the vnf mapping \u0027"},{"line_number":245,"context_line":"                \u0027update is supported for the VNFFG update.\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class VnfMappingNotValidException(exceptions.TackerException):"},{"line_number":249,"context_line":"    message \u003d _(\u0027The %(vnfd)s is not found in constituent VNFDs\u0027)"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f96bb07_f98cd080","line":246,"in_reply_to":"7f96bb07_ad4da9c5","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"}],"tacker/nfvo/drivers/vim/openstack_driver.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"9c7ccc881852bc9eb461a8bac31705b6de17a05b","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        port_chain[\u0027flow_classifiers\u0027] \u003d [fc_id]"},{"line_number":447,"context_line":"        return neutronclient_.port_chain_create(port_chain)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def update_chain(self, chain_id, fc_ids, vnfs, replace_vnfs,"},{"line_number":450,"context_line":"                     symmetrical\u003dFalse, auth_attr\u003dNone):"},{"line_number":451,"context_line":"        # (s3wong): chain can be updated either for"},{"line_number":452,"context_line":"        # the list of fc and/or list of port-pair-group"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f4b6375_9ac5920d","line":449,"range":{"start_line":449,"start_character":51,"end_line":449,"end_character":63},"updated":"2017-10-28 05:42:44.000000000","message":"IMO, you don\u0027t need \"replace_vnfs\" here","commit_id":"2c6a9602091ef9143ecc326c6d09e997b2080582"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"9c7ccc881852bc9eb461a8bac31705b6de17a05b","unresolved":false,"context_lines":[{"line_number":482,"context_line":"        for vnf in vnfs:"},{"line_number":483,"context_line":"            port_pair_group \u003d {}"},{"line_number":484,"context_line":"            port_pair \u003d {}"},{"line_number":485,"context_line":"            if vnf[\u0027name\u0027] in old_ppgs_dict:"},{"line_number":486,"context_line":"                new_ppgs.append(old_ppgs_dict[vnf[\u0027name\u0027]])"},{"line_number":487,"context_line":"            else:"},{"line_number":488,"context_line":"                port_pair_group[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-port-pair-group\u0027"},{"line_number":489,"context_line":"                port_pair_group[\u0027description\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f4b6375_9561e314","line":486,"range":{"start_line":485,"start_character":0,"end_line":486,"end_character":59},"updated":"2017-10-28 05:42:44.000000000","message":"add something like this:\n    old_ppgs_dict.pop(vnf[\u0027name\u0027])\nAfter loop, old_ppgs_dict contains vnfs that are not updated. IMO, it becomes replace_vnfs, and also makes clean code.","commit_id":"2c6a9602091ef9143ecc326c6d09e997b2080582"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"47925a19e922a2952a6828c4c5a41bca2ff65aeb","unresolved":false,"context_lines":[{"line_number":482,"context_line":"        for vnf in vnfs:"},{"line_number":483,"context_line":"            port_pair_group \u003d {}"},{"line_number":484,"context_line":"            port_pair \u003d {}"},{"line_number":485,"context_line":"            if vnf[\u0027name\u0027] in old_ppgs_dict:"},{"line_number":486,"context_line":"                new_ppgs.append(old_ppgs_dict[vnf[\u0027name\u0027]])"},{"line_number":487,"context_line":"            else:"},{"line_number":488,"context_line":"                port_pair_group[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-port-pair-group\u0027"},{"line_number":489,"context_line":"                port_pair_group[\u0027description\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f4b6375_51912af1","line":486,"range":{"start_line":485,"start_character":0,"end_line":486,"end_character":59},"in_reply_to":"3f4b6375_9561e314","updated":"2017-10-30 09:59:42.000000000","message":"Good catch! I think you are right I already updated the patch with your suggestion.","commit_id":"2c6a9602091ef9143ecc326c6d09e997b2080582"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"76f5560229ba124836d40a1caf8b460a8a61c7a0","unresolved":false,"context_lines":[{"line_number":483,"context_line":"            port_pair_group \u003d {}"},{"line_number":484,"context_line":"            port_pair \u003d {}"},{"line_number":485,"context_line":"            if vnf[\u0027name\u0027] in old_ppgs_dict:"},{"line_number":486,"context_line":"                new_ppgs.append(old_ppgs_dict.pop(vnf[\u0027name\u0027]))"},{"line_number":487,"context_line":"            else:"},{"line_number":488,"context_line":"                port_pair_group[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-port-pair-group\u0027"},{"line_number":489,"context_line":"                port_pair_group[\u0027description\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_776536e1","line":486,"range":{"start_line":486,"start_character":16,"end_line":486,"end_character":63},"updated":"2017-10-30 11:43:19.000000000","message":"I think you should break it into 2 sentences :)","commit_id":"294560ff64c889287a337d4aa85c03129493eefe"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"221cbc777b17805eb2c88bb10f1cfcb0e3002e22","unresolved":false,"context_lines":[{"line_number":483,"context_line":"            port_pair_group \u003d {}"},{"line_number":484,"context_line":"            port_pair \u003d {}"},{"line_number":485,"context_line":"            if vnf[\u0027name\u0027] in old_ppgs_dict:"},{"line_number":486,"context_line":"                new_ppgs.append(old_ppgs_dict.pop(vnf[\u0027name\u0027]))"},{"line_number":487,"context_line":"            else:"},{"line_number":488,"context_line":"                port_pair_group[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-port-pair-group\u0027"},{"line_number":489,"context_line":"                port_pair_group[\u0027description\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_7de2b703","line":486,"range":{"start_line":486,"start_character":16,"end_line":486,"end_character":63},"in_reply_to":"3f4b6375_776536e1","updated":"2017-10-30 12:45:57.000000000","message":"Done","commit_id":"294560ff64c889287a337d4aa85c03129493eefe"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"eff73f6ff2ddc7bf3d6f8a9c1a4f6e46a904824a","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                else:"},{"line_number":507,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":508,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[1]"},{"line_number":509,"context_line":"                port_pair_id \u003d neutronclient_.port_pair_create(port_pair)"},{"line_number":510,"context_line":"                if not port_pair_id:"},{"line_number":511,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":512,"context_line":"                                \"creation failed for \""},{"line_number":513,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":514,"context_line":"                    return None"},{"line_number":515,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":516,"context_line":"                port_pair_group_id \u003d \\"}],"source_content_type":"text/x-python","patch_set":24,"id":"df87a7cf_248a8f69","line":513,"range":{"start_line":509,"start_character":16,"end_line":513,"end_character":68},"updated":"2017-12-18 17:19:27.000000000","message":"I think you can change to:\ntry:\n  ...\nexcept Exception:\n  LOG.warning(...)","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"2a581497fd1914dd6a80e946a3277c27da6e5d2c","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                else:"},{"line_number":507,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":508,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[1]"},{"line_number":509,"context_line":"                port_pair_id \u003d neutronclient_.port_pair_create(port_pair)"},{"line_number":510,"context_line":"                if not port_pair_id:"},{"line_number":511,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":512,"context_line":"                                \"creation failed for \""},{"line_number":513,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":514,"context_line":"                    return None"},{"line_number":515,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":516,"context_line":"                port_pair_group_id \u003d \\"}],"source_content_type":"text/x-python","patch_set":24,"id":"df87a7cf_f20bfbd1","line":513,"range":{"start_line":509,"start_character":16,"end_line":513,"end_character":68},"in_reply_to":"df87a7cf_248a8f69","updated":"2017-12-19 08:19:18.000000000","message":"OK I will do that thanks a lot! :)","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"77bb30d27f11ad7e4030ffe59e6651998af0cf72","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                else:"},{"line_number":507,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":508,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[1]"},{"line_number":509,"context_line":"                port_pair_id \u003d neutronclient_.port_pair_create(port_pair)"},{"line_number":510,"context_line":"                if not port_pair_id:"},{"line_number":511,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":512,"context_line":"                                \"creation failed for \""},{"line_number":513,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":514,"context_line":"                    return None"},{"line_number":515,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":516,"context_line":"                port_pair_group_id \u003d \\"}],"source_content_type":"text/x-python","patch_set":24,"id":"df87a7cf_6df06a92","line":513,"range":{"start_line":509,"start_character":16,"end_line":513,"end_character":68},"in_reply_to":"df87a7cf_f20bfbd1","updated":"2017-12-19 09:17:22.000000000","message":"Actually I think that the way I\u0027ve written it is correct because the neutronclient_.port_pair_create(port_pair) \ncan return None too.","commit_id":"a6b707dde53961bd26a0220a78003a4daa04b6f7"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":462,"context_line":"            return None"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        if symmetrical:"},{"line_number":465,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":466,"context_line":"            raise NotImplementedError(\u0027symmetrical chain not supported\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":469,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_dc20219e","line":466,"range":{"start_line":464,"start_character":0,"end_line":466,"end_character":72},"updated":"2018-01-10 02:42:08.000000000","message":"no, we already support it.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"47b47e04a9b6533602522f247a64927a6a19a52b","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":462,"context_line":"            return None"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        if symmetrical:"},{"line_number":465,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":466,"context_line":"            raise NotImplementedError(\u0027symmetrical chain not supported\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":469,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_7501e3ae","line":466,"range":{"start_line":464,"start_character":0,"end_line":466,"end_character":72},"in_reply_to":"9f91af0f_1f599633","updated":"2018-01-10 10:21:31.000000000","message":"I asked the networking sfc guys and they said to me that the networking-sfc currently does not support the update of a port-chain from non-symmetric to symmetric and vice versa.\n\nSo we should propably delete the symmetric parameter from tacker client side too.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"882cb603042d939aea219f52c56f64ac2091e35f","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":462,"context_line":"            return None"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        if symmetrical:"},{"line_number":465,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":466,"context_line":"            raise NotImplementedError(\u0027symmetrical chain not supported\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":469,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_c25d9279","line":466,"range":{"start_line":464,"start_character":0,"end_line":466,"end_character":72},"in_reply_to":"9f91af0f_7501e3ae","updated":"2018-01-10 13:50:56.000000000","message":"ok, let us put it here, but change the error msg into\" update the symmetrical is not supported.\u0027","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":462,"context_line":"            return None"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        if symmetrical:"},{"line_number":465,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":466,"context_line":"            raise NotImplementedError(\u0027symmetrical chain not supported\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":469,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_93e6bde8","line":466,"range":{"start_line":464,"start_character":0,"end_line":466,"end_character":72},"in_reply_to":"9f91af0f_c25d9279","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":462,"context_line":"            return None"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"        if symmetrical:"},{"line_number":465,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":466,"context_line":"            raise NotImplementedError(\u0027symmetrical chain not supported\u0027)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":469,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_1f599633","line":466,"range":{"start_line":464,"start_character":0,"end_line":466,"end_character":72},"in_reply_to":"9f91af0f_dc20219e","updated":"2018-01-10 08:47:23.000000000","message":"Oh ok I will check that. But last time I looked I didn\u0027t any support of the symmetrical.\n\nMaybe something has changed since then and I haven\u0027t noticed.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                    LOG.warning(\"Chain update failed due to missing \""},{"line_number":491,"context_line":"                                \"connection point info in VNF \""},{"line_number":492,"context_line":"                                \"%(vnfname)s\", {\u0027vnfname\u0027: vnf[\u0027name\u0027]})"},{"line_number":493,"context_line":"                    return None"},{"line_number":494,"context_line":"                cp_list \u003d vnf[CONNECTION_POINT]"},{"line_number":495,"context_line":"                num_cps \u003d len(cp_list)"},{"line_number":496,"context_line":"                if num_cps !\u003d 1 and num_cps !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_7c447547","line":493,"range":{"start_line":493,"start_character":27,"end_line":493,"end_character":31},"updated":"2018-01-10 02:42:08.000000000","message":"raise an exeception here","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"0039a8d5f7dfae6b2fadc584fd1ed16daf7f14fe","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                    LOG.warning(\"Chain update failed due to missing \""},{"line_number":491,"context_line":"                                \"connection point info in VNF \""},{"line_number":492,"context_line":"                                \"%(vnfname)s\", {\u0027vnfname\u0027: vnf[\u0027name\u0027]})"},{"line_number":493,"context_line":"                    return None"},{"line_number":494,"context_line":"                cp_list \u003d vnf[CONNECTION_POINT]"},{"line_number":495,"context_line":"                num_cps \u003d len(cp_list)"},{"line_number":496,"context_line":"                if num_cps !\u003d 1 and num_cps !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_7c48eb2b","line":493,"range":{"start_line":493,"start_character":27,"end_line":493,"end_character":31},"in_reply_to":"9f91af0f_7c447547","updated":"2018-01-10 12:06:22.000000000","message":"You have a point here. But I am not raising an exception here because I am following the same notion with the create_chain function which returns None too [1]\n\n[1]: https://github.com/openstack/tacker/blob/master/tacker/nfvo/drivers/vim/openstack_driver.py#L402","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                    LOG.warning(\"Chain update failed due to missing \""},{"line_number":491,"context_line":"                                \"connection point info in VNF \""},{"line_number":492,"context_line":"                                \"%(vnfname)s\", {\u0027vnfname\u0027: vnf[\u0027name\u0027]})"},{"line_number":493,"context_line":"                    return None"},{"line_number":494,"context_line":"                cp_list \u003d vnf[CONNECTION_POINT]"},{"line_number":495,"context_line":"                num_cps \u003d len(cp_list)"},{"line_number":496,"context_line":"                if num_cps !\u003d 1 and num_cps !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_b3ebb9ae","line":493,"range":{"start_line":493,"start_character":27,"end_line":493,"end_character":31},"in_reply_to":"9f91af0f_7c48eb2b","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":497,"context_line":"                    LOG.warning(\"Chain update failed due to wrong number \""},{"line_number":498,"context_line":"                                \"of connection points: expected [1 | 2],\""},{"line_number":499,"context_line":"                                \"got %(cps)d\", {\u0027cps\u0027: num_cps})"},{"line_number":500,"context_line":"                    return None"},{"line_number":501,"context_line":"                port_pair[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-connection-points\u0027"},{"line_number":502,"context_line":"                port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":503,"context_line":"                if num_cps \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_1c79a992","line":500,"range":{"start_line":500,"start_character":27,"end_line":500,"end_character":31},"updated":"2018-01-10 02:42:08.000000000","message":"dito","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"0039a8d5f7dfae6b2fadc584fd1ed16daf7f14fe","unresolved":false,"context_lines":[{"line_number":497,"context_line":"                    LOG.warning(\"Chain update failed due to wrong number \""},{"line_number":498,"context_line":"                                \"of connection points: expected [1 | 2],\""},{"line_number":499,"context_line":"                                \"got %(cps)d\", {\u0027cps\u0027: num_cps})"},{"line_number":500,"context_line":"                    return None"},{"line_number":501,"context_line":"                port_pair[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-connection-points\u0027"},{"line_number":502,"context_line":"                port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":503,"context_line":"                if num_cps \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_9c584ffa","line":500,"range":{"start_line":500,"start_character":27,"end_line":500,"end_character":31},"in_reply_to":"9f91af0f_1c79a992","updated":"2018-01-10 12:06:22.000000000","message":"ditto","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":497,"context_line":"                    LOG.warning(\"Chain update failed due to wrong number \""},{"line_number":498,"context_line":"                                \"of connection points: expected [1 | 2],\""},{"line_number":499,"context_line":"                                \"got %(cps)d\", {\u0027cps\u0027: num_cps})"},{"line_number":500,"context_line":"                    return None"},{"line_number":501,"context_line":"                port_pair[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-connection-points\u0027"},{"line_number":502,"context_line":"                port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":503,"context_line":"                if num_cps \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_53d035f8","line":500,"range":{"start_line":500,"start_character":27,"end_line":500,"end_character":31},"in_reply_to":"9f91af0f_9c584ffa","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":512,"context_line":"                                \"creation failed for \""},{"line_number":513,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":514,"context_line":"                    return None"},{"line_number":515,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":516,"context_line":"                port_pair_group_id \u003d \\"},{"line_number":517,"context_line":"                    neutronclient_.port_pair_group_create(port_pair_group)"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_3c7cad81","line":514,"range":{"start_line":514,"start_character":27,"end_line":514,"end_character":31},"updated":"2018-01-10 02:42:08.000000000","message":"dito","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":512,"context_line":"                                \"creation failed for \""},{"line_number":513,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":514,"context_line":"                    return None"},{"line_number":515,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":516,"context_line":"                port_pair_group_id \u003d \\"},{"line_number":517,"context_line":"                    neutronclient_.port_pair_group_create(port_pair_group)"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_73cd315c","line":514,"range":{"start_line":514,"start_character":27,"end_line":514,"end_character":31},"in_reply_to":"9f91af0f_1c6c3f9a","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"0039a8d5f7dfae6b2fadc584fd1ed16daf7f14fe","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":512,"context_line":"                                \"creation failed for \""},{"line_number":513,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":514,"context_line":"                    return None"},{"line_number":515,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":516,"context_line":"                port_pair_group_id \u003d \\"},{"line_number":517,"context_line":"                    neutronclient_.port_pair_group_create(port_pair_group)"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_1c6c3f9a","line":514,"range":{"start_line":514,"start_character":27,"end_line":514,"end_character":31},"in_reply_to":"9f91af0f_3c7cad81","updated":"2018-01-10 12:06:22.000000000","message":"ditto","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                    LOG.warning(\"Chain creation failed due to port pair \""},{"line_number":520,"context_line":"                                \"group creation failed for vnf \""},{"line_number":521,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":522,"context_line":"                    return None"},{"line_number":523,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":524,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_fc7165a9","line":522,"range":{"start_line":522,"start_character":27,"end_line":522,"end_character":31},"updated":"2018-01-10 02:42:08.000000000","message":"dito","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                    LOG.warning(\"Chain creation failed due to port pair \""},{"line_number":520,"context_line":"                                \"group creation failed for vnf \""},{"line_number":521,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":522,"context_line":"                    return None"},{"line_number":523,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":524,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_13daad16","line":522,"range":{"start_line":522,"start_character":27,"end_line":522,"end_character":31},"in_reply_to":"9f91af0f_3c67c3b9","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"0039a8d5f7dfae6b2fadc584fd1ed16daf7f14fe","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                    LOG.warning(\"Chain creation failed due to port pair \""},{"line_number":520,"context_line":"                                \"group creation failed for vnf \""},{"line_number":521,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":522,"context_line":"                    return None"},{"line_number":523,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":524,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_3c67c3b9","line":522,"range":{"start_line":522,"start_character":27,"end_line":522,"end_character":31},"in_reply_to":"9f91af0f_fc7165a9","updated":"2018-01-10 12:06:22.000000000","message":"ditto","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":522,"context_line":"                    return None"},{"line_number":523,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":524,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        pc_id \u003d neutronclient_.port_chain_update(chain_id,"},{"line_number":527,"context_line":"                                                 updated_port_chain)"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_5cb7313b","line":524,"range":{"start_line":524,"start_character":8,"end_line":524,"end_character":26},"updated":"2018-01-10 02:42:08.000000000","message":"we also have to delete the newly created port pair if exeception happens during creation of the whole port pair group.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":522,"context_line":"                    return None"},{"line_number":523,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":524,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        pc_id \u003d neutronclient_.port_chain_update(chain_id,"},{"line_number":527,"context_line":"                                                 updated_port_chain)"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_df3eceb6","line":524,"range":{"start_line":524,"start_character":8,"end_line":524,"end_character":26},"in_reply_to":"9f91af0f_5cb7313b","updated":"2018-01-10 08:47:23.000000000","message":"ok I will fix that thanks!","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":522,"context_line":"                    return None"},{"line_number":523,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":524,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        pc_id \u003d neutronclient_.port_chain_update(chain_id,"},{"line_number":527,"context_line":"                                                 updated_port_chain)"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_33d7a9f0","line":524,"range":{"start_line":524,"start_character":8,"end_line":524,"end_character":26},"in_reply_to":"9f91af0f_df3eceb6","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":725,"context_line":"        if pc and len(pc):"},{"line_number":726,"context_line":"            return pc[\u0027port_chain\u0027][\u0027id\u0027]"},{"line_number":727,"context_line":"        else:"},{"line_number":728,"context_line":"            return None"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def port_chain_show(self, port_chain_id):"},{"line_number":731,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_3c8a6d69","line":728,"range":{"start_line":728,"start_character":19,"end_line":728,"end_character":23},"updated":"2018-01-10 02:42:08.000000000","message":"not return none, just raise execption","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":725,"context_line":"        if pc and len(pc):"},{"line_number":726,"context_line":"            return pc[\u0027port_chain\u0027][\u0027id\u0027]"},{"line_number":727,"context_line":"        else:"},{"line_number":728,"context_line":"            return None"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def port_chain_show(self, port_chain_id):"},{"line_number":731,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_d305257c","line":728,"range":{"start_line":728,"start_character":19,"end_line":728,"end_character":23},"in_reply_to":"9f91af0f_3c8a6d69","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":"            return port_chain"},{"line_number":737,"context_line":"        except nc_exceptions.NotFound:"},{"line_number":738,"context_line":"            LOG.warning(\u0027port chain %s not found\u0027, port_chain_id)"},{"line_number":739,"context_line":"            raise ValueError(\u0027port chain %s not found\u0027 % port_chain_id)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def port_pair_group_show(self, ppg_id):"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_5c909195","line":738,"range":{"start_line":738,"start_character":16,"end_line":738,"end_character":23},"updated":"2018-01-10 02:42:08.000000000","message":"use error","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":"            return port_chain"},{"line_number":737,"context_line":"        except nc_exceptions.NotFound:"},{"line_number":738,"context_line":"            LOG.warning(\u0027port chain %s not found\u0027, port_chain_id)"},{"line_number":739,"context_line":"            raise ValueError(\u0027port chain %s not found\u0027 % port_chain_id)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def port_pair_group_show(self, ppg_id):"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_f30aa188","line":738,"range":{"start_line":738,"start_character":16,"end_line":738,"end_character":23},"in_reply_to":"9f91af0f_5c909195","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":747,"context_line":"            return port_pair_group"},{"line_number":748,"context_line":"        except nc_exceptions.NotFound:"},{"line_number":749,"context_line":"            LOG.warning(\u0027port pair group %s not found\u0027, ppg_id)"},{"line_number":750,"context_line":"            raise ValueError(\u0027port pair group %s not found\u0027 % ppg_id)"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_3cefcd1e","line":750,"range":{"start_line":750,"start_character":18,"end_line":750,"end_character":28},"updated":"2018-01-10 02:42:08.000000000","message":"you should use save_and_reraise function","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"379f63b01df682440683ca379950254c8b68e41e","unresolved":false,"context_lines":[{"line_number":747,"context_line":"            return port_pair_group"},{"line_number":748,"context_line":"        except nc_exceptions.NotFound:"},{"line_number":749,"context_line":"            LOG.warning(\u0027port pair group %s not found\u0027, ppg_id)"},{"line_number":750,"context_line":"            raise ValueError(\u0027port pair group %s not found\u0027 % ppg_id)"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_db91c1f3","line":750,"range":{"start_line":750,"start_character":18,"end_line":750,"end_character":28},"in_reply_to":"9f91af0f_3cefcd1e","updated":"2018-01-11 09:07:09.000000000","message":"Can you please explain to me in a bit more details why should I save_and_reraise?\n\nFrom what I know the save_and_reraise is used so we can save the exception,run some piece of code and then reraise the exception that we had saved. How is this going to be usefull in this case?","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":467,"context_line":"            return None"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        if symmetrical:"},{"line_number":470,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":471,"context_line":"            raise NotImplementedError(\"update the symmetrical is\""},{"line_number":472,"context_line":"                                      \"not supported\")"},{"line_number":473,"context_line":""}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_639629f3","line":470,"range":{"start_line":470,"start_character":47,"end_line":470,"end_character":54},"updated":"2018-01-17 06:27:42.000000000","message":"does not support to change \u0027symmetrical\u0027","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":467,"context_line":"            return None"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        if symmetrical:"},{"line_number":470,"context_line":"            LOG.warning(\"n-sfc driver does not support symmetrical\")"},{"line_number":471,"context_line":"            raise NotImplementedError(\"update the symmetrical is\""},{"line_number":472,"context_line":"                                      \"not supported\")"},{"line_number":473,"context_line":""}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_8aa1fe48","line":470,"range":{"start_line":470,"start_character":47,"end_line":470,"end_character":54},"in_reply_to":"7f96bb07_639629f3","updated":"2018-01-17 13:05:55.000000000","message":"Done","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                    port_pair_group_show(ppg_id)[\u0027port_pair_group\u0027][\u0027name\u0027]."},{"line_number":481,"context_line":"                    split(\u0027-\u0027)[0]: ppg_id for ppg_id in old_ppgs}"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        for vnf in vnfs:"},{"line_number":484,"context_line":"            port_pair_group \u003d {}"},{"line_number":485,"context_line":"            port_pair \u003d {}"},{"line_number":486,"context_line":"            if vnf[\u0027name\u0027] in old_ppgs_dict:"},{"line_number":487,"context_line":"                old_ppg_id \u003d old_ppgs_dict.pop(vnf[\u0027name\u0027])"},{"line_number":488,"context_line":"                new_ppgs.append(old_ppg_id)"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                port_pair_group[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-port-pair-group\u0027"},{"line_number":491,"context_line":"                port_pair_group[\u0027description\u0027] \u003d \\"},{"line_number":492,"context_line":"                    \u0027port pair group for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":493,"context_line":"                port_pair_group[\u0027port_pairs\u0027] \u003d []"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"                if CONNECTION_POINT not in vnf:"},{"line_number":496,"context_line":"                    LOG.warning(\"Chain update failed due to missing \""},{"line_number":497,"context_line":"                                \"connection point info in VNF \""},{"line_number":498,"context_line":"                                \"%(vnfname)s\", {\u0027vnfname\u0027: vnf[\u0027name\u0027]})"},{"line_number":499,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Connection point\""},{"line_number":500,"context_line":"                                                            \"not found\")"},{"line_number":501,"context_line":"                cp_list \u003d vnf[CONNECTION_POINT]"},{"line_number":502,"context_line":"                num_cps \u003d len(cp_list)"},{"line_number":503,"context_line":"                if num_cps !\u003d 1 and num_cps !\u003d 2:"},{"line_number":504,"context_line":"                    LOG.warning(\"Chain update failed due to wrong number \""},{"line_number":505,"context_line":"                                \"of connection points: expected [1 | 2],\""},{"line_number":506,"context_line":"                                \"got %(cps)d\", {\u0027cps\u0027: num_cps})"},{"line_number":507,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Invalid number\""},{"line_number":508,"context_line":"                                                            \"of connection\""},{"line_number":509,"context_line":"                                                            \"points\")"},{"line_number":510,"context_line":"                port_pair[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-connection-points\u0027"},{"line_number":511,"context_line":"                port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":512,"context_line":"                if num_cps \u003d\u003d 1:"},{"line_number":513,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":514,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[0]"},{"line_number":515,"context_line":"                else:"},{"line_number":516,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":517,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[1]"},{"line_number":518,"context_line":"                port_pair_id \u003d neutronclient_.port_pair_create(port_pair)"},{"line_number":519,"context_line":"                if not port_pair_id:"},{"line_number":520,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":521,"context_line":"                                \"creation failed for \""},{"line_number":522,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":523,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Failed to create\""},{"line_number":524,"context_line":"                                                            \"port-pair\")"},{"line_number":525,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":526,"context_line":"                port_pair_group_id \u003d \\"},{"line_number":527,"context_line":"                    neutronclient_.port_pair_group_create(port_pair_group)"},{"line_number":528,"context_line":"                if not port_pair_group_id:"},{"line_number":529,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":530,"context_line":"                                \"group creation failed for vnf \""},{"line_number":531,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":532,"context_line":"                    for pp_id in port_pair_group[\u0027port_pairs\u0027]:"},{"line_number":533,"context_line":"                        neutronclient_.port_pair_delete(pp_id)"},{"line_number":534,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Failed to create\""},{"line_number":535,"context_line":"                                                            \"port-pair-group\")"},{"line_number":536,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":537,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":538,"context_line":"        try:"},{"line_number":539,"context_line":"            pc_id \u003d neutronclient_.port_chain_update(chain_id,"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_e360f903","line":536,"range":{"start_line":483,"start_character":0,"end_line":536,"end_character":51},"updated":"2018-01-17 06:27:42.000000000","message":"use a try to enclose it and do cleaning up if exception failed.","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                    port_pair_group_show(ppg_id)[\u0027port_pair_group\u0027][\u0027name\u0027]."},{"line_number":481,"context_line":"                    split(\u0027-\u0027)[0]: ppg_id for ppg_id in old_ppgs}"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        for vnf in vnfs:"},{"line_number":484,"context_line":"            port_pair_group \u003d {}"},{"line_number":485,"context_line":"            port_pair \u003d {}"},{"line_number":486,"context_line":"            if vnf[\u0027name\u0027] in old_ppgs_dict:"},{"line_number":487,"context_line":"                old_ppg_id \u003d old_ppgs_dict.pop(vnf[\u0027name\u0027])"},{"line_number":488,"context_line":"                new_ppgs.append(old_ppg_id)"},{"line_number":489,"context_line":"            else:"},{"line_number":490,"context_line":"                port_pair_group[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-port-pair-group\u0027"},{"line_number":491,"context_line":"                port_pair_group[\u0027description\u0027] \u003d \\"},{"line_number":492,"context_line":"                    \u0027port pair group for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":493,"context_line":"                port_pair_group[\u0027port_pairs\u0027] \u003d []"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"                if CONNECTION_POINT not in vnf:"},{"line_number":496,"context_line":"                    LOG.warning(\"Chain update failed due to missing \""},{"line_number":497,"context_line":"                                \"connection point info in VNF \""},{"line_number":498,"context_line":"                                \"%(vnfname)s\", {\u0027vnfname\u0027: vnf[\u0027name\u0027]})"},{"line_number":499,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Connection point\""},{"line_number":500,"context_line":"                                                            \"not found\")"},{"line_number":501,"context_line":"                cp_list \u003d vnf[CONNECTION_POINT]"},{"line_number":502,"context_line":"                num_cps \u003d len(cp_list)"},{"line_number":503,"context_line":"                if num_cps !\u003d 1 and num_cps !\u003d 2:"},{"line_number":504,"context_line":"                    LOG.warning(\"Chain update failed due to wrong number \""},{"line_number":505,"context_line":"                                \"of connection points: expected [1 | 2],\""},{"line_number":506,"context_line":"                                \"got %(cps)d\", {\u0027cps\u0027: num_cps})"},{"line_number":507,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Invalid number\""},{"line_number":508,"context_line":"                                                            \"of connection\""},{"line_number":509,"context_line":"                                                            \"points\")"},{"line_number":510,"context_line":"                port_pair[\u0027name\u0027] \u003d vnf[\u0027name\u0027] + \u0027-connection-points\u0027"},{"line_number":511,"context_line":"                port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":512,"context_line":"                if num_cps \u003d\u003d 1:"},{"line_number":513,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":514,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[0]"},{"line_number":515,"context_line":"                else:"},{"line_number":516,"context_line":"                    port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":517,"context_line":"                    port_pair[\u0027egress\u0027] \u003d cp_list[1]"},{"line_number":518,"context_line":"                port_pair_id \u003d neutronclient_.port_pair_create(port_pair)"},{"line_number":519,"context_line":"                if not port_pair_id:"},{"line_number":520,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":521,"context_line":"                                \"creation failed for \""},{"line_number":522,"context_line":"                                \"vnf %(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":523,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Failed to create\""},{"line_number":524,"context_line":"                                                            \"port-pair\")"},{"line_number":525,"context_line":"                port_pair_group[\u0027port_pairs\u0027].append(port_pair_id)"},{"line_number":526,"context_line":"                port_pair_group_id \u003d \\"},{"line_number":527,"context_line":"                    neutronclient_.port_pair_group_create(port_pair_group)"},{"line_number":528,"context_line":"                if not port_pair_group_id:"},{"line_number":529,"context_line":"                    LOG.warning(\"Chain update failed due to port pair \""},{"line_number":530,"context_line":"                                \"group creation failed for vnf \""},{"line_number":531,"context_line":"                                \"%(vnf)s\", {\u0027vnf\u0027: vnf[\u0027name\u0027]})"},{"line_number":532,"context_line":"                    for pp_id in port_pair_group[\u0027port_pairs\u0027]:"},{"line_number":533,"context_line":"                        neutronclient_.port_pair_delete(pp_id)"},{"line_number":534,"context_line":"                    raise nfvo.UpdateChainException(message\u003d\"Failed to create\""},{"line_number":535,"context_line":"                                                            \"port-pair-group\")"},{"line_number":536,"context_line":"                new_ppgs.append(port_pair_group_id)"},{"line_number":537,"context_line":"        updated_port_chain[\u0027port_pair_groups\u0027] \u003d new_ppgs"},{"line_number":538,"context_line":"        try:"},{"line_number":539,"context_line":"            pc_id \u003d neutronclient_.port_chain_update(chain_id,"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_4a8776b6","line":536,"range":{"start_line":483,"start_character":0,"end_line":536,"end_character":51},"in_reply_to":"7f96bb07_e360f903","updated":"2018-01-17 13:05:55.000000000","message":"Done","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":512,"context_line":"                    port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":513,"context_line":"                    if num_cps \u003d\u003d 1:"},{"line_number":514,"context_line":"                        port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":515,"context_line":"                        port_pair[\u0027egress\u0027] \u003d cp_list[0]"},{"line_number":516,"context_line":"                    else:"},{"line_number":517,"context_line":"                        port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":518,"context_line":"                        port_pair[\u0027egress\u0027] \u003d cp_list[1]"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f96bb07_8df30d74","line":515,"updated":"2018-01-19 11:13:04.000000000","message":"Do you this the array be consistent always, [0], [1] etc.. is there be a better way that [0] [1] etc.. ?","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":512,"context_line":"                    port_pair[\u0027description\u0027] \u003d \u0027port pair for %s\u0027 % vnf[\u0027name\u0027]"},{"line_number":513,"context_line":"                    if num_cps \u003d\u003d 1:"},{"line_number":514,"context_line":"                        port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":515,"context_line":"                        port_pair[\u0027egress\u0027] \u003d cp_list[0]"},{"line_number":516,"context_line":"                    else:"},{"line_number":517,"context_line":"                        port_pair[\u0027ingress\u0027] \u003d cp_list[0]"},{"line_number":518,"context_line":"                        port_pair[\u0027egress\u0027] \u003d cp_list[1]"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f96bb07_bb33a0f6","line":515,"in_reply_to":"7f96bb07_8df30d74","updated":"2018-01-19 15:16:53.000000000","message":"Yes this array is consistent always. We implement the same logic at the create_chain function above so I just followed the same notion here.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"9347a4c1d365bb6ad59f54e2da235b930e2be501","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            pc_id \u003d neutronclient_.port_chain_update(chain_id,"},{"line_number":556,"context_line":"                                                     updated_port_chain)"},{"line_number":557,"context_line":"        except Exception:"},{"line_number":558,"context_line":"            return None"},{"line_number":559,"context_line":"        for ppg_name in old_ppgs_dict:"},{"line_number":560,"context_line":"            ppg_info \u003d neutronclient_. \\"},{"line_number":561,"context_line":"                port_pair_group_show(old_ppgs_dict[ppg_name])"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f96bb07_cdf8354b","line":558,"updated":"2018-01-19 11:13:04.000000000","message":"you may want to capture the neutronclient exception ? rather than a None.","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"3bbc1a3175666758602dc1374b26861cc881f431","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            pc_id \u003d neutronclient_.port_chain_update(chain_id,"},{"line_number":556,"context_line":"                                                     updated_port_chain)"},{"line_number":557,"context_line":"        except Exception:"},{"line_number":558,"context_line":"            return None"},{"line_number":559,"context_line":"        for ppg_name in old_ppgs_dict:"},{"line_number":560,"context_line":"            ppg_info \u003d neutronclient_. \\"},{"line_number":561,"context_line":"                port_pair_group_show(old_ppgs_dict[ppg_name])"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f96bb07_99e7cc47","line":558,"in_reply_to":"7f96bb07_cdf8354b","updated":"2018-01-19 15:16:53.000000000","message":"Done","commit_id":"4b8af1c469213c5400c6363a002acd86110739c4"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"bfd7b30df0bfa5705eee7535d25f5ce00780f439","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":467,"context_line":"            return None"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        if symmetrical:"},{"line_number":470,"context_line":"            LOG.warning(\"n-sfc driver does not support to \""},{"line_number":471,"context_line":"                        \"change \u0027symmetrical\u0027\")"},{"line_number":472,"context_line":"            raise NotImplementedError(\"update the symmetrical is\""},{"line_number":473,"context_line":"                                      \"not supported\")"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":476,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":52,"id":"7f96bb07_51947b44","line":473,"range":{"start_line":469,"start_character":0,"end_line":473,"end_character":54},"updated":"2018-01-23 01:21:05.000000000","message":"symmetrical can be false or true, so this way to specify if use wants to update symmetridal is not right. I think we can just put a note in the code to say \u0027symmetrical update is not supported now\u0027","commit_id":"1a14d45d65c0cd8064776ec41dc611da8bf9a667"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"7d88452fe28d241fe248d0305a2ae8e546247118","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            LOG.warning(\"auth information required for n-sfc driver\")"},{"line_number":467,"context_line":"            return None"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        if symmetrical:"},{"line_number":470,"context_line":"            LOG.warning(\"n-sfc driver does not support to \""},{"line_number":471,"context_line":"                        \"change \u0027symmetrical\u0027\")"},{"line_number":472,"context_line":"            raise NotImplementedError(\"update the symmetrical is\""},{"line_number":473,"context_line":"                                      \"not supported\")"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        neutronclient_ \u003d NeutronClient(auth_attr)"},{"line_number":476,"context_line":"        new_ppgs \u003d []"}],"source_content_type":"text/x-python","patch_set":52,"id":"7f96bb07_5086a315","line":473,"range":{"start_line":469,"start_character":0,"end_line":473,"end_character":54},"in_reply_to":"7f96bb07_51947b44","updated":"2018-01-23 13:04:13.000000000","message":"I fixed that I am just deleting the key \u0027symmetrical\u0027 from\nthe arrived dictionary at the server side and I added a note at the code as you proposed.Thanks!","commit_id":"1a14d45d65c0cd8064776ec41dc611da8bf9a667"}],"tacker/nfvo/drivers/vnffg/abstract_vnffg_driver.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"76f5560229ba124836d40a1caf8b460a8a61c7a0","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        pass"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @abc.abstractmethod"},{"line_number":44,"context_line":"    def update_chain(self, chain_id, fc_ids, vnfs, replace_vnfs,"},{"line_number":45,"context_line":"                     symmetrical\u003dFalse,"},{"line_number":46,"context_line":"                     auth_attr\u003dNone):"},{"line_number":47,"context_line":"        \"\"\"Update service function chain\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_9cca194d","line":44,"range":{"start_line":44,"start_character":50,"end_line":44,"end_character":63},"updated":"2017-10-30 11:43:19.000000000","message":"After the change, remove replace_vnfs here","commit_id":"294560ff64c889287a337d4aa85c03129493eefe"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"221cbc777b17805eb2c88bb10f1cfcb0e3002e22","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        pass"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @abc.abstractmethod"},{"line_number":44,"context_line":"    def update_chain(self, chain_id, fc_ids, vnfs, replace_vnfs,"},{"line_number":45,"context_line":"                     symmetrical\u003dFalse,"},{"line_number":46,"context_line":"                     auth_attr\u003dNone):"},{"line_number":47,"context_line":"        \"\"\"Update service function chain\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_5deffbe8","line":44,"range":{"start_line":44,"start_character":50,"end_line":44,"end_character":63},"in_reply_to":"3f4b6375_9cca194d","updated":"2017-10-30 12:45:57.000000000","message":"Done","commit_id":"294560ff64c889287a337d4aa85c03129493eefe"}],"tacker/nfvo/nfvo_plugin.py":[{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"690e7643f5082f4eea9b49cbc25e2c6d50e06d78","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self)._update_vnffg_status(context, vnffg_id,"},{"line_number":400,"context_line":"                                                             error\u003dTrue)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":403,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":33,"id":"bf8cb3f7_83abaa1b","line":400,"range":{"start_line":398,"start_character":12,"end_line":400,"end_character":72},"updated":"2017-12-22 17:59:38.000000000","message":"I created a VNFFG, I putted --vnf-mapping with already existed VNF. The error is fine, but my VNFFG turns into \"ERROR\" status. I think in this step, we just validate the user\u0027s input. No change happens to VNFFG object so we just raise Exception, and it should be \"error\u003dFalse\" and turns VNFFG status to \"ACTIVE\"","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"063c02eaab1924fbfc83f8a1a9f089eec6be002d","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self)._update_vnffg_status(context, vnffg_id,"},{"line_number":400,"context_line":"                                                             error\u003dTrue)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":403,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9f91af0f_7d3aa598","line":400,"range":{"start_line":398,"start_character":12,"end_line":400,"end_character":72},"in_reply_to":"9f91af0f_9a31c10e","updated":"2018-01-04 09:58:51.000000000","message":"Done","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"a3ff14c26d127edb8e5cf9ffeb330cd79c7ae9de","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self)._update_vnffg_status(context, vnffg_id,"},{"line_number":400,"context_line":"                                                             error\u003dTrue)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":403,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9f91af0f_9a31c10e","line":400,"range":{"start_line":398,"start_character":12,"end_line":400,"end_character":72},"in_reply_to":"bf8cb3f7_83abaa1b","updated":"2018-01-03 15:31:31.000000000","message":"Ok you are right. I have something in mind to fix this!","commit_id":"2cd030a5bc076cb5d21aff759b21ddae60c7780f"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"c812b35289d556652d9e150694f56a6cb04449e3","unresolved":false,"context_lines":[{"line_number":452,"context_line":"        super(NfvoPlugin, self)._update_vnffg_post(context, vnffg_id,"},{"line_number":453,"context_line":"                                                   new_vnffg,"},{"line_number":454,"context_line":"                                                   n_sfc_chain_id)"},{"line_number":455,"context_line":"        super(NfvoPlugin, self)._update_vnffg_status(context,"},{"line_number":456,"context_line":"                                                     vnffg_id)"},{"line_number":457,"context_line":"        return vnffg_dict"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_c172d5e3","line":456,"range":{"start_line":455,"start_character":53,"end_line":456,"end_character":61},"updated":"2018-01-05 12:43:29.000000000","message":"I think you should add \u0027constants.ACTIVE\u0027 here. Because in https://git.openstack.org/cgit/openstack/tacker/tree/tacker/db/nfvo/vnffg_db.py?h\u003drefs/changes/20/513720/35#n880, db_state\u0027s default value is \u0027ERROR\u0027. It will make it more clear.","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"1469a0e451b2764f3fc07d42a73ccf84b2f1849c","unresolved":false,"context_lines":[{"line_number":452,"context_line":"        super(NfvoPlugin, self)._update_vnffg_post(context, vnffg_id,"},{"line_number":453,"context_line":"                                                   new_vnffg,"},{"line_number":454,"context_line":"                                                   n_sfc_chain_id)"},{"line_number":455,"context_line":"        super(NfvoPlugin, self)._update_vnffg_status(context,"},{"line_number":456,"context_line":"                                                     vnffg_id)"},{"line_number":457,"context_line":"        return vnffg_dict"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":35,"id":"9f91af0f_e5eda48b","line":456,"range":{"start_line":455,"start_character":53,"end_line":456,"end_character":61},"in_reply_to":"9f91af0f_c172d5e3","updated":"2018-01-05 13:24:43.000000000","message":"Done","commit_id":"758f0b8b3bafaa23375b385bf9720bec2af1721c"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_9cd37904","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":32},"updated":"2018-01-10 02:42:08.000000000","message":"can we change this function name since it is confusion with line 388","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_b304197d","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":32},"in_reply_to":"7f96bb07_2612085a","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"338b8bc1c6775b858f19f1c50a1d03b4adb50327","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_2612085a","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":32},"in_reply_to":"9f91af0f_3f79fa92","updated":"2018-01-11 09:13:07.000000000","message":"I will change the function name in the 388 because the function in the line 394 is used in more than one places.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_3f79fa92","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":32},"in_reply_to":"9f91af0f_9cd37904","updated":"2018-01-10 08:47:23.000000000","message":"I ll fix that thanks.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_bcc99d59","line":395,"range":{"start_line":395,"start_character":54,"end_line":395,"end_character":65},"updated":"2018-01-10 02:42:08.000000000","message":"please change it into vnfd_members, I don\u0027t think the vnffgd has the vnf specified.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_7f6222da","line":395,"range":{"start_line":395,"start_character":54,"end_line":395,"end_character":65},"in_reply_to":"9f91af0f_bcc99d59","updated":"2018-01-10 08:47:23.000000000","message":"Ah yes you are right this is a typo thanks.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0ddad2dd34f6137d5d1af45b860ffd06b480a2fd","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                         vnffg_dict[\u0027vnffgd_id\u0027])"},{"line_number":381,"context_line":"        vnf_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnf_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            updated_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _update_vnf_mapping(context,"},{"line_number":390,"context_line":"                                    new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self). \\"},{"line_number":400,"context_line":"                    _update_vnffg_status(context, vnffg_id, error\u003dTrue,"},{"line_number":401,"context_line":"                                         db_state\u003dconstants.ACTIVE)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":404,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_fccde5b6","line":401,"range":{"start_line":383,"start_character":0,"end_line":401,"end_character":67},"updated":"2018-01-10 02:42:08.000000000","message":"reedit it without using \\  please","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"467bd270c8695cdf6b2b7cf200663675bac2b0da","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                         vnffg_dict[\u0027vnffgd_id\u0027])"},{"line_number":381,"context_line":"        vnf_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnf_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            updated_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _update_vnf_mapping(context,"},{"line_number":390,"context_line":"                                    new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self). \\"},{"line_number":400,"context_line":"                    _update_vnffg_status(context, vnffg_id, error\u003dTrue,"},{"line_number":401,"context_line":"                                         db_state\u003dconstants.ACTIVE)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":404,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_e17f2aa9","line":401,"range":{"start_line":383,"start_character":0,"end_line":401,"end_character":67},"in_reply_to":"7f96bb07_a1efe285","updated":"2018-01-11 10:28:55.000000000","message":"Ah thanks that worked :)","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"9a07124b771809fc6d57cf9103ddce89dd30580a","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                         vnffg_dict[\u0027vnffgd_id\u0027])"},{"line_number":381,"context_line":"        vnf_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnf_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            updated_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _update_vnf_mapping(context,"},{"line_number":390,"context_line":"                                    new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self). \\"},{"line_number":400,"context_line":"                    _update_vnffg_status(context, vnffg_id, error\u003dTrue,"},{"line_number":401,"context_line":"                                         db_state\u003dconstants.ACTIVE)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":404,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_a1efe285","line":401,"range":{"start_line":383,"start_character":0,"end_line":401,"end_character":67},"in_reply_to":"7f96bb07_e11aca15","updated":"2018-01-11 10:22:36.000000000","message":"except Exception:\n            with excutils.save_and_reraise_exception():\n                super(NfvoPlugin, self)._update_vnffg_status(\n                    context, vnffg_id, error\u003dTrue, db_state\u003dconstants.ACTIVE)","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"8dd4d32fcea48b202bb0474c403ddc7433087328","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                         vnffg_dict[\u0027vnffgd_id\u0027])"},{"line_number":381,"context_line":"        vnf_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnf_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            updated_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _update_vnf_mapping(context,"},{"line_number":390,"context_line":"                                    new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self). \\"},{"line_number":400,"context_line":"                    _update_vnffg_status(context, vnffg_id, error\u003dTrue,"},{"line_number":401,"context_line":"                                         db_state\u003dconstants.ACTIVE)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":404,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_53f9157e","line":401,"range":{"start_line":383,"start_character":0,"end_line":401,"end_character":67},"in_reply_to":"7f96bb07_e17f2aa9","updated":"2018-01-11 11:06:36.000000000","message":"Done","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"d035a03a175ebf247974696ede33d2974c9dde1f","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                         vnffg_dict[\u0027vnffgd_id\u0027])"},{"line_number":381,"context_line":"        vnf_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnf_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            updated_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _update_vnf_mapping(context,"},{"line_number":390,"context_line":"                                    new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self). \\"},{"line_number":400,"context_line":"                    _update_vnffg_status(context, vnffg_id, error\u003dTrue,"},{"line_number":401,"context_line":"                                         db_state\u003dconstants.ACTIVE)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":404,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":38,"id":"9f91af0f_ffa392fe","line":401,"range":{"start_line":383,"start_character":0,"end_line":401,"end_character":67},"in_reply_to":"9f91af0f_fccde5b6","updated":"2018-01-10 08:47:23.000000000","message":"ok I will fix that thanks!","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"1450460bf8b4cd70aeed2c04e647ff3563d2e8d8","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                         vnffg_dict[\u0027vnffgd_id\u0027])"},{"line_number":381,"context_line":"        vnf_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnf_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            updated_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _update_vnf_mapping(context,"},{"line_number":390,"context_line":"                                    new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                    vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 updated_vnf_mapping, vnf_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":399,"context_line":"                super(NfvoPlugin, self). \\"},{"line_number":400,"context_line":"                    _update_vnffg_status(context, vnffg_id, error\u003dTrue,"},{"line_number":401,"context_line":"                                         db_state\u003dconstants.ACTIVE)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        template_id \u003d vnffg_dict[\u0027vnffgd_id\u0027]"},{"line_number":404,"context_line":"        template_db \u003d self._get_resource(context, vnffg_db.VnffgTemplate,"}],"source_content_type":"text/x-python","patch_set":38,"id":"7f96bb07_e11aca15","line":401,"range":{"start_line":383,"start_character":0,"end_line":401,"end_character":67},"in_reply_to":"9f91af0f_ffa392fe","updated":"2018-01-11 10:06:53.000000000","message":"I cannot do that because the flake throughs errors.\nSo I will leave as it is.\n\nIf you have anythng to propose please tell me.","commit_id":"8167064544ddade3cd9f46db33f8150d2e33c207"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"576fe64f63df0a866406b2db773fec1ad910f355","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        vnfd_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnfd_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            combined_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _combine_current_and_new_vnf_mapping(context,"},{"line_number":390,"context_line":"                                                     new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 combined_vnf_mapping, vnfd_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_533ef529","line":395,"range":{"start_line":384,"start_character":0,"end_line":395,"end_character":68},"updated":"2018-01-11 11:15:15.000000000","message":"this part can also remove \\","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"066f5a0276a74b91c16df864dd6911592787d443","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        vnfd_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnfd_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            combined_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _combine_current_and_new_vnf_mapping(context,"},{"line_number":390,"context_line":"                                                     new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 combined_vnf_mapping, vnfd_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_89cbeca3","line":395,"range":{"start_line":384,"start_character":0,"end_line":395,"end_character":68},"in_reply_to":"7f96bb07_496964bc","updated":"2018-01-11 12:38:01.000000000","message":"I agree with you. \nok lets wait for other opinions here thanks a lot for your help!","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"778751d9fc1186fd8e901272ea9698e6a1dc878e","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        vnfd_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnfd_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            combined_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _combine_current_and_new_vnf_mapping(context,"},{"line_number":390,"context_line":"                                                     new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 combined_vnf_mapping, vnfd_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_960d4b92","line":395,"range":{"start_line":384,"start_character":0,"end_line":395,"end_character":68},"in_reply_to":"7f96bb07_533ef529","updated":"2018-01-11 12:20:49.000000000","message":"I can remove the \\ in line 385 but I cannot remove it in lines 389 and 394 flake give me errors.\n\nDo you know how to change those lines?","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"f55fccaba9080e917d7b1a6a1856fe157ae05e2f","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        vnfd_members \u003d self._get_vnffg_property(template_db.template,"},{"line_number":382,"context_line":"                                               \u0027constituent_vnfs\u0027)"},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            super(NfvoPlugin, self). \\"},{"line_number":385,"context_line":"                _validate_vnf_mapping(new_vnffg.get(\u0027vnf_mapping\u0027),"},{"line_number":386,"context_line":"                                      vnfd_members)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            combined_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":389,"context_line":"                _combine_current_and_new_vnf_mapping(context,"},{"line_number":390,"context_line":"                                                     new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":391,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":394,"context_line":"                _get_vnf_mapping(context,"},{"line_number":395,"context_line":"                                 combined_vnf_mapping, vnfd_members)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        except Exception:"},{"line_number":398,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_496964bc","line":395,"range":{"start_line":384,"start_character":0,"end_line":395,"end_character":68},"in_reply_to":"7f96bb07_960d4b92","updated":"2018-01-11 12:33:34.000000000","message":"super(NfvoPlugin, self)._validate_vnf_mapping(\n                new_vnffg.get(\u0027vnf_mapping\u0027), vnfd_members)\n\n            combined_vnf_mapping \u003d super(\n                NfvoPlugin, self)._combine_current_and_new_vnf_mapping(\n                    context,\n                    new_vnffg[\u0027vnf_mapping\u0027],\n                    vnffg_dict[\u0027vnf_mapping\u0027])\n\n            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(\n                NfvoPlugin, self)._get_vnf_mapping(context,\n                                                   combined_vnf_mapping,\n                                                   vnfd_members)\n\nI dont really like this style splitting the super statement, from my preferences only merge the first line, the others looks easier to read with \\ IMO. Wait for others opinion on this.","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            super(NfvoPlugin, self)._validate_vnf_mapping("},{"line_number":385,"context_line":"                new_vnffg.get(\u0027vnf_mapping\u0027), vnfd_members)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            combined_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":388,"context_line":"                _combine_current_and_new_vnf_mapping(context,"},{"line_number":389,"context_line":"                                                     new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":390,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_03cac54c","line":387,"range":{"start_line":387,"start_character":60,"end_line":387,"end_character":61},"updated":"2018-01-17 06:27:42.000000000","message":"reedit it to remove \u0027\\\u0027","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            super(NfvoPlugin, self)._validate_vnf_mapping("},{"line_number":385,"context_line":"                new_vnffg.get(\u0027vnf_mapping\u0027), vnfd_members)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            combined_vnf_mapping \u003d super(NfvoPlugin, self). \\"},{"line_number":388,"context_line":"                _combine_current_and_new_vnf_mapping(context,"},{"line_number":389,"context_line":"                                                     new_vnffg[\u0027vnf_mapping\u0027],"},{"line_number":390,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_aabf1a5f","line":387,"range":{"start_line":387,"start_character":60,"end_line":387,"end_character":61},"in_reply_to":"7f96bb07_03cac54c","updated":"2018-01-17 13:05:55.000000000","message":"Done","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":393,"context_line":"                _get_vnf_mapping(context,"},{"line_number":394,"context_line":"                                 combined_vnf_mapping, vnfd_members)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_6315c99b","line":393,"range":{"start_line":393,"start_character":16,"end_line":393,"end_character":32},"updated":"2018-01-17 06:27:42.000000000","message":"can we change _get_vnf_mapping function into \"check_vnf_vnfd_association\"?","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                                                     vnffg_dict[\u0027vnf_mapping\u0027])"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"            new_vnffg[\u0027vnf_mapping\u0027] \u003d super(NfvoPlugin, self). \\"},{"line_number":393,"context_line":"                _get_vnf_mapping(context,"},{"line_number":394,"context_line":"                                 combined_vnf_mapping, vnfd_members)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_2a26aacf","line":393,"range":{"start_line":393,"start_character":16,"end_line":393,"end_character":32},"in_reply_to":"7f96bb07_6315c99b","updated":"2018-01-17 13:05:55.000000000","message":"IMHO We should not change the name of this function because this function was already there when I was creating this patch. This is not a function that I created.\n\nIn addition to that this function is not used only from the update_vnffg function but from the create_vnffg function too.","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"f3e97ff8dce9786a635cc06dd0f7bbcbabd06495","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                                         fc\u003dclassifier[\u0027match\u0027],"},{"line_number":434,"context_line":"                                         auth_attr\u003dvim_obj[\u0027auth_cred\u0027])"},{"line_number":435,"context_line":"                classifier_instances.append(classifier[\u0027instance_id\u0027])"},{"line_number":436,"context_line":"            n_sfc_chain_id \u003d self. \\"},{"line_number":437,"context_line":"                _vim_drivers.invoke(driver_type, \u0027update_chain\u0027,"},{"line_number":438,"context_line":"                                    vnfs\u003dsfc[\u0027chain\u0027],"},{"line_number":439,"context_line":"                                    fc_ids\u003dclassifier_instances,"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_23a8218a","line":436,"range":{"start_line":436,"start_character":35,"end_line":436,"end_character":36},"updated":"2018-01-17 06:27:42.000000000","message":"don\u0027t use \u0027\\\u0027","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"549ce05b29ec85167c59bf4f5d07e17f6fccbb89","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                                         fc\u003dclassifier[\u0027match\u0027],"},{"line_number":434,"context_line":"                                         auth_attr\u003dvim_obj[\u0027auth_cred\u0027])"},{"line_number":435,"context_line":"                classifier_instances.append(classifier[\u0027instance_id\u0027])"},{"line_number":436,"context_line":"            n_sfc_chain_id \u003d self. \\"},{"line_number":437,"context_line":"                _vim_drivers.invoke(driver_type, \u0027update_chain\u0027,"},{"line_number":438,"context_line":"                                    vnfs\u003dsfc[\u0027chain\u0027],"},{"line_number":439,"context_line":"                                    fc_ids\u003dclassifier_instances,"}],"source_content_type":"text/x-python","patch_set":47,"id":"7f96bb07_4a23f6bd","line":436,"range":{"start_line":436,"start_character":35,"end_line":436,"end_character":36},"in_reply_to":"7f96bb07_23a8218a","updated":"2018-01-17 13:05:55.000000000","message":"Done","commit_id":"a652b3d88612a63bda9dd64ec594446253d2dd11"}],"tacker/tests/unit/nfvo/test_nfvo_plugin.py":[{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"576fe64f63df0a866406b2db773fec1ad910f355","unresolved":false,"context_lines":[{"line_number":707,"context_line":"                              self.context, vnffg[\u0027id\u0027], updated_vnffg)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    def test_update_vnffg_empty_vnf_mapping_dict(self):"},{"line_number":710,"context_line":"        with patch.object(TackerManager, \u0027get_service_plugins\u0027) as \\"},{"line_number":711,"context_line":"                mock_plugins:"},{"line_number":712,"context_line":"            mock_plugins.return_value \u003d {\u0027VNFM\u0027: FakeVNFMPlugin()}"},{"line_number":713,"context_line":"            mock.patch(\u0027tacker.common.driver_manager.DriverManager\u0027,"},{"line_number":714,"context_line":"                       side_effect\u003dFakeDriverManager()).start()"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_331ec9ba","line":711,"range":{"start_line":710,"start_character":67,"end_line":711,"end_character":29},"updated":"2018-01-11 11:15:15.000000000","message":"mock_plugins enter in the line size limit, can you check in a single line?","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"778751d9fc1186fd8e901272ea9698e6a1dc878e","unresolved":false,"context_lines":[{"line_number":707,"context_line":"                              self.context, vnffg[\u0027id\u0027], updated_vnffg)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    def test_update_vnffg_empty_vnf_mapping_dict(self):"},{"line_number":710,"context_line":"        with patch.object(TackerManager, \u0027get_service_plugins\u0027) as \\"},{"line_number":711,"context_line":"                mock_plugins:"},{"line_number":712,"context_line":"            mock_plugins.return_value \u003d {\u0027VNFM\u0027: FakeVNFMPlugin()}"},{"line_number":713,"context_line":"            mock.patch(\u0027tacker.common.driver_manager.DriverManager\u0027,"},{"line_number":714,"context_line":"                       side_effect\u003dFakeDriverManager()).start()"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_56da63e9","line":711,"range":{"start_line":710,"start_character":67,"end_line":711,"end_character":29},"in_reply_to":"7f96bb07_331ec9ba","updated":"2018-01-11 12:20:49.000000000","message":"I doesn\u0027t work if I put this in one line flake gives me error line too long (80 \u003e 79 characters)","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"576fe64f63df0a866406b2db773fec1ad910f355","unresolved":false,"context_lines":[{"line_number":739,"context_line":"                              self.context, vnffg[\u0027id\u0027], updated_vnffg)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def test_update_vnffg_vnfd_not_in_vnffg_template(self):"},{"line_number":742,"context_line":"        with patch.object(TackerManager, \u0027get_service_plugins\u0027) as \\"},{"line_number":743,"context_line":"                mock_plugins:"},{"line_number":744,"context_line":"            mock_plugins.return_value \u003d {\u0027VNFM\u0027: FakeVNFMPlugin()}"},{"line_number":745,"context_line":"            mock.patch(\u0027tacker.common.driver_manager.DriverManager\u0027,"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_d378c5f9","line":742,"range":{"start_line":742,"start_character":58,"end_line":742,"end_character":68},"updated":"2018-01-11 11:15:15.000000000","message":"ditto","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"778751d9fc1186fd8e901272ea9698e6a1dc878e","unresolved":false,"context_lines":[{"line_number":739,"context_line":"                              self.context, vnffg[\u0027id\u0027], updated_vnffg)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def test_update_vnffg_vnfd_not_in_vnffg_template(self):"},{"line_number":742,"context_line":"        with patch.object(TackerManager, \u0027get_service_plugins\u0027) as \\"},{"line_number":743,"context_line":"                mock_plugins:"},{"line_number":744,"context_line":"            mock_plugins.return_value \u003d {\u0027VNFM\u0027: FakeVNFMPlugin()}"},{"line_number":745,"context_line":"            mock.patch(\u0027tacker.common.driver_manager.DriverManager\u0027,"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_16e4dbab","line":742,"range":{"start_line":742,"start_character":58,"end_line":742,"end_character":68},"in_reply_to":"7f96bb07_d378c5f9","updated":"2018-01-11 12:20:49.000000000","message":"ditto","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"576fe64f63df0a866406b2db773fec1ad910f355","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                              self.context, vnffg[\u0027id\u0027], updated_vnffg)"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    def test_update_vnffg_wrong_uuid_in_mapping(self):"},{"line_number":760,"context_line":"        with patch.object(TackerManager, \u0027get_service_plugins\u0027) as \\"},{"line_number":761,"context_line":"                mock_plugins:"},{"line_number":762,"context_line":"            mock_plugins.return_value \u003d {\u0027VNFM\u0027: FakeVNFMPlugin()}"},{"line_number":763,"context_line":"            mock.patch(\u0027tacker.common.driver_manager.DriverManager\u0027,"},{"line_number":764,"context_line":"                       side_effect\u003dFakeDriverManager()).start()"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_f37dc1e7","line":761,"range":{"start_line":760,"start_character":63,"end_line":761,"end_character":29},"updated":"2018-01-11 11:15:15.000000000","message":"ditto","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"778751d9fc1186fd8e901272ea9698e6a1dc878e","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                              self.context, vnffg[\u0027id\u0027], updated_vnffg)"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    def test_update_vnffg_wrong_uuid_in_mapping(self):"},{"line_number":760,"context_line":"        with patch.object(TackerManager, \u0027get_service_plugins\u0027) as \\"},{"line_number":761,"context_line":"                mock_plugins:"},{"line_number":762,"context_line":"            mock_plugins.return_value \u003d {\u0027VNFM\u0027: FakeVNFMPlugin()}"},{"line_number":763,"context_line":"            mock.patch(\u0027tacker.common.driver_manager.DriverManager\u0027,"},{"line_number":764,"context_line":"                       side_effect\u003dFakeDriverManager()).start()"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_d6ef5385","line":761,"range":{"start_line":760,"start_character":63,"end_line":761,"end_character":29},"in_reply_to":"7f96bb07_f37dc1e7","updated":"2018-01-11 12:20:49.000000000","message":"ditto","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"576fe64f63df0a866406b2db773fec1ad910f355","unresolved":false,"context_lines":[{"line_number":801,"context_line":"            for vnfd, vnf in result[\u0027vnf_mapping\u0027].items():"},{"line_number":802,"context_line":"                self.assertIn(vnfd, expected_mapping)"},{"line_number":803,"context_line":"                self.assertEqual(vnf, expected_mapping[vnfd])"},{"line_number":804,"context_line":"            self._driver_manager.invoke. \\"},{"line_number":805,"context_line":"                assert_called_with(mock.ANY, mock.ANY,"},{"line_number":806,"context_line":"                                   vnfs\u003dmock.ANY,"},{"line_number":807,"context_line":"                                   fc_ids\u003dmock.ANY,"},{"line_number":808,"context_line":"                                   chain_id\u003dmock.ANY,"},{"line_number":809,"context_line":"                                   auth_attr\u003dmock.ANY,"},{"line_number":810,"context_line":"                                   symmetrical\u003dTrue)"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"    def test_delete_vnffg(self):"},{"line_number":813,"context_line":"        self._insert_dummy_vnffg_template()"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_33732918","line":810,"range":{"start_line":804,"start_character":0,"end_line":810,"end_character":52},"updated":"2018-01-11 11:15:15.000000000","message":"self._driver_manager.invoke.assert_called_with(mock.ANY,\n                                                           mock.ANY,\n                                                           vnfs\u003dmock.ANY,\n                                                           fc_ids\u003dmock.ANY,\n                                                           chain_id\u003dmock.ANY,\n                                                           auth_attr\u003dmock.ANY,\n                                                           symmetrical\u003dTrue)","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"},{"author":{"_account_id":25505,"name":"Dimitrios Markou","email":"dimitrios.markou@att.com","username":"mardim"},"change_message_id":"778751d9fc1186fd8e901272ea9698e6a1dc878e","unresolved":false,"context_lines":[{"line_number":801,"context_line":"            for vnfd, vnf in result[\u0027vnf_mapping\u0027].items():"},{"line_number":802,"context_line":"                self.assertIn(vnfd, expected_mapping)"},{"line_number":803,"context_line":"                self.assertEqual(vnf, expected_mapping[vnfd])"},{"line_number":804,"context_line":"            self._driver_manager.invoke. \\"},{"line_number":805,"context_line":"                assert_called_with(mock.ANY, mock.ANY,"},{"line_number":806,"context_line":"                                   vnfs\u003dmock.ANY,"},{"line_number":807,"context_line":"                                   fc_ids\u003dmock.ANY,"},{"line_number":808,"context_line":"                                   chain_id\u003dmock.ANY,"},{"line_number":809,"context_line":"                                   auth_attr\u003dmock.ANY,"},{"line_number":810,"context_line":"                                   symmetrical\u003dTrue)"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"    def test_delete_vnffg(self):"},{"line_number":813,"context_line":"        self._insert_dummy_vnffg_template()"}],"source_content_type":"text/x-python","patch_set":40,"id":"7f96bb07_56b1038f","line":810,"range":{"start_line":804,"start_character":0,"end_line":810,"end_character":52},"in_reply_to":"7f96bb07_33732918","updated":"2018-01-11 12:20:49.000000000","message":"Done","commit_id":"bd01bc9de5a7a9936f3f1102c4ec6a04a95fc5c4"}]}
