)]}'
{"octavia/common/data_models.py":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"743a95e1b1ce57249c2edc8b8dac937edfbfc41d","unresolved":false,"context_lines":[{"line_number":684,"context_line":"    def __init__(self, id\u003dNone, distributor_driver\u003dNone, topology\u003dNone,"},{"line_number":685,"context_line":"                 provisioning_status\u003dNone, operating_status\u003dNone):"},{"line_number":686,"context_line":"        self.id \u003d id"},{"line_number":687,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":688,"context_line":"        self.topology \u003d topology"},{"line_number":689,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":690,"context_line":"        self.operating_status \u003d operating_status"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_85eed91f","line":687,"updated":"2017-12-19 18:48:45.000000000","message":"are we supporting multiple distributors in the same install? Is this the stevedore name for the driver?","commit_id":"cc3a5d2130bde9410a9e37b889215c51dcb11d9c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"87ae14f5614516953f77d55c8200aa67c6716e90","unresolved":false,"context_lines":[{"line_number":684,"context_line":"    def __init__(self, id\u003dNone, distributor_driver\u003dNone, topology\u003dNone,"},{"line_number":685,"context_line":"                 provisioning_status\u003dNone, operating_status\u003dNone):"},{"line_number":686,"context_line":"        self.id \u003d id"},{"line_number":687,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":688,"context_line":"        self.topology \u003d topology"},{"line_number":689,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":690,"context_line":"        self.operating_status \u003d operating_status"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1ba54947","line":687,"in_reply_to":"df87a7cf_85eed91f","updated":"2017-12-19 21:43:53.000000000","message":"Yes, stevedore driver name. It is already present in the octavia.conf from the previous patch.","commit_id":"cc3a5d2130bde9410a9e37b889215c51dcb11d9c"},{"author":{"_account_id":20279,"name":"Jason Niesz","email":"Jason.Niesz@walmart.com","username":"jniesz"},"change_message_id":"a168f18c0cfe5fa1d269b81a0c9c33417f68f793","unresolved":false,"context_lines":[{"line_number":510,"context_line":"        self.cert_busy \u003d cert_busy"},{"line_number":511,"context_line":"        self.cached_zone \u003d cached_zone"},{"line_number":512,"context_line":"        self.distributor_id \u003d distributor_id"},{"line_number":513,"context_line":"        self.service_type \u003d service_type"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def delete(self):"},{"line_number":516,"context_line":"        for amphora in self.load_balancer.amphorae:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f96bb07_cdc41c94","line":513,"range":{"start_line":513,"start_character":0,"end_line":513,"end_character":40},"updated":"2018-01-16 18:31:31.000000000","message":"Can we make this a 1 to many relationship?  For example, if my amphora is both a distributor and loadbalancer, shouldn\u0027t it have both the \"LOADBALANCER\" and \"DISTRIBUTOR\" service types associated to it?","commit_id":"e548131272aff24f36159b479485c574d61c2c7c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"63e11eee7d6dcacb67e2b865e52450c10b6a31e2","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                 operating_status\u003dNone, config_data\u003dNone):"},{"line_number":760,"context_line":"        self.id \u003d id"},{"line_number":761,"context_line":"        self.name \u003d name"},{"line_number":762,"context_line":"        self.description \u003d description"},{"line_number":763,"context_line":"        self.frontend_subnet \u003d frontend_subnet"},{"line_number":764,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":765,"context_line":"        self.topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_e5a8e720","line":762,"updated":"2019-01-30 15:33:24.000000000","message":"Why would we do this for an internal object that is not exposed to users?","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"5fb39808d682ac866f915f697dad53b5f1294fca","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                 operating_status\u003dNone, config_data\u003dNone):"},{"line_number":760,"context_line":"        self.id \u003d id"},{"line_number":761,"context_line":"        self.name \u003d name"},{"line_number":762,"context_line":"        self.description \u003d description"},{"line_number":763,"context_line":"        self.frontend_subnet \u003d frontend_subnet"},{"line_number":764,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":765,"context_line":"        self.topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_82076818","line":762,"in_reply_to":"9fdfeff1_d5ca159f","updated":"2019-02-01 10:51:25.000000000","message":"Yes, I know you mean. I read the patch: https://review.openstack.org/#/c/527784/23\nIt creates a distributor for per load balancer. But, I mean that these distributors defined by the same configuration. These distributor objects\u0027 fields except `id` are the same. But our operator wants to have distributors with multiple other configurations.\nAnd, reference this: https://docs.openstack.org/octavia/latest/contributor/specs/version0.9/active-active-distributor.html#high-level-topology-description. I think the distributor should be shared.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d1a460d3f0063ed2152400b934215f6a70e51f76","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                 operating_status\u003dNone, config_data\u003dNone):"},{"line_number":760,"context_line":"        self.id \u003d id"},{"line_number":761,"context_line":"        self.name \u003d name"},{"line_number":762,"context_line":"        self.description \u003d description"},{"line_number":763,"context_line":"        self.frontend_subnet \u003d frontend_subnet"},{"line_number":764,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":765,"context_line":"        self.topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_ec9d270a","line":762,"in_reply_to":"9fdfeff1_e5a8e720","updated":"2019-01-31 02:43:26.000000000","message":"I want to expose the object to administrators. The administrator will be able to create the distributor by rest API. The previous patches only support define the distributor by the configuration file, I think this way is not flexible enough. The administrator may wish to create multiple distributors with different configurations.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c27491af36de828543418b502077f48305be83b0","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                 operating_status\u003dNone, config_data\u003dNone):"},{"line_number":760,"context_line":"        self.id \u003d id"},{"line_number":761,"context_line":"        self.name \u003d name"},{"line_number":762,"context_line":"        self.description \u003d description"},{"line_number":763,"context_line":"        self.frontend_subnet \u003d frontend_subnet"},{"line_number":764,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":765,"context_line":"        self.topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_d5ca159f","line":762,"in_reply_to":"9fdfeff1_ec9d270a","updated":"2019-01-31 18:11:26.000000000","message":"Actually, no, the controller will create and manage distributors automatically based on LB creation, just like amphora today.\nThere is not just one distributor, there will be many.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"63e11eee7d6dcacb67e2b865e52450c10b6a31e2","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        self.topology \u003d topology"},{"line_number":766,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":767,"context_line":"        self.operating_status \u003d operating_status"},{"line_number":768,"context_line":"        self.config_data \u003d config_data"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_a5641f23","line":768,"updated":"2019-01-30 15:33:24.000000000","message":"What is this for? This is not in the approved specification.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c27491af36de828543418b502077f48305be83b0","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        self.topology \u003d topology"},{"line_number":766,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":767,"context_line":"        self.operating_status \u003d operating_status"},{"line_number":768,"context_line":"        self.config_data \u003d config_data"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_95c80da6","line":768,"in_reply_to":"9fdfeff1_6c9137f1","updated":"2019-01-31 18:11:26.000000000","message":"Ok, yeah, we can\u0027t do this. We don\u0027t do open ended content fields. It\u0027s too prone to error and can\u0027t be tested well.\nWe need to do this in a better way.\nThat information is already called out in the spec and how we would store it.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"5fb39808d682ac866f915f697dad53b5f1294fca","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        self.topology \u003d topology"},{"line_number":766,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":767,"context_line":"        self.operating_status \u003d operating_status"},{"line_number":768,"context_line":"        self.config_data \u003d config_data"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_2271dc44","line":768,"in_reply_to":"9fdfeff1_95c80da6","updated":"2019-02-01 10:51:25.000000000","message":"Yes, if the distributor automatically creates by Controller, we can store these by `distributor_l3_bgp_speaker` mentioned in this specification: https://docs.openstack.org/octavia/latest/contributor/specs/version1.1/active-active-l3-distributor.html.\nThe purpose of adding this field is to enable administrators to create distributors with different configurations.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d1a460d3f0063ed2152400b934215f6a70e51f76","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        self.topology \u003d topology"},{"line_number":766,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":767,"context_line":"        self.operating_status \u003d operating_status"},{"line_number":768,"context_line":"        self.config_data \u003d config_data"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_6c9137f1","line":768,"in_reply_to":"9fdfeff1_a5641f23","updated":"2019-01-31 02:43:26.000000000","message":"This option is used to store the configuration information for the different type of distributor. For l3 distributor, It will store ` bgp peer ip`, `bgp peer router id`, `bgp peer password` etc. If we implement other type distributors in the future, the option will store other configuration information.","commit_id":"a6f0792e6dd67a0179fd3537ce6c96165d5f124d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c27491af36de828543418b502077f48305be83b0","unresolved":false,"context_lines":[{"line_number":762,"context_line":"        self.description \u003d description"},{"line_number":763,"context_line":"        self.frontend_subnet \u003d frontend_subnet"},{"line_number":764,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":765,"context_line":"        self.enabled \u003d enabled"},{"line_number":766,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":767,"context_line":"        self.operating_status \u003d operating_status"},{"line_number":768,"context_line":"        self.config_data \u003d config_data"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_6543976d","line":765,"updated":"2019-01-31 18:11:26.000000000","message":"Why?","commit_id":"0d395b02858f6e142c6bff7aaf62ca2c60ea8574"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"5fb39808d682ac866f915f697dad53b5f1294fca","unresolved":false,"context_lines":[{"line_number":762,"context_line":"        self.description \u003d description"},{"line_number":763,"context_line":"        self.frontend_subnet \u003d frontend_subnet"},{"line_number":764,"context_line":"        self.distributor_driver \u003d distributor_driver"},{"line_number":765,"context_line":"        self.enabled \u003d enabled"},{"line_number":766,"context_line":"        self.provisioning_status \u003d provisioning_status"},{"line_number":767,"context_line":"        self.operating_status \u003d operating_status"},{"line_number":768,"context_line":"        self.config_data \u003d config_data"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_0275b8f9","line":765,"in_reply_to":"9fdfeff1_6543976d","updated":"2019-02-01 10:51:25.000000000","message":"It also for facilitating administrators to manage the distributor. If the distributor managed by Octavia Controller, the option is unnecessary.","commit_id":"0d395b02858f6e142c6bff7aaf62ca2c60ea8574"}],"octavia/db/migration/alembic_migrations/versions/d5cf3da30ed8_distributor_data_model.py":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"743a95e1b1ce57249c2edc8b8dac937edfbfc41d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    op.create_table("},{"line_number":33,"context_line":"        u\u0027distributor\u0027,"},{"line_number":34,"context_line":"        sa.Column(u\u0027id\u0027, sa.String(36), primary_key\u003dTrue),"},{"line_number":35,"context_line":"        sa.Column(u\u0027distributor_driver\u0027, sa.String(36), nullable\u003dFalse),"},{"line_number":36,"context_line":"        sa.Column(u\u0027topology\u0027, sa.String(36), nullable\u003dTrue),"},{"line_number":37,"context_line":"        sa.Column(u\u0027provisioning_status\u0027, sa.String(16), nullable\u003dFalse),"},{"line_number":38,"context_line":"        sa.Column(u\u0027operating_status\u0027, sa.String(16), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_45f451f1","line":35,"updated":"2017-12-19 18:48:45.000000000","message":"not sure if 36 is enough if we would choose stevedore","commit_id":"cc3a5d2130bde9410a9e37b889215c51dcb11d9c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"87ae14f5614516953f77d55c8200aa67c6716e90","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    op.create_table("},{"line_number":33,"context_line":"        u\u0027distributor\u0027,"},{"line_number":34,"context_line":"        sa.Column(u\u0027id\u0027, sa.String(36), primary_key\u003dTrue),"},{"line_number":35,"context_line":"        sa.Column(u\u0027distributor_driver\u0027, sa.String(36), nullable\u003dFalse),"},{"line_number":36,"context_line":"        sa.Column(u\u0027topology\u0027, sa.String(36), nullable\u003dTrue),"},{"line_number":37,"context_line":"        sa.Column(u\u0027provisioning_status\u0027, sa.String(16), nullable\u003dFalse),"},{"line_number":38,"context_line":"        sa.Column(u\u0027operating_status\u0027, sa.String(16), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_db512138","line":35,"in_reply_to":"df87a7cf_45f451f1","updated":"2017-12-19 21:43:53.000000000","message":"Yeah, I went back and forth on this.  It aligns to the current driver name columns, but I can bump it to 64","commit_id":"cc3a5d2130bde9410a9e37b889215c51dcb11d9c"},{"author":{"_account_id":20279,"name":"Jason Niesz","email":"Jason.Niesz@walmart.com","username":"jniesz"},"change_message_id":"a168f18c0cfe5fa1d269b81a0c9c33417f68f793","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        sa.Column(u\u0027description\u0027, sa.String(255), nullable\u003dTrue)"},{"line_number":57,"context_line":"    )"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    service_type_table \u003d sa.sql.table("},{"line_number":60,"context_line":"        u\u0027amphora_service_type\u0027,"},{"line_number":61,"context_line":"        sa.sql.column(u\u0027name\u0027, sa.String),"},{"line_number":62,"context_line":"        sa.sql.column(u\u0027description\u0027, sa.String)"},{"line_number":63,"context_line":"    )"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    op.bulk_insert("},{"line_number":66,"context_line":"        service_type_table,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f96bb07_ed0c78ed","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":5},"updated":"2018-01-16 18:31:31.000000000","message":"One to many?","commit_id":"e548131272aff24f36159b479485c574d61c2c7c"},{"author":{"_account_id":20279,"name":"Jason Niesz","email":"Jason.Niesz@walmart.com","username":"jniesz"},"change_message_id":"a168f18c0cfe5fa1d269b81a0c9c33417f68f793","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    op.create_foreign_key(u\u0027fk_amphora_distributor_id\u0027, u\u0027amphora\u0027,"},{"line_number":78,"context_line":"                          u\u0027distributor\u0027, [u\u0027distributor_id\u0027], [u\u0027id\u0027])"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    op.add_column("},{"line_number":81,"context_line":"        u\u0027amphora\u0027,"},{"line_number":82,"context_line":"        sa.Column(u\u0027service_type\u0027, sa.String(36), nullable\u003dTrue))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    op.create_foreign_key(u\u0027fk_amphora_service_type\u0027, u\u0027amphora\u0027,"},{"line_number":85,"context_line":"                          u\u0027amphora_service_type\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f96bb07_4d356c8e","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":65},"updated":"2018-01-16 18:31:31.000000000","message":"Support one to many?","commit_id":"e548131272aff24f36159b479485c574d61c2c7c"}],"octavia/db/models.py":[{"author":{"_account_id":20279,"name":"Jason Niesz","email":"Jason.Niesz@walmart.com","username":"jniesz"},"change_message_id":"a168f18c0cfe5fa1d269b81a0c9c33417f68f793","unresolved":false,"context_lines":[{"line_number":530,"context_line":"    vrrp_id \u003d sa.Column(sa.Integer(), nullable\u003dTrue)"},{"line_number":531,"context_line":"    vrrp_priority \u003d sa.Column(sa.Integer(), nullable\u003dTrue)"},{"line_number":532,"context_line":"    cached_zone \u003d sa.Column(sa.String(255), nullable\u003dTrue)"},{"line_number":533,"context_line":"    service_type \u003d sa.Column(sa.String(36),"},{"line_number":534,"context_line":"                             sa.ForeignKey(\"amphora_service_type.name\","},{"line_number":535,"context_line":"                                           name\u003d\"fk_amphora_service_type\"),"},{"line_number":536,"context_line":"                             nullable\u003dTrue)"},{"line_number":537,"context_line":"    distributor_id \u003d sa.Column("},{"line_number":538,"context_line":"        sa.String(36), sa.ForeignKey(\"distributor.id\","},{"line_number":539,"context_line":"                                     name\u003d\"fk_amphora_distributor_id\"),"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f96bb07_4d67acbe","line":536,"range":{"start_line":533,"start_character":0,"end_line":536,"end_character":43},"updated":"2018-01-16 18:31:31.000000000","message":"One to many relationship?","commit_id":"e548131272aff24f36159b479485c574d61c2c7c"}],"octavia/tests/functional/db/test_models.py":[{"author":{"_account_id":20279,"name":"Jason Niesz","email":"Jason.Niesz@walmart.com","username":"jniesz"},"change_message_id":"a168f18c0cfe5fa1d269b81a0c9c33417f68f793","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                  \u0027cert_expiration\u0027: datetime.datetime.utcnow(),"},{"line_number":144,"context_line":"                  \u0027cert_busy\u0027: False,"},{"line_number":145,"context_line":"                  \u0027cached_zone\u0027: self.FAKE_AZ,"},{"line_number":146,"context_line":"                  \u0027service_type\u0027: constants.AMPHORA_TYPE_LOADBALANCER}"},{"line_number":147,"context_line":"        kwargs.update(overrides)"},{"line_number":148,"context_line":"        return self._insert(session, models.Amphora, kwargs)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7f96bb07_cde5fc0a","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":70},"updated":"2018-01-16 18:31:31.000000000","message":"Support multiple types for single amp?","commit_id":"e548131272aff24f36159b479485c574d61c2c7c"}]}
