)]}'
{"neutronclient/neutron/v2_0/vpn/ssl_vpn_connection.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ListSSLVPNConnection(neutronv20.ListCommand):"},{"line_number":25,"context_line":"    \"\"\"List SSLVPNConnections that belong to a given tenant.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    resource \u003d \u0027ssl_vpn_connection\u0027"},{"line_number":28,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListSSLVPNConnection\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F6ys%3D","line":25,"updated":"2014-02-24 03:42:07.000000000","message":"The docstring is used for help message.\n\n  SSLVPNConnection -\u003e SSL VPN Connections","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            \u0027vpncredential\u0027, metavar\u003d\u0027VPNCREDENTIAL\u0027,"},{"line_number":62,"context_line":"            help\u003d_(\u0027VPN Credential associated with this connection\u0027))"},{"line_number":63,"context_line":"        parser.add_argument("},{"line_number":64,"context_line":"            \u0027--client_address_pool_cidr\u0027,"},{"line_number":65,"context_line":"            default\u003d\u0027192.168.0.0/24\u0027,"},{"line_number":66,"context_line":"            help\u003d_(\u0027Client subnet(s) in CIDR format\u0027))"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F6zY%3D","line":64,"updated":"2014-02-24 03:42:07.000000000","message":"Use hyphen instead of underscore.","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        _credential_id \u003d neutronv20.find_resourceid_by_name_or_id("},{"line_number":73,"context_line":"            self.get_client(), \u0027vpn_credential\u0027,"},{"line_number":74,"context_line":"            parsed_args.vpncredential)"},{"line_number":75,"context_line":"        body \u003d {\u0027ssl_vpn_connection\u0027: {"},{"line_number":76,"context_line":"            \u0027vpnservice_id\u0027: _vpnservice_id,"},{"line_number":77,"context_line":"            \u0027credential_id\u0027: _credential_id,"},{"line_number":78,"context_line":"            \u0027client_address_pool_cidr\u0027: parsed_args.client_address_pool_cidr,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F6y0%3D","line":75,"updated":"2014-02-24 03:42:07.000000000","message":"Consider the following style. IMO it is easier to read and maintain.\n\n  body \u003d {\u0027vpnservice_id\u0027: _vpnservice_id,\n             ....}\n  ....\n  return {\u0027ssl_vpn_connection\u0027: body}","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"}],"neutronclient/neutron/v2_0/vpn/vpn_credential.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            required\u003dTrue,"},{"line_number":58,"context_line":"            help\u003d_(\u0027PEM encoded CA Certificate file\u0027))"},{"line_number":59,"context_line":"        parser.add_argument("},{"line_number":60,"context_line":"            \u0027--server_certificate\u0027, metavar\u003d\u0027SERVER_CERTIFICATE\u0027,"},{"line_number":61,"context_line":"            required\u003dTrue,"},{"line_number":62,"context_line":"            help\u003d_(\u0027PEM encoded Server certificate\u0027))"},{"line_number":63,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F60w%3D","line":60,"updated":"2014-02-24 03:42:07.000000000","message":"the delimeter should be a hyphen.\n\n  --server-certificate","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            required\u003dTrue,"},{"line_number":62,"context_line":"            help\u003d_(\u0027PEM encoded Server certificate\u0027))"},{"line_number":63,"context_line":"        parser.add_argument("},{"line_number":64,"context_line":"            \u0027--server_key\u0027, metavar\u003d\u0027SERVER_KEY\u0027,"},{"line_number":65,"context_line":"            required\u003dTrue,"},{"line_number":66,"context_line":"            help\u003d_(\u0027PEM encoded Server key\u0027))"},{"line_number":67,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F60o%3D","line":64,"updated":"2014-02-24 03:42:07.000000000","message":"same as the above.","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    def _read_file(self, file_name):"},{"line_number":76,"context_line":"        try:"},{"line_number":77,"context_line":"            with open(os.path.expanduser(file_name)) as f:"},{"line_number":78,"context_line":"                body \u003d f.read()"},{"line_number":79,"context_line":"            return body"},{"line_number":80,"context_line":"        except IOError as e:"},{"line_number":81,"context_line":"            raise exceptions.CommandError("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F6zo%3D","line":78,"updated":"2014-02-24 03:42:07.000000000","message":"return f.read()","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            return body"},{"line_number":80,"context_line":"        except IOError as e:"},{"line_number":81,"context_line":"            raise exceptions.CommandError("},{"line_number":82,"context_line":"                \"Can\u0027t open or read \u0027%s\u0027: %s\" % (file_name, e))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def args2body(self, parsed_args):"},{"line_number":85,"context_line":"        _ca \u003d self._read_file(parsed_args.ca)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F6zg%3D","line":82,"updated":"2014-02-24 03:42:07.000000000","message":"Use keyword substitution.","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        if parsed_args.crl:"},{"line_number":104,"context_line":"            _crl \u003d self._read_file(parsed_args.crl)"},{"line_number":105,"context_line":"            body[\u0027vpn_credential\u0027].update("},{"line_number":106,"context_line":"                {\u0027crl\u0027: _crl})"},{"line_number":107,"context_line":"        return body"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F6zw%3D","line":106,"updated":"2014-02-24 03:42:07.000000000","message":"update operation costs more than normal dict key operation.\nPlease consider using the following style.\nIMO it is easier to read too.\n\n  body \u003d {\u0027ca\u0027: ca, ....}\n  if parsed_args.name:\n      body[\u0027name\u0027] \u003d parsed_args.name\n  ....\n  return {\u0027vpn_credential\u0027: body}","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"}],"neutronclient/v2_0/client.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":653,"context_line":"    @APIParamsCall"},{"line_number":654,"context_line":"    def delete_ssl_vpn_connection(self, ssl_vpn_conn):"},{"line_number":655,"context_line":"        \"\"\"Deletes the specified SSLVPNConnection.\"\"\""},{"line_number":656,"context_line":"        return self.delete(self.ssl_vpn_connection_path % (ssl_vpn_conn))"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    @APIParamsCall"},{"line_number":659,"context_line":"    def list_vpn_credentials(self, retrieve_all\u003dTrue, **_params):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F61k%3D","line":656,"updated":"2014-02-24 03:42:07.000000000","message":"Parentheses around ssl_vpn_conn are unnecessary.","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"31809e59b8f1cf1f8b9ccc1ef7bdfd40916f9577","unresolved":false,"context_lines":[{"line_number":683,"context_line":"    @APIParamsCall"},{"line_number":684,"context_line":"    def delete_vpn_credential(self, vpn_credential):"},{"line_number":685,"context_line":"        \"\"\"Deletes the specified vpn_credential.\"\"\""},{"line_number":686,"context_line":"        return self.delete(self.vpn_credential_path % (vpn_credential))"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    @APIParamsCall"},{"line_number":689,"context_line":"    def list_vips(self, retrieve_all\u003dTrue, **_params):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F61c%3D","line":686,"updated":"2014-02-24 03:42:07.000000000","message":"same as the above","commit_id":"548cec948a9a7871a95c4c5abd9f1beebe17a537"}]}
