)]}'
{"octavia/db/migration/alembic_migrations/versions/80dba23a159f_tags_support.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e3eb6cf574ab7ee154146d01e07899d0b6e12c8e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        u\u0027tags\u0027,"},{"line_number":33,"context_line":"        sa.Column(u\u0027resource_id\u0027, sa.String(36), primary_key\u003dTrue,"},{"line_number":34,"context_line":"                  nullable\u003dFalse),"},{"line_number":35,"context_line":"        sa.Column(u\u0027tag\u0027, sa.String(255), primary_key\u003dTrue, nullable\u003dFalse,"},{"line_number":36,"context_line":"                  index\u003dTrue),"},{"line_number":37,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_5ee9227d","line":35,"updated":"2018-10-04 22:03:00.000000000","message":"Are you sure you want two primary_keys on this table? I understand you want them both indexed, but I\u0027m not sure they should both be primary_keys. For example, isn\u0027t it likely that there will be more than one of the same \"tag\". For example \"tag1\" on an LB and on a Listener? Primary_key implies uniqueness.","commit_id":"316411cc67987982f365f9d5bbdbaa2454dfefd2"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"56c48affe5965ec8ab9fa1215c8f952ec5e54c92","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        u\u0027tags\u0027,"},{"line_number":33,"context_line":"        sa.Column(u\u0027resource_id\u0027, sa.String(36), primary_key\u003dTrue,"},{"line_number":34,"context_line":"                  nullable\u003dFalse),"},{"line_number":35,"context_line":"        sa.Column(u\u0027tag\u0027, sa.String(255), primary_key\u003dTrue, nullable\u003dFalse,"},{"line_number":36,"context_line":"                  index\u003dTrue),"},{"line_number":37,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_2af39d0b","line":35,"in_reply_to":"3f79a3b5_5ee9227d","updated":"2018-10-08 02:07:14.000000000","message":"Add two parimary keys here means it\u0027s a primary key constraint. So the case below works well:\nLB_id,       tag1,\nListener_id, tag1,\n\nThis primary key constraint just make sure each line in this table is unique.","commit_id":"316411cc67987982f365f9d5bbdbaa2454dfefd2"}],"octavia/db/models.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d96cd15b68ff0d5fb272dbfad23bcc11251a2257","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        primaryjoin\u003d\u0027and_(foreign(Tags.resource_id)\u003d\u003dMember.id)\u0027"},{"line_number":215,"context_line":"    )"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    @property"},{"line_number":218,"context_line":"    def tags(self):"},{"line_number":219,"context_line":"        if self._tags:"},{"line_number":220,"context_line":"            return [each_tag.tag for each_tag in self._tags]"},{"line_number":221,"context_line":"        return []"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    @tags.setter"},{"line_number":224,"context_line":"    def tags(self, values):"},{"line_number":225,"context_line":"        new_tags \u003d []"},{"line_number":226,"context_line":"        if values:"},{"line_number":227,"context_line":"            for tag in values:"},{"line_number":228,"context_line":"                tag_ref \u003d Tags()"},{"line_number":229,"context_line":"                tag_ref.resource_id \u003d self.id"},{"line_number":230,"context_line":"                tag_ref.tag \u003d tag"},{"line_number":231,"context_line":"                new_tags.append(tag_ref)"},{"line_number":232,"context_line":"        self._tags \u003d new_tags"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"class HealthMonitor(base_models.BASE, base_models.IdMixin,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_2a6e8e64","line":232,"range":{"start_line":217,"start_character":0,"end_line":232,"end_character":29},"updated":"2018-11-27 17:37:07.000000000","message":"These could be moved out to a mixin to not repeat the same lines of code.\nSee the ID mixin for example: https://github.com/openstack/octavia/blob/master/octavia/db/base_models.py#L138","commit_id":"e913cfb9c15372774a22069e292f639aec73f7d1"}],"octavia/db/repositories.py":[{"author":{"_account_id":29621,"name":"Rufei Xu","email":"891872629@qq.com"},"change_message_id":"7da3cdfd359e574453a83871fd05fe9e69cf9793","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        with session.begin(subtransactions\u003dTrue):"},{"line_number":95,"context_line":"            tags \u003d model_kwargs.pop(\u0027tags\u0027, None)"},{"line_number":96,"context_line":"            if tags:"},{"line_number":97,"context_line":"                resource \u003d session.query(self.model_class).get(id)"},{"line_number":98,"context_line":"                resource.tags \u003d tags"},{"line_number":99,"context_line":"            session.query(self.model_class).filter_by("}],"source_content_type":"text/x-python","patch_set":11,"id":"9fdfeff1_395821f8","line":96,"range":{"start_line":96,"start_character":12,"end_line":96,"end_character":20},"updated":"2019-02-02 06:28:48.000000000","message":"if we update a resource\u0027s tags with an empty list, nothing will be done in DB? Or related entries should be deleted in table \"tags\"?","commit_id":"d62189366c9de77afc50bfe5024ce54209cca64c"}]}
