)]}'
{"neutron/api/graphql/README.rst":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"873aa0aedf43c85fc805f00e41077294cf6e965e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                                                                                                                                      |"},{"line_number":91,"context_line":"Query with variables"},{"line_number":92,"context_line":"--------------------"},{"line_number":93,"context_line":"\u003e\u003e\u003e curl -s http://38.145.34.32:19696/graphql/   -H \"X-Auth-Token: $TOK\" \\"},{"line_number":94,"context_line":"  -d \u0027{"},{"line_number":95,"context_line":"        \"query\": \"query myNet($id: ID!) {"},{"line_number":96,"context_line":"          network(id: $id) {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f7c97a3_38d58ae6","line":93,"range":{"start_line":93,"start_character":32,"end_line":93,"end_character":37},"updated":"2018-07-09 15:45:27.000000000","message":"9696 is the neutron port","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"873aa0aedf43c85fc805f00e41077294cf6e965e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                                                                                                                                      |"},{"line_number":91,"context_line":"Query with variables"},{"line_number":92,"context_line":"--------------------"},{"line_number":93,"context_line":"\u003e\u003e\u003e curl -s http://38.145.34.32:19696/graphql/   -H \"X-Auth-Token: $TOK\" \\"},{"line_number":94,"context_line":"  -d \u0027{"},{"line_number":95,"context_line":"        \"query\": \"query myNet($id: ID!) {"},{"line_number":96,"context_line":"          network(id: $id) {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f7c97a3_78cf8256","line":93,"range":{"start_line":93,"start_character":19,"end_line":93,"end_character":31},"updated":"2018-07-09 15:45:27.000000000","message":"maybe just use localhost to be generic","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"04e47ad3cec065585f7ca1a6aa66a38dc56c3ded","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                                                                                                                                      |"},{"line_number":91,"context_line":"Query with variables"},{"line_number":92,"context_line":"--------------------"},{"line_number":93,"context_line":"\u003e\u003e\u003e curl -s http://38.145.34.32:19696/graphql/   -H \"X-Auth-Token: $TOK\" \\"},{"line_number":94,"context_line":"  -d \u0027{"},{"line_number":95,"context_line":"        \"query\": \"query myNet($id: ID!) {"},{"line_number":96,"context_line":"          network(id: $id) {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f7c97a3_8678f47d","line":93,"range":{"start_line":93,"start_character":32,"end_line":93,"end_character":37},"in_reply_to":"5f7c97a3_38d58ae6","updated":"2018-07-20 00:07:32.000000000","message":"Done","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"04e47ad3cec065585f7ca1a6aa66a38dc56c3ded","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                                                                                                                                      |"},{"line_number":91,"context_line":"Query with variables"},{"line_number":92,"context_line":"--------------------"},{"line_number":93,"context_line":"\u003e\u003e\u003e curl -s http://38.145.34.32:19696/graphql/   -H \"X-Auth-Token: $TOK\" \\"},{"line_number":94,"context_line":"  -d \u0027{"},{"line_number":95,"context_line":"        \"query\": \"query myNet($id: ID!) {"},{"line_number":96,"context_line":"          network(id: $id) {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f7c97a3_a67bb077","line":93,"range":{"start_line":93,"start_character":19,"end_line":93,"end_character":31},"in_reply_to":"5f7c97a3_78cf8256","updated":"2018-07-20 00:07:32.000000000","message":"Done","commit_id":"095136761731710fc83442f1171470d0dfed4dae"}],"neutron/api/graphql/README.txt":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"ab16592ddc3f853af81b85df2f5caaa34124f7ce","unresolved":false,"context_lines":[{"line_number":49,"context_line":"     -H \"X-Auth-Token: $TOKEN\""},{"line_number":50,"context_line":"     -d \u0027{\"query\": \"{ allNetworks { edges { node { name } } } }\"}\u0027 \\"},{"line_number":51,"context_line":"     -X POST http://localhost:9696/graphql/"},{"line_number":52,"context_line":"\"\"\""}],"source_content_type":"text/plain","patch_set":1,"id":"5f7c97a3_9ded4b90","line":52,"updated":"2018-06-18 17:53:33.000000000","message":"It might be nice to serve this at /graphiql (or I guess docs for someone to set it up, as it\u0027s no longer just a static page we could include): https://github.com/graphql/graphiql\n\nIt provides a nice playground for folks to test with, has autocomplete for the schema, etc. I found it hugely valuable when I was working on a graphql backend.","commit_id":"556d7d5d10824048e2849d5b38a7940adf8f95ed"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"88ed0b10fc955536da6782f7e5ddb1cb48031bbf","unresolved":false,"context_lines":[{"line_number":49,"context_line":"     -H \"X-Auth-Token: $TOKEN\""},{"line_number":50,"context_line":"     -d \u0027{\"query\": \"{ allNetworks { edges { node { name } } } }\"}\u0027 \\"},{"line_number":51,"context_line":"     -X POST http://localhost:9696/graphql/"},{"line_number":52,"context_line":"\"\"\""}],"source_content_type":"text/plain","patch_set":1,"id":"5f7c97a3_dfbe4e63","line":52,"in_reply_to":"5f7c97a3_9ded4b90","updated":"2018-06-19 03:15:53.000000000","message":"GraphiQL is great meanwhile should it be distributed directly from OpenStack service endpoints?\n\nAlthough out of scope of this Proof of Concept, it would be effectively great to show the power of introspection, so in the meantime we have a way to distribute GraphiQL (central GraphQL endpoint or horizon) I would suggest to use Web browser clients for GraphQL such as Altair or ChromeiQL.","commit_id":"556d7d5d10824048e2849d5b38a7940adf8f95ed"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"     -H \"X-Auth-Token: $TOKEN\""},{"line_number":50,"context_line":"     -d \u0027{\"query\": \"{ allNetworks { edges { node { name } } } }\"}\u0027 \\"},{"line_number":51,"context_line":"     -X POST http://localhost:9696/graphql/"},{"line_number":52,"context_line":"\"\"\""}],"source_content_type":"text/plain","patch_set":1,"id":"5f7c97a3_4bf8097b","line":52,"in_reply_to":"5f7c97a3_ae7bf478","updated":"2018-06-22 06:06:57.000000000","message":"You\u0027re right, that\u0027s the plan, going to add some today. Thanks!","commit_id":"556d7d5d10824048e2849d5b38a7940adf8f95ed"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"de70a96f2c956f10862801719a8872a6afec7cdd","unresolved":false,"context_lines":[{"line_number":49,"context_line":"     -H \"X-Auth-Token: $TOKEN\""},{"line_number":50,"context_line":"     -d \u0027{\"query\": \"{ allNetworks { edges { node { name } } } }\"}\u0027 \\"},{"line_number":51,"context_line":"     -X POST http://localhost:9696/graphql/"},{"line_number":52,"context_line":"\"\"\""}],"source_content_type":"text/plain","patch_set":1,"id":"5f7c97a3_ae7bf478","line":52,"in_reply_to":"5f7c97a3_dfbe4e63","updated":"2018-06-20 16:11:01.000000000","message":"Sure, that would make sense.\n\nI think if we\u0027re writing POC code it would be good to include some docs on how someone might play with this or test it out easily. While learning graphql it\u0027s much easier to use something browser-based that can help with schema and such, so I\u0027d recommend documenting how one might do that here. :)","commit_id":"556d7d5d10824048e2849d5b38a7940adf8f95ed"}],"neutron/api/graphql/base.py":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0ad57e2312a04d94f48f2596ab0948e55d1dcffc","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import graphene"},{"line_number":16,"context_line":"from graphene import relay"},{"line_number":17,"context_line":"from graphene_sqlalchemy import SQLAlchemyObjectType, SQLAlchemyConnectionField"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from graphql.error import format_error as format_graphql_error"},{"line_number":20,"context_line":"from graphql.error import GraphQLError"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_95138901","line":17,"updated":"2018-06-21 23:11:59.000000000","message":"pep H301: one import per line,   you need to split this into another:\n\nfrom graphene_sqlalchemy import SQLAlchemyConnectionField","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import graphene"},{"line_number":16,"context_line":"from graphene import relay"},{"line_number":17,"context_line":"from graphene_sqlalchemy import SQLAlchemyObjectType, SQLAlchemyConnectionField"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from graphql.error import format_error as format_graphql_error"},{"line_number":20,"context_line":"from graphql.error import GraphQLError"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_a1544355","line":17,"in_reply_to":"5f7c97a3_95138901","updated":"2018-06-22 06:06:57.000000000","message":"Done","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0ad57e2312a04d94f48f2596ab0948e55d1dcffc","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron.db.models_v2 import Network as network_model"},{"line_number":23,"context_line":"from neutron.db.models_v2 import Subnet as subnet_model"},{"line_number":24,"context_line":"from neutron.db.api import get_reader_session"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from pecan import response as pecan_response"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f5d75d21","line":24,"updated":"2018-06-21 23:11:59.000000000","message":"pep H306:  imports not in alphabetical order,  you need to invert neutron.db.models_v2.subnet and neutron.db.api.get_reader_session","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron.db.models_v2 import Network as network_model"},{"line_number":23,"context_line":"from neutron.db.models_v2 import Subnet as subnet_model"},{"line_number":24,"context_line":"from neutron.db.api import get_reader_session"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from pecan import response as pecan_response"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_c1513f64","line":24,"in_reply_to":"5f7c97a3_f5d75d21","updated":"2018-06-22 06:06:57.000000000","message":"Done","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0ad57e2312a04d94f48f2596ab0948e55d1dcffc","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Subnet(SQLAlchemyObjectType):"},{"line_number":30,"context_line":"    class Meta:"},{"line_number":31,"context_line":"        model \u003d subnet_model"},{"line_number":32,"context_line":"        interfaces \u003d (relay.Node, )"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_15dd3940","line":30,"updated":"2018-06-21 23:11:59.000000000","message":"pep H238: old style class declaration, you need to make Meta inherit from object, e.g. replace all class Meta by:\n\nclass Meta(object):\n\n\nHopefully that won\u0027t break graphene...","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Subnet(SQLAlchemyObjectType):"},{"line_number":30,"context_line":"    class Meta:"},{"line_number":31,"context_line":"        model \u003d subnet_model"},{"line_number":32,"context_line":"        interfaces \u003d (relay.Node, )"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_614aabad","line":30,"in_reply_to":"5f7c97a3_15dd3940","updated":"2018-06-22 06:06:57.000000000","message":"Done","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"873aa0aedf43c85fc805f00e41077294cf6e965e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from neutron.db.models_v2 import Network as network_model"},{"line_number":27,"context_line":"from neutron.db.models_v2 import Subnet as subnet_model"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from pecan import response as pecan_response"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class Subnet(SQLAlchemyObjectType):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_1830ce9d","line":29,"updated":"2018-07-09 15:45:27.000000000","message":"Guessing this should be above the neutron ones to not have a pep8 failure?","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"04e47ad3cec065585f7ca1a6aa66a38dc56c3ded","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from neutron.db.models_v2 import Network as network_model"},{"line_number":27,"context_line":"from neutron.db.models_v2 import Subnet as subnet_model"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from pecan import response as pecan_response"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class Subnet(SQLAlchemyObjectType):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_6691189a","line":29,"in_reply_to":"5f7c97a3_1830ce9d","updated":"2018-07-20 00:07:32.000000000","message":"Done","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"873aa0aedf43c85fc805f00e41077294cf6e965e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        Query.log.info(\"Network project_id %s\" % headers.get(\u0027X-Project-Id\u0027))"},{"line_number":87,"context_line":"        return query.filter("},{"line_number":88,"context_line":"            (network_model.project_id \u003d\u003d headers.get(\u0027X-Project-Id\u0027)) |"},{"line_number":89,"context_line":"            (network_model.standard_attr_id \u003d\u003d 19))"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class Mutation(graphene.ObjectType):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_18620eae","line":89,"range":{"start_line":89,"start_character":47,"end_line":89,"end_character":49},"updated":"2018-07-09 15:45:27.000000000","message":"is there a constant that can be used here?  or maybe just looks like an example.","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"04e47ad3cec065585f7ca1a6aa66a38dc56c3ded","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        Query.log.info(\"Network project_id %s\" % headers.get(\u0027X-Project-Id\u0027))"},{"line_number":87,"context_line":"        return query.filter("},{"line_number":88,"context_line":"            (network_model.project_id \u003d\u003d headers.get(\u0027X-Project-Id\u0027)) |"},{"line_number":89,"context_line":"            (network_model.standard_attr_id \u003d\u003d 19))"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class Mutation(graphene.ObjectType):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_e6ea080c","line":89,"range":{"start_line":89,"start_character":47,"end_line":89,"end_character":49},"in_reply_to":"5f7c97a3_18620eae","updated":"2018-07-20 00:07:32.000000000","message":"That\u0027s kind of an example. Thanks","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"146ace7f308b31c1a30c432b948ee6dbfdb17131","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from pecan import response as pecan_response"},{"line_number":25,"context_line":"import six"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from neutron.db.api import get_reader_session"},{"line_number":28,"context_line":"from neutron.db import db_base_plugin_v2"},{"line_number":29,"context_line":"from neutron.db.models_v2 import Network as network_model"},{"line_number":30,"context_line":"from neutron.db.models_v2 import Subnet as subnet_model"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_8a18a6cd","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":45},"updated":"2018-10-19 09:20:19.000000000","message":"it was moved  to neutron-lib:\nfrom neutron_lib.db import api as lib_db_api\n.\n..\nlib_db_api..get_reader_session()","commit_id":"24410bcbbbcffaae793ed47b97693a1be0f52204"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f28897964f752fdf1c9711455eee4e647c166df9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from pecan import response as pecan_response"},{"line_number":25,"context_line":"import six"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from neutron.db.api import get_reader_session"},{"line_number":28,"context_line":"from neutron.db import db_base_plugin_v2"},{"line_number":29,"context_line":"from neutron.db.models_v2 import Network as network_model"},{"line_number":30,"context_line":"from neutron.db.models_v2 import Subnet as subnet_model"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_a1a46e06","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":45},"in_reply_to":"3f79a3b5_8a18a6cd","updated":"2018-11-09 04:24:21.000000000","message":"Done","commit_id":"24410bcbbbcffaae793ed47b97693a1be0f52204"}],"neutron/api/v2/base.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"edc27c6a5e77ffd12c591a28418ebdb6e7b60d47","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                request.context, obj_list[0])"},{"line_number":321,"context_line":"        collection \u003d {self._collection:"},{"line_number":322,"context_line":"                      [self._filter_attributes(obj,"},{"line_number":323,"context_line":"                       fields_to_strip\u003dfields_to_strip)"},{"line_number":324,"context_line":"                       for obj in obj_list]}"},{"line_number":325,"context_line":"        pagination_links \u003d pagination_helper.get_links(obj_list)"},{"line_number":326,"context_line":"        if pagination_links:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_4fc19c4d","line":323,"range":{"start_line":323,"start_character":23,"end_line":323,"end_character":55},"updated":"2018-09-07 14:38:52.000000000","message":"nit: I suppose this was an accidental indent change.","commit_id":"f52b6d0cfe7caf9aebc410ded7d5d47381ef2f53"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b73a8da4ffda37bd4f5200efdba16cb48ba5169d","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                request.context, obj_list[0])"},{"line_number":321,"context_line":"        collection \u003d {self._collection:"},{"line_number":322,"context_line":"                      [self._filter_attributes(obj,"},{"line_number":323,"context_line":"                       fields_to_strip\u003dfields_to_strip)"},{"line_number":324,"context_line":"                       for obj in obj_list]}"},{"line_number":325,"context_line":"        pagination_links \u003d pagination_helper.get_links(obj_list)"},{"line_number":326,"context_line":"        if pagination_links:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_0f8ff62f","line":323,"range":{"start_line":323,"start_character":23,"end_line":323,"end_character":55},"in_reply_to":"3f79a3b5_4fc19c4d","updated":"2018-10-05 01:55:30.000000000","message":"Yes it was, thanks.","commit_id":"f52b6d0cfe7caf9aebc410ded7d5d47381ef2f53"}],"neutron/pecan_wsgi/controllers/root.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"873aa0aedf43c85fc805f00e41077294cf6e965e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if \u0027variables\u0027 in request.json:"},{"line_number":67,"context_line":"            variables \u003d request.json[\u0027variables\u0027]"},{"line_number":68,"context_line":"        else:"},{"line_number":69,"context_line":"            variables \u003d None"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if \u0027query\u0027 in request.json:"},{"line_number":72,"context_line":"            return self.graphql.run(request.json[\u0027query\u0027], variables)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_1891ae46","line":69,"updated":"2018-07-09 15:45:27.000000000","message":"nit: should move this to above L66 to be consistent with other code you added\n\n    variables \u003d None\n    if \u0027variables\u0027 in ....","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"04e47ad3cec065585f7ca1a6aa66a38dc56c3ded","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if \u0027variables\u0027 in request.json:"},{"line_number":67,"context_line":"            variables \u003d request.json[\u0027variables\u0027]"},{"line_number":68,"context_line":"        else:"},{"line_number":69,"context_line":"            variables \u003d None"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if \u0027query\u0027 in request.json:"},{"line_number":72,"context_line":"            return self.graphql.run(request.json[\u0027query\u0027], variables)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_66d6f855","line":69,"in_reply_to":"5f7c97a3_1891ae46","updated":"2018-07-20 00:07:32.000000000","message":"Done","commit_id":"095136761731710fc83442f1171470d0dfed4dae"}],"neutron/tests/functional/pecan_wsgi/test_graphql.py":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0ad57e2312a04d94f48f2596ab0948e55d1dcffc","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os.path"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from neutron_lib import context"},{"line_number":20,"context_line":"from neutron_lib.plugins import directory"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_b5e5650c","line":17,"updated":"2018-06-21 23:11:59.000000000","message":"pep H306: imports not in alphabetical order (os.path, json)","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os.path"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from neutron_lib import context"},{"line_number":20,"context_line":"from neutron_lib.plugins import directory"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_41cbef1c","line":17,"in_reply_to":"5f7c97a3_b5e5650c","updated":"2018-06-22 06:06:57.000000000","message":"Done","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0ad57e2312a04d94f48f2596ab0948e55d1dcffc","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        api_method \u003d getattr(self.app, \u0027post\u0027)"},{"line_number":42,"context_line":"        response \u003d api_method("},{"line_number":43,"context_line":"            self.base_url,"},{"line_number":44,"context_line":"            json.dumps({\u0027query\u0027: query}),"},{"line_number":45,"context_line":"            content_type\u003d\u0027application/json\u0027,"},{"line_number":46,"context_line":"            expect_errors\u003dTrue)"},{"line_number":47,"context_line":"        return response.json"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_d5e26101","line":44,"updated":"2018-06-21 23:11:59.000000000","message":"pep N521:  jsonutils.dumps must be used instead of json.dumps. It seems like you need to replace s/json/jsonutils/","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        api_method \u003d getattr(self.app, \u0027post\u0027)"},{"line_number":42,"context_line":"        response \u003d api_method("},{"line_number":43,"context_line":"            self.base_url,"},{"line_number":44,"context_line":"            json.dumps({\u0027query\u0027: query}),"},{"line_number":45,"context_line":"            content_type\u003d\u0027application/json\u0027,"},{"line_number":46,"context_line":"            expect_errors\u003dTrue)"},{"line_number":47,"context_line":"        return response.json"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_e1cb1b1a","line":44,"in_reply_to":"5f7c97a3_d5e26101","updated":"2018-06-22 06:06:57.000000000","message":"Done","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0ad57e2312a04d94f48f2596ab0948e55d1dcffc","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    def test_graphql_index(self):"},{"line_number":50,"context_line":"        api_method \u003d getattr(self.app, \u0027get\u0027)"},{"line_number":51,"context_line":"        response \u003d api_method(self.base_url, expect_errors\u003dTrue)"},{"line_number":52,"context_line":"        self.assertEquals(json.dumps(\u0027Welcome to GraphQL API for Neutron\u0027),"},{"line_number":53,"context_line":"                          response.text)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def test_graphql_query(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_75eb4ddc","line":52,"updated":"2018-06-21 23:11:59.000000000","message":"pep H234: assertEquals is deprecated, use assertEqual. It seems like you need to replace s/assertEquals/assertEqual/","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5129412a84522f33b2d1db2f3b9100f37a22e81b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    def test_graphql_index(self):"},{"line_number":50,"context_line":"        api_method \u003d getattr(self.app, \u0027get\u0027)"},{"line_number":51,"context_line":"        response \u003d api_method(self.base_url, expect_errors\u003dTrue)"},{"line_number":52,"context_line":"        self.assertEquals(json.dumps(\u0027Welcome to GraphQL API for Neutron\u0027),"},{"line_number":53,"context_line":"                          response.text)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def test_graphql_query(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_a1d9a3f4","line":52,"in_reply_to":"5f7c97a3_75eb4ddc","updated":"2018-06-22 06:06:57.000000000","message":"Done","commit_id":"b5e9944bf5ab9f1db9254f7389f6f2cbbe152bcd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"873aa0aedf43c85fc805f00e41077294cf6e965e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_58a2c698","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"updated":"2018-07-09 15:45:27.000000000","message":"don\u0027t know if recycled header or code?","commit_id":"095136761731710fc83442f1171470d0dfed4dae"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"04e47ad3cec065585f7ca1a6aa66a38dc56c3ded","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_26dc806f","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"in_reply_to":"5f7c97a3_58a2c698","updated":"2018-07-20 00:07:32.000000000","message":"Done","commit_id":"095136761731710fc83442f1171470d0dfed4dae"}]}
