)]}'
{"neutron/services/vpn/device_drivers/cisco_ipsec.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"88431b054ff85aaf8370ec14dd0d4442a225b993","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        else:"},{"line_number":411,"context_line":"            return {}"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def report_status(self, context):"},{"line_number":414,"context_line":"        \"\"\"Report status of all VPN services and IPSec connections to plugin."},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"        This is called periodically by the agent, to push up status changes,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BsXI%3D","line":413,"updated":"2014-03-25 01:35:55.000000000","message":"There is a shared resource contention between report_status() called periodically, and sync() called as part of config change notification, where both manipulate the running state for the services and connections.\n\nFor next patch, will consider using the lockutils.synchronized decorator (unless there is a better way).","commit_id":"d629f684588d3f981bd9de469015d3056fd554fb"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"5568f69cee6bc7712225268b1c8d6bdf2f0a5170","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    ipsec_conn.create_ipsec_site_connection(context, conn_data)"},{"line_number":251,"context_line":"            else:"},{"line_number":252,"context_line":"                if not vpn_service.is_admin_up or not conn_is_admin_up:"},{"line_number":253,"context_line":"                    LOG.debug(_(\"Update: Connection %s forced to admin down\"),"},{"line_number":254,"context_line":"                              conn_id)"},{"line_number":255,"context_line":"                    # TODO(pcm) Do shut on tunnel, once CSR supports"},{"line_number":256,"context_line":"                    ipsec_conn.forced_down \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BJAc%3D","line":253,"updated":"2014-03-28 20:49:32.000000000","message":"If the service is ADMIN_DOWN - a connection of course has to be ADMIN_DOWN - but can it even exist ? Just a clarification for my understanding.","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"f9d56ad8ef84a576265bd3d292307e45810fb8e2","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    ipsec_conn.create_ipsec_site_connection(context, conn_data)"},{"line_number":251,"context_line":"            else:"},{"line_number":252,"context_line":"                if not vpn_service.is_admin_up or not conn_is_admin_up:"},{"line_number":253,"context_line":"                    LOG.debug(_(\"Update: Connection %s forced to admin down\"),"},{"line_number":254,"context_line":"                              conn_id)"},{"line_number":255,"context_line":"                    # TODO(pcm) Do shut on tunnel, once CSR supports"},{"line_number":256,"context_line":"                    ipsec_conn.forced_down \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BIig%3D","line":253,"in_reply_to":"AAAAWH%2F%2BJAc%3D","updated":"2014-03-28 22:24:40.000000000","message":"Right now, we actually delete the connection, when the service goes admin down. However, that is only because we don\u0027t have REST API support for doing a \"shut\" of the connection (tunnel).\n\nThe support is coming (soon) in the CSR, so we can just shut and then no-shut the interface, rather than destroy and recreate both the interface and all the supporting configuration.","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"5568f69cee6bc7712225268b1c8d6bdf2f0a5170","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        ipsec_conn.is_dirty \u003d False"},{"line_number":274,"context_line":"        ipsec_conn.last_status \u003d conn_data[\u0027status\u0027]"},{"line_number":275,"context_line":"        ipsec_conn.is_admin_up \u003d conn_is_admin_up"},{"line_number":276,"context_line":"        return ipsec_conn"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    def update_service(self, context, service_data):"},{"line_number":279,"context_line":"        \"\"\"Handle notification for a single VPN Service and its connections.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BJB8%3D","line":276,"updated":"2014-03-28 20:49:32.000000000","message":"Do we need to return ipsec_conn ?","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"f9d56ad8ef84a576265bd3d292307e45810fb8e2","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        ipsec_conn.is_dirty \u003d False"},{"line_number":274,"context_line":"        ipsec_conn.last_status \u003d conn_data[\u0027status\u0027]"},{"line_number":275,"context_line":"        ipsec_conn.is_admin_up \u003d conn_is_admin_up"},{"line_number":276,"context_line":"        return ipsec_conn"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    def update_service(self, context, service_data):"},{"line_number":279,"context_line":"        \"\"\"Handle notification for a single VPN Service and its connections.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BIiM%3D","line":276,"in_reply_to":"AAAAWH%2F%2BJB8%3D","updated":"2014-03-28 22:24:40.000000000","message":"Technically no, but we do so that UT can easily verify the changes made.","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":6995,"name":"Sridar Kandaswamy","email":"skandasw@yahoo.com","username":"skandasw"},"change_message_id":"5568f69cee6bc7712225268b1c8d6bdf2f0a5170","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                        \"CSR\"), {\u0027service\u0027: vpn_service_id, \u0027csr_id\u0027: csr_id})"},{"line_number":286,"context_line":"            return"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if vpn_service_id in self.service_state:"},{"line_number":289,"context_line":"            LOG.debug(_(\"Update: Existing VPN service %s detected\"),"},{"line_number":290,"context_line":"                      vpn_service_id)"},{"line_number":291,"context_line":"            vpn_service \u003d self.service_state[vpn_service_id]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BJDc%3D","line":288,"updated":"2014-03-28 20:49:32.000000000","message":"Paul, just for my understanding,  the service_state is a reflection of what the agent knows abt the device config ?","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"f9d56ad8ef84a576265bd3d292307e45810fb8e2","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                        \"CSR\"), {\u0027service\u0027: vpn_service_id, \u0027csr_id\u0027: csr_id})"},{"line_number":286,"context_line":"            return"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if vpn_service_id in self.service_state:"},{"line_number":289,"context_line":"            LOG.debug(_(\"Update: Existing VPN service %s detected\"),"},{"line_number":290,"context_line":"                      vpn_service_id)"},{"line_number":291,"context_line":"            vpn_service \u003d self.service_state[vpn_service_id]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BIiE%3D","line":288,"in_reply_to":"AAAAWH%2F%2BJDc%3D","updated":"2014-03-28 22:24:40.000000000","message":"Yes, it is the runtime state of the service (and its connections).","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"}],"neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py":[{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"e2b0eed08906339018f0094c401da43651b6f10d","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"        is deleted and the remaining connection is DOWN, the service will"},{"line_number":1276,"context_line":"        indicate as DOWN."},{"line_number":1277,"context_line":"        \"\"\""},{"line_number":1278,"context_line":"        # Simulated one service with one connection up, one down"},{"line_number":1279,"context_line":"        conn1_data \u003d {u\u0027id\u0027: u\u00271\u0027, u\u0027status\u0027: constants.ACTIVE,"},{"line_number":1280,"context_line":"                      u\u0027admin_state_up\u0027: True,"},{"line_number":1281,"context_line":"                      u\u0027cisco\u0027: {u\u0027site_conn_id\u0027: u\u0027Tunnel1\u0027}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F98Uk%3D","line":1278,"updated":"2014-04-01 04:24:37.000000000","message":"nit: Simulate","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"d968a2218652ee5e80f1c5573b854ab417fce4ab","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"        is deleted and the remaining connection is DOWN, the service will"},{"line_number":1276,"context_line":"        indicate as DOWN."},{"line_number":1277,"context_line":"        \"\"\""},{"line_number":1278,"context_line":"        # Simulated one service with one connection up, one down"},{"line_number":1279,"context_line":"        conn1_data \u003d {u\u0027id\u0027: u\u00271\u0027, u\u0027status\u0027: constants.ACTIVE,"},{"line_number":1280,"context_line":"                      u\u0027admin_state_up\u0027: True,"},{"line_number":1281,"context_line":"                      u\u0027cisco\u0027: {u\u0027site_conn_id\u0027: u\u0027Tunnel1\u0027}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F91qg%3D","line":1278,"in_reply_to":"AAAAWH%2F98Uk%3D","updated":"2014-04-01 18:48:53.000000000","message":"Will update, if I need to do another patch, otherwise will pick up in a future commit.","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"e2b0eed08906339018f0094c401da43651b6f10d","unresolved":false,"context_lines":[{"line_number":1331,"context_line":"        When the service is admin down, all the connections will report"},{"line_number":1332,"context_line":"        as DOWN."},{"line_number":1333,"context_line":"        \"\"\""},{"line_number":1334,"context_line":"        # Simulated one service (admin down) with two ACTIVE connections"},{"line_number":1335,"context_line":"        conn1_data \u003d {u\u0027id\u0027: u\u00271\u0027, u\u0027status\u0027: constants.ACTIVE,"},{"line_number":1336,"context_line":"                      u\u0027admin_state_up\u0027: True,"},{"line_number":1337,"context_line":"                      u\u0027cisco\u0027: {u\u0027site_conn_id\u0027: u\u0027Tunnel1\u0027}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F98UY%3D","line":1334,"updated":"2014-04-01 04:24:37.000000000","message":"Ditto","commit_id":"c1ccc585bda70925a4cffe617743ef6472fe60c4"}]}
