)]}'
{"quantum/agent/l3_agent.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"unresolved":false,"context_lines":[{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def external_gateway_nat_rules(self, ex_gw_ip, internal_cidrs,"},{"line_number":466,"context_line":"                                   interface_name):"},{"line_number":467,"context_line":"        data \u003d {\u0027interface_name\u0027: interface_name}"},{"line_number":468,"context_line":"        rules \u003d [(\u0027POSTROUTING\u0027, \u0027! -i %(interface_name)s \u0027"},{"line_number":469,"context_line":"                  \u0027! -o %(interface_name)s -m conntrack ! \u0027"},{"line_number":470,"context_line":"                  \u0027--ctstate DNAT -j ACCEPT\u0027 % data)]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2F1GU%3D","line":467,"updated":"2013-04-19 23:12:29.000000000","message":"nit: I\u0027d rather see this line wrapped than create a data variable for this but i\u0027m okay with it.","commit_id":"a6218465f613611173523b56c0d5fc501700c822"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def external_gateway_nat_rules(self, ex_gw_ip, internal_cidrs,"},{"line_number":466,"context_line":"                                   interface_name):"},{"line_number":467,"context_line":"        data \u003d {\u0027interface_name\u0027: interface_name}"},{"line_number":468,"context_line":"        rules \u003d [(\u0027POSTROUTING\u0027, \u0027! -i %(interface_name)s \u0027"},{"line_number":469,"context_line":"                  \u0027! -o %(interface_name)s -m conntrack ! \u0027"},{"line_number":470,"context_line":"                  \u0027--ctstate DNAT -j ACCEPT\u0027 % data)]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2F1B0%3D","line":467,"in_reply_to":"AAAAOn%2F%2F1GU%3D","updated":"2013-04-20 01:56:49.000000000","message":"Done","commit_id":"a6218465f613611173523b56c0d5fc501700c822"}],"quantum/agent/linux/ovs_lib.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ec4328c545ff9898f4f84169df0ad5e749ab8ac3","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        return utils.execute(args, root_helper\u003droot_helper).strip()"},{"line_number":290,"context_line":"    except Exception, e:"},{"line_number":291,"context_line":"        LOG.exception(_(\"Interface %(iface)s not found. Exception: %(e)s\"),"},{"line_number":292,"context_line":"                      dict(iface\u003diface, e\u003de))"},{"line_number":293,"context_line":"        return None"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F2pQ%3D","line":292,"updated":"2013-04-17 15:17:33.000000000","message":"\u0027e\u0027 can be removed. Because LOG.exception will log exception","commit_id":"b3b6c248d780ba3b833c0ec621df92d5bb8af34d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":289,"context_line":"        return utils.execute(args, root_helper\u003droot_helper).strip()"},{"line_number":290,"context_line":"    except Exception, e:"},{"line_number":291,"context_line":"        LOG.exception(_(\"Interface %(iface)s not found. Exception: %(e)s\"),"},{"line_number":292,"context_line":"                      dict(iface\u003diface, e\u003de))"},{"line_number":293,"context_line":"        return None"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F2hY%3D","line":292,"in_reply_to":"AAAAOn%2F%2F2pQ%3D","updated":"2013-04-17 18:24:25.000000000","message":"Done","commit_id":"b3b6c248d780ba3b833c0ec621df92d5bb8af34d"}],"quantum/api/v2/attributes.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"unresolved":false,"context_lines":[{"line_number":50,"context_line":"    predicate \u003d expected_keys.__eq__ if strict else expected_keys.issubset"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    if not predicate(provided_keys):"},{"line_number":53,"context_line":"        data \u003d {\u0027expected_keys\u0027: expected_keys,"},{"line_number":54,"context_line":"                \u0027provided_keys\u0027: provided_keys}"},{"line_number":55,"context_line":"        msg \u003d (_(\"Validation of dictionary\u0027s keys failed.\""},{"line_number":56,"context_line":"                 \"Expected keys: %(expected_keys)s \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2F1GQ%3D","line":53,"updated":"2013-04-19 23:12:29.000000000","message":"ditto","commit_id":"a6218465f613611173523b56c0d5fc501700c822"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":50,"context_line":"    predicate \u003d expected_keys.__eq__ if strict else expected_keys.issubset"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    if not predicate(provided_keys):"},{"line_number":53,"context_line":"        data \u003d {\u0027expected_keys\u0027: expected_keys,"},{"line_number":54,"context_line":"                \u0027provided_keys\u0027: provided_keys}"},{"line_number":55,"context_line":"        msg \u003d (_(\"Validation of dictionary\u0027s keys failed.\""},{"line_number":56,"context_line":"                 \"Expected keys: %(expected_keys)s \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2F1Bw%3D","line":53,"in_reply_to":"AAAAOn%2F%2F1GQ%3D","updated":"2013-04-20 01:56:49.000000000","message":"Done","commit_id":"a6218465f613611173523b56c0d5fc501700c822"}],"quantum/common/config.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"unresolved":false,"context_lines":[{"line_number":134,"context_line":"    try:"},{"line_number":135,"context_line":"        app \u003d deploy.loadapp(\"config:%s\" % config_path, name\u003dapp_name)"},{"line_number":136,"context_line":"    except (LookupError, ImportError):"},{"line_number":137,"context_line":"        data \u003d {\u0027app_name\u0027: app_name,"},{"line_number":138,"context_line":"                \u0027config_path\u0027: config_path}"},{"line_number":139,"context_line":"        msg \u003d _(\"Unable to load %(app_name)s from \""},{"line_number":140,"context_line":"                \"configuration file %(config_path)s.\") % data"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2F1GM%3D","line":137,"updated":"2013-04-19 23:12:29.000000000","message":"ditto","commit_id":"a6218465f613611173523b56c0d5fc501700c822"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":134,"context_line":"    try:"},{"line_number":135,"context_line":"        app \u003d deploy.loadapp(\"config:%s\" % config_path, name\u003dapp_name)"},{"line_number":136,"context_line":"    except (LookupError, ImportError):"},{"line_number":137,"context_line":"        data \u003d {\u0027app_name\u0027: app_name,"},{"line_number":138,"context_line":"                \u0027config_path\u0027: config_path}"},{"line_number":139,"context_line":"        msg \u003d _(\"Unable to load %(app_name)s from \""},{"line_number":140,"context_line":"                \"configuration file %(config_path)s.\") % data"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2F1Bs%3D","line":137,"in_reply_to":"AAAAOn%2F%2F1GM%3D","updated":"2013-04-20 01:56:49.000000000","message":"Done","commit_id":"a6218465f613611173523b56c0d5fc501700c822"}],"quantum/db/l3_db.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":529,"context_line":"                data \u003d dict(port_id\u003dport_id)"},{"line_number":530,"context_line":"                msg \u003d _(\u0027Cannnot create floating IP and bind it to \u0027"},{"line_number":531,"context_line":"                        \u0027Port %(port_id)s, since that port is owned by a \u0027"},{"line_number":532,"context_line":"                        \u0027different tenant.\u0027)"},{"line_number":533,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg % data)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        internal_subnet_id \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F2f0%3D","line":532,"updated":"2013-04-17 18:53:12.000000000","message":"In this case it might be worth doing parameter substitution at the above line rather than at the line below","commit_id":"2e7ca661714baeb61c187eb504aeb1eeb29bac12"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":529,"context_line":"                data \u003d dict(port_id\u003dport_id)"},{"line_number":530,"context_line":"                msg \u003d _(\u0027Cannnot create floating IP and bind it to \u0027"},{"line_number":531,"context_line":"                        \u0027Port %(port_id)s, since that port is owned by a \u0027"},{"line_number":532,"context_line":"                        \u0027different tenant.\u0027)"},{"line_number":533,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg % data)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        internal_subnet_id \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F2Vg%3D","line":532,"in_reply_to":"AAAAOn%2F%2F2f0%3D","updated":"2013-04-17 21:54:36.000000000","message":"Done","commit_id":"2e7ca661714baeb61c187eb504aeb1eeb29bac12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ec4328c545ff9898f4f84169df0ad5e749ab8ac3","unresolved":false,"context_lines":[{"line_number":529,"context_line":"                data \u003d {\u0027port_id\u0027: port_id}"},{"line_number":530,"context_line":"                msg \u003d (_(\u0027Cannnot create floating IP and bind it to \u0027"},{"line_number":531,"context_line":"                         \u0027Port %(port_id)s, since that port is owned by a \u0027"},{"line_number":532,"context_line":"                         \u0027different tenant.\u0027) % data)"},{"line_number":533,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        internal_subnet_id \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2F05Q%3D","line":532,"updated":"2013-04-20 13:41:05.000000000","message":"nits, Just use \u0027%s\u0027 is ok.","commit_id":"7623d325e8dd505be8d588908c13401aeffc4cdf"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":529,"context_line":"                data \u003d {\u0027port_id\u0027: port_id}"},{"line_number":530,"context_line":"                msg \u003d (_(\u0027Cannnot create floating IP and bind it to \u0027"},{"line_number":531,"context_line":"                         \u0027Port %(port_id)s, since that port is owned by a \u0027"},{"line_number":532,"context_line":"                         \u0027different tenant.\u0027) % data)"},{"line_number":533,"context_line":"            raise q_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        internal_subnet_id \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2F000%3D","line":532,"in_reply_to":"AAAAOn%2F%2F05Q%3D","updated":"2013-04-20 21:48:59.000000000","message":"Done","commit_id":"7623d325e8dd505be8d588908c13401aeffc4cdf"}],"quantum/plugins/bigswitch/plugin.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":161,"context_line":"        LOG.debug(_(\"ServerProxy: server\u003d%(server)s, port\u003d%(port)d, \""},{"line_number":162,"context_line":"                    \"ssl\u003d%(ssl)r, action\u003d%(action)s\"),"},{"line_number":163,"context_line":"                  {\u0027server\u0027: self.server, \u0027port\u0027: self.port, \u0027ssl\u0027: self.ssl,"},{"line_number":164,"context_line":"                   \u0027action\u0027: action})"},{"line_number":165,"context_line":"        LOG.debug(_(\"ServerProxy: resource\u003d%(resource)s, data\u003d%(data)r, \""},{"line_number":166,"context_line":"                    \"headers\u003d%(headers)r\"),"},{"line_number":167,"context_line":"                  dict(resource\u003dresource, data\u003ddata, headers\u003dheaders))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F2fg%3D","line":164,"updated":"2013-04-17 18:53:12.000000000","message":"question: should statements like the above be replaced with the dict() statements for consistency.\n\nMy opinion: not really","commit_id":"2e7ca661714baeb61c187eb504aeb1eeb29bac12"}],"quantum/plugins/nicira/QuantumPlugin.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ec4328c545ff9898f4f84169df0ad5e749ab8ac3","unresolved":false,"context_lines":[{"line_number":1761,"context_line":"        if results:"},{"line_number":1762,"context_line":"            ls_port \u003d results[0]"},{"line_number":1763,"context_line":"        else:"},{"line_number":1764,"context_line":"            data \u003d dict(port_id\u003dport_id, router_id\u003drouter_id)"},{"line_number":1765,"context_line":"            raise nvp_exc.NvpPluginException("},{"line_number":1766,"context_line":"                err_msg\u003d(_(\"The port %(port_id)s, connected to the router \""},{"line_number":1767,"context_line":"                           \"%(router_id)s was not found on the NVP \""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2F05U%3D","line":1764,"updated":"2013-04-20 13:41:05.000000000","message":"This should be \u0027{}\u0027 too?","commit_id":"7623d325e8dd505be8d588908c13401aeffc4cdf"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":1761,"context_line":"        if results:"},{"line_number":1762,"context_line":"            ls_port \u003d results[0]"},{"line_number":1763,"context_line":"        else:"},{"line_number":1764,"context_line":"            data \u003d dict(port_id\u003dport_id, router_id\u003drouter_id)"},{"line_number":1765,"context_line":"            raise nvp_exc.NvpPluginException("},{"line_number":1766,"context_line":"                err_msg\u003d(_(\"The port %(port_id)s, connected to the router \""},{"line_number":1767,"context_line":"                           \"%(router_id)s was not found on the NVP \""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2F00o%3D","line":1764,"in_reply_to":"AAAAOn%2F%2F05U%3D","updated":"2013-04-20 21:48:59.000000000","message":"Done","commit_id":"7623d325e8dd505be8d588908c13401aeffc4cdf"}]}
