)]}'
{"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"e224239a3cbe1ee098c13eb3730a3ca55292bd99","unresolved":false,"context_lines":[{"line_number":580,"context_line":""},{"line_number":581,"context_line":"    # Note: This is not the parent SecurityGroup. It\u0027s SecurityGroup we\u0027re"},{"line_number":582,"context_line":"    # granting access for."},{"line_number":583,"context_line":"    group_id \u003d Column(Integer, ForeignKey(\u0027security_groups.id\u0027),"},{"line_number":584,"context_line":"                      nullable\u003dFalse)"},{"line_number":585,"context_line":"    grantee_group \u003d relationship(\"SecurityGroup\","},{"line_number":586,"context_line":"                                 foreign_keys\u003dgroup_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FryA%3D","line":583,"updated":"2013-06-25 10:55:02.000000000","message":"seems bug. \n133_folsom.py: line 661 so there is no nullable\u003dFalse there. And by default nullable is True","commit_id":"5412786d18243d233771d990a5f8ef205967b5c7"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"4f29d9163c4ab597ceeef6f1107b258c0c7f6bf0","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \u0027SecurityGroupIngressRule.parent_group_id \u003d\u003d SecurityGroup.id,\u0027"},{"line_number":574,"context_line":"        \u0027SecurityGroupIngressRule.deleted \u003d\u003d 0)\u0027)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    protocol \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":577,"context_line":"    from_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":578,"context_line":"    to_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":579,"context_line":"    cidr \u003d Column(types.CIDR(), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fhyg%3D","line":576,"updated":"2013-06-28 14:02:39.000000000","message":"I noticed different maximum length of \u0027protocol\u0027 field in different models. 5 and 255. Should it be the same?","commit_id":"c197fce20e26df4e6892cd13a0cc5cae341320b4"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"b74664059310bbae934427f69e405947b6cb973d","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \u0027SecurityGroupIngressRule.parent_group_id \u003d\u003d SecurityGroup.id,\u0027"},{"line_number":574,"context_line":"        \u0027SecurityGroupIngressRule.deleted \u003d\u003d 0)\u0027)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    protocol \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":577,"context_line":"    from_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":578,"context_line":"    to_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":579,"context_line":"    cidr \u003d Column(types.CIDR(), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fhts%3D","line":576,"in_reply_to":"AAAAPn%2F%2FhyE%3D","updated":"2013-06-28 14:24:27.000000000","message":"i got you","commit_id":"c197fce20e26df4e6892cd13a0cc5cae341320b4"},{"author":{"_account_id":6507,"name":"Shturm Svetlana","email":"svetlana.v.shturm@gmail.com","username":"sshturm"},"change_message_id":"02df53f0010c4ee5740761934217dbc872ed4d0f","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \u0027SecurityGroupIngressRule.parent_group_id \u003d\u003d SecurityGroup.id,\u0027"},{"line_number":574,"context_line":"        \u0027SecurityGroupIngressRule.deleted \u003d\u003d 0)\u0027)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    protocol \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":577,"context_line":"    from_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":578,"context_line":"    to_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":579,"context_line":"    cidr \u003d Column(types.CIDR(), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FhyE%3D","line":576,"in_reply_to":"AAAAPn%2F%2Fhyg%3D","updated":"2013-06-28 14:04:48.000000000","message":"We sync models and migrations in this patch. All changes in logic and fix bugs will be presented in separated migrations.","commit_id":"c197fce20e26df4e6892cd13a0cc5cae341320b4"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"4f29d9163c4ab597ceeef6f1107b258c0c7f6bf0","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    __tablename__ \u003d \u0027security_group_default_rules\u0027"},{"line_number":594,"context_line":"    __table_args__ \u003d ()"},{"line_number":595,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":596,"context_line":"    protocol \u003d Column(String(5), nullable\u003dTrue)  # \"tcp\", \"udp\" or \"icmp\""},{"line_number":597,"context_line":"    from_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":598,"context_line":"    to_port \u003d Column(Integer, nullable\u003dTrue)"},{"line_number":599,"context_line":"    cidr \u003d Column(types.CIDR(), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FhyY%3D","line":596,"updated":"2013-06-28 14:02:39.000000000","message":"I noticed different maximum length of \u0027protocol\u0027 field in different models. 5 and 255. Should it be the same?","commit_id":"c197fce20e26df4e6892cd13a0cc5cae341320b4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"ad1bdd01273d704deaad3ad09104d46689891bb7","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    def name(self):"},{"line_number":332,"context_line":"        return CONF.volume_name_template % self.id"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    ec2_id \u003d Column(String(255))"},{"line_number":335,"context_line":"    user_id \u003d Column(String(255))"},{"line_number":336,"context_line":"    project_id \u003d Column(String(255))"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fmuc%3D","line":334,"updated":"2013-07-15 22:43:19.000000000","message":"Woah, we were *that* far off?!  How would this have passed tests with an Integer column when the migrations had made it a String column?","commit_id":"704110056b8970770e39263d9231ace4631de307"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"ce966b10648e4cc7e60e50a3f12422d57748d71f","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    def name(self):"},{"line_number":332,"context_line":"        return CONF.volume_name_template % self.id"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    ec2_id \u003d Column(String(255))"},{"line_number":335,"context_line":"    user_id \u003d Column(String(255))"},{"line_number":336,"context_line":"    project_id \u003d Column(String(255))"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FwF8%3D","line":334,"in_reply_to":"AAAAP3%2F%2Fgmc%3D","updated":"2013-07-23 21:48:56.000000000","message":"verified locally that this change is correct ...","commit_id":"704110056b8970770e39263d9231ace4631de307"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"68fe8ad77ab00f11cd02d289c132a780bf0652c1","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    def name(self):"},{"line_number":332,"context_line":"        return CONF.volume_name_template % self.id"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    ec2_id \u003d Column(String(255))"},{"line_number":335,"context_line":"    user_id \u003d Column(String(255))"},{"line_number":336,"context_line":"    project_id \u003d Column(String(255))"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fgmc%3D","line":334,"in_reply_to":"AAAAP3%2F%2Fmuc%3D","updated":"2013-07-17 06:40:56.000000000","message":"Tests are run only against sqlite, ant sqlite don\u0027t care about types. So tests will pass. \n\nBtw we are working around test improvement that will allow us to run unit tests against others backends: \nhttps://review.openstack.org/#/c/33236/","commit_id":"704110056b8970770e39263d9231ace4631de307"}]}
