)]}'
{"octavia/amphorae/drivers/keepalived/vrrp_rest_driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"            self._populate_amphora_api_version(amp)"},{"line_number":50,"context_line":"            # Get the VIP subnet prefix for the amphora"},{"line_number":51,"context_line":"            if dict_config:"},{"line_number":52,"context_line":"                vip_cidr \u003d amphorae_network_config[amp.id]["},{"line_number":53,"context_line":"                    \u0027vip_subnet\u0027][\u0027cidr\u0027]"},{"line_number":54,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_0260fbce","line":51,"updated":"2019-12-02 18:08:45.000000000","message":"So, we COULD do this a more pythonic way here I think, and not need to pass this at all -- it could just be a try/except, where we try one way, and fallback to the other. OR, we could just use the Munch library and not care whether it\u0027s a dict or not. :D\nEither way, I think explicitly passing this is probably not necessary and we should avoid that.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"            self._populate_amphora_api_version(amp)"},{"line_number":50,"context_line":"            # Get the VIP subnet prefix for the amphora"},{"line_number":51,"context_line":"            if dict_config:"},{"line_number":52,"context_line":"                vip_cidr \u003d amphorae_network_config[amp.id]["},{"line_number":53,"context_line":"                    \u0027vip_subnet\u0027][\u0027cidr\u0027]"},{"line_number":54,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_842dd446","line":51,"in_reply_to":"3fa7e38b_0260fbce","updated":"2019-12-03 00:42:14.000000000","message":"Yeah, for this case, will use try/except.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"}],"octavia/common/constants.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f4cd8d88d980debbf97860ead07a13422bc3fdf7","unresolved":false,"context_lines":[{"line_number":395,"context_line":"VRRP_ID \u003d \u0027vrrp_id\u0027"},{"line_number":396,"context_line":"VRRP_IP \u003d \u0027vrrp_ip\u0027"},{"line_number":397,"context_line":"VRRP_GROUP \u003d \u0027vrrp_group\u0027"},{"line_number":398,"context_line":"VRRP_PRIORITY \u003d \u0027vrrp_priority\u0027"},{"line_number":399,"context_line":"VRRP_PORT \u003d \u0027vrrp_port\u0027"},{"line_number":400,"context_line":"VRRP_PORT_ID \u003d \u0027vrrp_port_id\u0027"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"3fa7e38b_37bc3bda","line":398,"updated":"2019-12-04 02:53:41.000000000","message":"nit: should be below VRRP_PORT_ID to be alphabetical","commit_id":"f2c2f73d0572d5e6fd732a9082aed9337062a789"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"3a55405f8fd61b5a67fb88ee10600af6dac8350c","unresolved":false,"context_lines":[{"line_number":395,"context_line":"VRRP_ID \u003d \u0027vrrp_id\u0027"},{"line_number":396,"context_line":"VRRP_IP \u003d \u0027vrrp_ip\u0027"},{"line_number":397,"context_line":"VRRP_GROUP \u003d \u0027vrrp_group\u0027"},{"line_number":398,"context_line":"VRRP_PRIORITY \u003d \u0027vrrp_priority\u0027"},{"line_number":399,"context_line":"VRRP_PORT \u003d \u0027vrrp_port\u0027"},{"line_number":400,"context_line":"VRRP_PORT_ID \u003d \u0027vrrp_port_id\u0027"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"3fa7e38b_c2e635e8","line":398,"in_reply_to":"3fa7e38b_37bc3bda","updated":"2019-12-05 00:57:40.000000000","message":"Done","commit_id":"f2c2f73d0572d5e6fd732a9082aed9337062a789"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"87ed3ac324a101b7d238fa989fdbb8a2398d65fc","unresolved":false,"context_lines":[{"line_number":313,"context_line":"DEFAULT_TLS_CONTAINER_DATA \u003d \u0027default_tls_container_data\u0027"},{"line_number":314,"context_line":"DELTA \u003d \u0027delta\u0027"},{"line_number":315,"context_line":"DELTAS \u003d \u0027deltas\u0027"},{"line_number":316,"context_line":"DELETE_NICS \u003d \u0027delete_nics\u0027"},{"line_number":317,"context_line":"DESCRIPTION \u003d \u0027description\u0027"},{"line_number":318,"context_line":"ENABLED \u003d \u0027enabled\u0027"},{"line_number":319,"context_line":"FAILED_AMPHORA \u003d \u0027failed_amphora\u0027"}],"source_content_type":"text/x-python","patch_set":45,"id":"3fa7e38b_ac9667ee","line":316,"updated":"2020-01-06 20:13:53.000000000","message":"nit: not alphabetical","commit_id":"5cd11131ac55739219f8b490224f26a2b8cfa668"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2aa415e8d820b7dfe4754dd455c879a2ad6e016a","unresolved":false,"context_lines":[{"line_number":321,"context_line":"DEFAULT_TLS_CONTAINER_DATA \u003d \u0027default_tls_container_data\u0027"},{"line_number":322,"context_line":"DELTA \u003d \u0027delta\u0027"},{"line_number":323,"context_line":"DELTAS \u003d \u0027deltas\u0027"},{"line_number":324,"context_line":"DELETE_NICS \u003d \u0027delete_nics\u0027"},{"line_number":325,"context_line":"DESCRIPTION \u003d \u0027description\u0027"},{"line_number":326,"context_line":"ENABLED \u003d \u0027enabled\u0027"},{"line_number":327,"context_line":"FAILED_AMPHORA \u003d \u0027failed_amphora\u0027"}],"source_content_type":"text/x-python","patch_set":46,"id":"3fa7e38b_4f6765eb","line":324,"updated":"2020-01-09 13:37:02.000000000","message":"just re-adding my alphabetical nit, but don\u0027t respin for it","commit_id":"5518950171ae218991a6e21917cedb6a53041b94"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d458b878db2f00189bb8fdb4dc2f497677b2c63a","unresolved":false,"context_lines":[{"line_number":321,"context_line":"DEFAULT_TLS_CONTAINER_DATA \u003d \u0027default_tls_container_data\u0027"},{"line_number":322,"context_line":"DELTA \u003d \u0027delta\u0027"},{"line_number":323,"context_line":"DELTAS \u003d \u0027deltas\u0027"},{"line_number":324,"context_line":"DELETE_NICS \u003d \u0027delete_nics\u0027"},{"line_number":325,"context_line":"DESCRIPTION \u003d \u0027description\u0027"},{"line_number":326,"context_line":"ENABLED \u003d \u0027enabled\u0027"},{"line_number":327,"context_line":"FAILED_AMPHORA \u003d \u0027failed_amphora\u0027"}],"source_content_type":"text/x-python","patch_set":46,"id":"3fa7e38b_45c6f39e","line":324,"in_reply_to":"3fa7e38b_4f6765eb","updated":"2020-01-17 08:18:42.000000000","message":"Done","commit_id":"5518950171ae218991a6e21917cedb6a53041b94"}],"octavia/controller/queue/v2/endpoints.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"88283ff04ac262239a9afc202eacfba9dbddec42","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        LOG.info(\u0027Deleting l7rule \\\u0027%s\\\u0027...\u0027, l7rule_id)"},{"line_number":147,"context_line":"        self.worker.delete_l7rule(l7rule_id)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def update_amphora_agent_config(self, context, amphora):"},{"line_number":150,"context_line":"        LOG.info(\u0027Updating amphora \\\u0027%s\\\u0027 agent configuration...\u0027,"},{"line_number":151,"context_line":"                 amphora.get(\u0027id\u0027))"},{"line_number":152,"context_line":"        self.worker.update_amphora_agent_config(amphora)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_ff5a154e","line":151,"range":{"start_line":149,"start_character":4,"end_line":151,"end_character":35},"updated":"2019-07-09 17:27:27.000000000","message":"Should this be changed or not?","commit_id":"9107c7f7f7aa958b7a646f647d78e1b5e8e9dafa"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"622851053d2cde4f68fa623c588c58b958ac1512","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        LOG.info(\u0027Deleting l7rule \\\u0027%s\\\u0027...\u0027, l7rule_id)"},{"line_number":147,"context_line":"        self.worker.delete_l7rule(l7rule_id)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def update_amphora_agent_config(self, context, amphora):"},{"line_number":150,"context_line":"        LOG.info(\u0027Updating amphora \\\u0027%s\\\u0027 agent configuration...\u0027,"},{"line_number":151,"context_line":"                 amphora.get(\u0027id\u0027))"},{"line_number":152,"context_line":"        self.worker.update_amphora_agent_config(amphora)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_62ff6801","line":151,"range":{"start_line":149,"start_character":4,"end_line":151,"end_character":35},"in_reply_to":"7faddb67_ff5a154e","updated":"2019-07-09 17:31:52.000000000","message":"No, I don\u0027t think anything in the endpoints file needs to be changed. This is used for the oslo messaging between the API process and the worker. So, no taskflow here. We would un-wrap or change this to dicts in the controller_worker.py file that this calls on line 152.","commit_id":"9107c7f7f7aa958b7a646f647d78e1b5e8e9dafa"}],"octavia/controller/worker/v1/tasks/network_tasks.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        del_ids \u003d set(actual_network_nics) - desired_network_ids"},{"line_number":73,"context_line":"        delete_nics \u003d list("},{"line_number":74,"context_line":"            actual_network_nics[net_id] for net_id in del_ids)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        add_ids \u003d desired_network_ids - set(actual_network_nics)"},{"line_number":77,"context_line":"        add_nics \u003d list(n_data_models.Interface("},{"line_number":78,"context_line":"            network_id\u003dnet_id) for net_id in add_ids)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_e2835f54","side":"PARENT","line":75,"updated":"2019-12-02 18:08:45.000000000","message":"We could revert this whitespace change and remove this file from the change-list, would help with conflicts maybe","commit_id":"1853d4a83ccb2e92e91526ce7574dcf0b79c981e"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        del_ids \u003d set(actual_network_nics) - desired_network_ids"},{"line_number":73,"context_line":"        delete_nics \u003d list("},{"line_number":74,"context_line":"            actual_network_nics[net_id] for net_id in del_ids)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        add_ids \u003d desired_network_ids - set(actual_network_nics)"},{"line_number":77,"context_line":"        add_nics \u003d list(n_data_models.Interface("},{"line_number":78,"context_line":"            network_id\u003dnet_id) for net_id in add_ids)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_0419e421","side":"PARENT","line":75,"in_reply_to":"3fa7e38b_e2835f54","updated":"2019-12-03 00:42:14.000000000","message":"Done","commit_id":"1853d4a83ccb2e92e91526ce7574dcf0b79c981e"}],"octavia/controller/worker/v2/controller_worker.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6838d26143b25bf3dc20e70bea1eba7dd5b0d2e1","unresolved":false,"context_lines":[{"line_number":951,"context_line":""},{"line_number":952,"context_line":"        update_amphora_tf \u003d self._taskflow_load("},{"line_number":953,"context_line":"            self._amphora_flows.update_amphora_config_flow(),"},{"line_number":954,"context_line":"            store\u003d{constants.AMPHORA: amphora,"},{"line_number":955,"context_line":"                   constants.FLAVOR: flavor})"},{"line_number":956,"context_line":""},{"line_number":957,"context_line":"        with tf_logging.DynamicLoggingListener(update_amphora_tf,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_42258caa","line":954,"updated":"2019-07-09 17:33:16.000000000","message":"This probably needs to change from an object.","commit_id":"9107c7f7f7aa958b7a646f647d78e1b5e8e9dafa"}],"octavia/controller/worker/v2/flows/amphora_flows.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                                provides\u003dconstants.AMPHORA_ID))"},{"line_number":42,"context_line":"        create_amphora_flow.add(lifecycle_tasks.AmphoraIDToErrorOnRevertTask("},{"line_number":43,"context_line":"            requires\u003dconstants.AMPHORA_ID))"},{"line_number":44,"context_line":"        if (CONF.controller_worker.amphora_driver \u003d\u003d"},{"line_number":45,"context_line":"                \u0027amphora_haproxy_rest_driver\u0027):"},{"line_number":46,"context_line":"            create_amphora_flow.add(cert_task.GenerateServerPEMTask("},{"line_number":47,"context_line":"                                    provides\u003dconstants.SERVER_PEM))"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_4294b38c","line":44,"updated":"2019-12-02 18:08:45.000000000","message":"Why did this need to be moved out?","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                                provides\u003dconstants.AMPHORA_ID))"},{"line_number":42,"context_line":"        create_amphora_flow.add(lifecycle_tasks.AmphoraIDToErrorOnRevertTask("},{"line_number":43,"context_line":"            requires\u003dconstants.AMPHORA_ID))"},{"line_number":44,"context_line":"        if (CONF.controller_worker.amphora_driver \u003d\u003d"},{"line_number":45,"context_line":"                \u0027amphora_haproxy_rest_driver\u0027):"},{"line_number":46,"context_line":"            create_amphora_flow.add(cert_task.GenerateServerPEMTask("},{"line_number":47,"context_line":"                                    provides\u003dconstants.SERVER_PEM))"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_a4c5705e","line":44,"in_reply_to":"3fa7e38b_4294b38c","updated":"2019-12-03 00:42:14.000000000","message":"Jobboard flows requires flows to be importable functions - this is done as part of main change https://review.opendev.org/#/c/647406/ - and for that case - having this set in init does not really work, have to put this directly to function.\nI do this change here are this relates to amphora flows refacor, not in the main change.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"07eea0e6c641a16d00500ed05095fc764ce74e43","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            provides\u003dconstants.AMPHORA))"},{"line_number":199,"context_line":"        retry_task \u003d sf_name + \u0027-\u0027 + constants.AMP_COMPUTE_CONNECTIVITY_WAIT"},{"line_number":200,"context_line":"        retry_subflow \u003d linear_flow.Flow("},{"line_number":201,"context_line":"            sf_name + \u0027 \u0027 + constants.CREATE_AMPHORA_RETRY_SUBFLOW,"},{"line_number":202,"context_line":"            retry\u003damphora_driver_tasks.AmpRetry())"},{"line_number":203,"context_line":"        retry_subflow.add("},{"line_number":204,"context_line":"            amphora_driver_tasks.AmphoraComputeConnectivityWait("}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_63112a53","line":201,"range":{"start_line":201,"start_character":23,"end_line":201,"end_character":24},"updated":"2019-12-11 16:22:04.000000000","message":"normally we use a hyphen? this is weird","commit_id":"c6fbfdd58b12f31040408c2473d68a6ff4a813d3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"3680eac8d891441cae3c56e380a238e9d1483fe4","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            provides\u003dconstants.AMPHORA))"},{"line_number":199,"context_line":"        retry_task \u003d sf_name + \u0027-\u0027 + constants.AMP_COMPUTE_CONNECTIVITY_WAIT"},{"line_number":200,"context_line":"        retry_subflow \u003d linear_flow.Flow("},{"line_number":201,"context_line":"            sf_name + \u0027 \u0027 + constants.CREATE_AMPHORA_RETRY_SUBFLOW,"},{"line_number":202,"context_line":"            retry\u003damphora_driver_tasks.AmpRetry())"},{"line_number":203,"context_line":"        retry_subflow.add("},{"line_number":204,"context_line":"            amphora_driver_tasks.AmphoraComputeConnectivityWait("}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_1a30d09d","line":201,"range":{"start_line":201,"start_character":23,"end_line":201,"end_character":24},"in_reply_to":"3fa7e38b_63112a53","updated":"2019-12-12 02:42:31.000000000","message":"Opps, yes it should be hyphen.","commit_id":"c6fbfdd58b12f31040408c2473d68a6ff4a813d3"}],"octavia/controller/worker/v2/tasks/amphora_driver_tasks.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # in a failover flow with both amps failing. Skip it and let"},{"line_number":80,"context_line":"        # health manager fix it."},{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            db_amphorae \u003d []"},{"line_number":83,"context_line":"            for amp in amphorae:"},{"line_number":84,"context_line":"                db_amp \u003d self.amphora_repo.get(db_apis.get_session(),"},{"line_number":85,"context_line":"                                               id\u003damp[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_82ef0b1c","line":82,"updated":"2019-12-02 18:08:45.000000000","message":"So all of these have switched to using DB data rather than the data passed here -- is that so it\u0027ll always have the most up-to-date info, in case stuff happens between retries?","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # in a failover flow with both amps failing. Skip it and let"},{"line_number":80,"context_line":"        # health manager fix it."},{"line_number":81,"context_line":"        try:"},{"line_number":82,"context_line":"            db_amphorae \u003d []"},{"line_number":83,"context_line":"            for amp in amphorae:"},{"line_number":84,"context_line":"                db_amp \u003d self.amphora_repo.get(db_apis.get_session(),"},{"line_number":85,"context_line":"                                               id\u003damp[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_44983c68","line":82,"in_reply_to":"3fa7e38b_82ef0b1c","updated":"2019-12-03 00:42:14.000000000","message":"Switching to DB data needed for case of restarts/stops of octavia worker, so that another worker(or the same worker) can get info where flow execution stopped and continue the flow.\nIn persistence database only dict object can be written, but driver method expect to work with db object, so we get it here by ID and pass to the driver.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"}],"octavia/controller/worker/v2/tasks/cert_task.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # storing in db requires conversion bytes to string"},{"line_number":52,"context_line":"        # (required for python3)"},{"line_number":53,"context_line":"        return fer.encrypt(cert.certificate + cert.private_key).decode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_62d44f4c","line":53,"updated":"2019-12-02 18:08:45.000000000","message":"Wasn\u0027t this just added in a patch in this chain? Should this just be fixed there? Not that it\u0027s a huge deal I guess...","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"52287f2d05a20d4e9686bdb1d11312c27f53a6ed","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # storing in db requires conversion bytes to string"},{"line_number":52,"context_line":"        # (required for python3)"},{"line_number":53,"context_line":"        return fer.encrypt(cert.certificate + cert.private_key).decode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_c7b66e26","line":53,"in_reply_to":"3fa7e38b_04c8044b","updated":"2019-12-03 01:27:21.000000000","message":"No, this is fine. It\u0027s all going to merge in a big group anyway. Don\u0027t worry about it.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # storing in db requires conversion bytes to string"},{"line_number":52,"context_line":"        # (required for python3)"},{"line_number":53,"context_line":"        return fer.encrypt(cert.certificate + cert.private_key).decode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_04c8044b","line":53,"in_reply_to":"3fa7e38b_62d44f4c","updated":"2019-12-03 00:42:14.000000000","message":"So, basically all changes in these series - some refactor required for main Jobboard based controller change to work and I tried to move out of the main change as much as possible.\nFrom my perspective this part of amphora flow/tasks refactor, but I can move this to the main change.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"}],"octavia/controller/worker/v2/tasks/database_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f849c8004a2ff1c779f5234d9067a757e4e24d47","unresolved":false,"context_lines":[{"line_number":1622,"context_line":"        \"\"\"Retrieve amphora network details."},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"        :param amphora: Amphora which network details are required"},{"line_number":1625,"context_line":"        :returns: data_models.Amphora object"},{"line_number":1626,"context_line":"        \"\"\""},{"line_number":1627,"context_line":"        return amphora"},{"line_number":1628,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_0ec8c852","line":1625,"range":{"start_line":1625,"start_character":18,"end_line":1625,"end_character":44},"updated":"2019-10-29 18:00:12.000000000","message":"s/Amphora","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9c8cdf98404f5b0ed6e0cfbc576d97230148ae4c","unresolved":false,"context_lines":[{"line_number":1622,"context_line":"        \"\"\"Retrieve amphora network details."},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"        :param amphora: Amphora which network details are required"},{"line_number":1625,"context_line":"        :returns: data_models.Amphora object"},{"line_number":1626,"context_line":"        \"\"\""},{"line_number":1627,"context_line":"        return amphora"},{"line_number":1628,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_57007301","line":1625,"range":{"start_line":1625,"start_character":18,"end_line":1625,"end_character":44},"in_reply_to":"3fa7e38b_0ec8c852","updated":"2019-10-31 12:01:45.000000000","message":"Done","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":681,"context_line":"                                 amphora.get(\u0027id\u0027),"},{"line_number":682,"context_line":"                                 status\u003dconstants.AMPHORA_ALLOCATED,"},{"line_number":683,"context_line":"                                 compute_id\u003damphora[constants.COMPUTE_ID],"},{"line_number":684,"context_line":"                                 lb_network_ip\u003damphora[\u0027lb_network_ip\u0027],"},{"line_number":685,"context_line":"                                 load_balancer_id\u003dloadbalancer_id)"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def revert(self, result, amphora, loadbalancer_id, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_e2d11f58","line":684,"range":{"start_line":684,"start_character":55,"end_line":684,"end_character":70},"updated":"2019-12-02 18:08:45.000000000","message":"I\u0027m sad we don\u0027t have a constant for this, lol","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":681,"context_line":"                                 amphora.get(\u0027id\u0027),"},{"line_number":682,"context_line":"                                 status\u003dconstants.AMPHORA_ALLOCATED,"},{"line_number":683,"context_line":"                                 compute_id\u003damphora[constants.COMPUTE_ID],"},{"line_number":684,"context_line":"                                 lb_network_ip\u003damphora[\u0027lb_network_ip\u0027],"},{"line_number":685,"context_line":"                                 load_balancer_id\u003dloadbalancer_id)"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def revert(self, result, amphora, loadbalancer_id, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_44827cc9","line":684,"range":{"start_line":684,"start_character":55,"end_line":684,"end_character":70},"in_reply_to":"3fa7e38b_e2d11f58","updated":"2019-12-03 00:42:14.000000000","message":"I will add this and the others.","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":928,"context_line":"            lb_network_ip\u003dcompute_obj[\u0027lb_network_ip\u0027],"},{"line_number":929,"context_line":"            cached_zone\u003dcompute_obj[\u0027cached_zone\u0027],"},{"line_number":930,"context_line":"            image_id\u003dcompute_obj[\u0027image_id\u0027],"},{"line_number":931,"context_line":"            compute_flavor\u003dcompute_obj[\u0027compute_flavor\u0027])"},{"line_number":932,"context_line":"        return self.amphora_repo.get(db_apis.get_session(),"},{"line_number":933,"context_line":"                                     id\u003damphora_id).to_dict()"},{"line_number":934,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_82c86ba8","line":931,"range":{"start_line":931,"start_character":39,"end_line":931,"end_character":55},"updated":"2019-12-02 18:08:45.000000000","message":"constant!\nI\u0027m sad we don\u0027t have constants for the others somehow? but we do for this!","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"}],"octavia/controller/worker/v2/tasks/network_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f849c8004a2ff1c779f5234d9067a757e4e24d47","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # add nics"},{"line_number":157,"context_line":"        for nic in delta[\u0027add_nics\u0027]:"},{"line_number":158,"context_line":"            self.network_driver.plug_network(amphora[\u0027compute_id\u0027],"},{"line_number":159,"context_line":"                                             nic[\u0027network_id\u0027])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def revert(self, amphora, delta, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_4e000067","line":158,"range":{"start_line":158,"start_character":53,"end_line":158,"end_character":65},"updated":"2019-10-29 18:00:12.000000000","message":"s/constants.COMPUTE_ID","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9c8cdf98404f5b0ed6e0cfbc576d97230148ae4c","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # add nics"},{"line_number":157,"context_line":"        for nic in delta[\u0027add_nics\u0027]:"},{"line_number":158,"context_line":"            self.network_driver.plug_network(amphora[\u0027compute_id\u0027],"},{"line_number":159,"context_line":"                                             nic[\u0027network_id\u0027])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def revert(self, amphora, delta, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_bcd18efd","line":158,"range":{"start_line":158,"start_character":53,"end_line":158,"end_character":65},"in_reply_to":"3fa7e38b_4e000067","updated":"2019-10-31 12:01:45.000000000","message":"Done","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f849c8004a2ff1c779f5234d9067a757e4e24d47","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        for nic in delta[\u0027add_nics\u0027]:"},{"line_number":169,"context_line":"            try:"},{"line_number":170,"context_line":"                self.network_driver.unplug_network(amphora[\u0027compute_id\u0027],"},{"line_number":171,"context_line":"                                                   nic[\u0027network_id\u0027])"},{"line_number":172,"context_line":"            except base.NetworkNotFound:"},{"line_number":173,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_eef8cc7c","line":170,"range":{"start_line":170,"start_character":59,"end_line":170,"end_character":71},"updated":"2019-10-29 18:00:12.000000000","message":"s/constants.COMPUTE_ID","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9c8cdf98404f5b0ed6e0cfbc576d97230148ae4c","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        for nic in delta[\u0027add_nics\u0027]:"},{"line_number":169,"context_line":"            try:"},{"line_number":170,"context_line":"                self.network_driver.unplug_network(amphora[\u0027compute_id\u0027],"},{"line_number":171,"context_line":"                                                   nic[\u0027network_id\u0027])"},{"line_number":172,"context_line":"            except base.NetworkNotFound:"},{"line_number":173,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_fc0aa676","line":170,"range":{"start_line":170,"start_character":59,"end_line":170,"end_character":71},"in_reply_to":"3fa7e38b_eef8cc7c","updated":"2019-10-31 12:01:45.000000000","message":"Done","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f849c8004a2ff1c779f5234d9067a757e4e24d47","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        for nic in delta[\u0027delete_nics\u0027]:"},{"line_number":192,"context_line":"            try:"},{"line_number":193,"context_line":"                self.network_driver.unplug_network(amphora[\u0027compute_id\u0027],"},{"line_number":194,"context_line":"                                                   nic[\u0027network_id\u0027])"},{"line_number":195,"context_line":"            except base.NetworkNotFound:"},{"line_number":196,"context_line":"                LOG.debug(\"Network %d not found\", nic[\u0027network_id\u0027])"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_ae43b4af","line":193,"range":{"start_line":193,"start_character":59,"end_line":193,"end_character":71},"updated":"2019-10-29 18:00:12.000000000","message":"s/constants.COMPUTE_ID\n\nthere are other occurrences below as well","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9c8cdf98404f5b0ed6e0cfbc576d97230148ae4c","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        for nic in delta[\u0027delete_nics\u0027]:"},{"line_number":192,"context_line":"            try:"},{"line_number":193,"context_line":"                self.network_driver.unplug_network(amphora[\u0027compute_id\u0027],"},{"line_number":194,"context_line":"                                                   nic[\u0027network_id\u0027])"},{"line_number":195,"context_line":"            except base.NetworkNotFound:"},{"line_number":196,"context_line":"                LOG.debug(\"Network %d not found\", nic[\u0027network_id\u0027])"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_1c0ea28b","line":193,"range":{"start_line":193,"start_character":59,"end_line":193,"end_character":71},"in_reply_to":"3fa7e38b_ae43b4af","updated":"2019-10-31 12:01:45.000000000","message":"Done","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            return"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        LOG.warning(\"Unable to plug networks for amp id %s\","},{"line_number":266,"context_line":"                    delta[\u0027amphora_id\u0027])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        for nic in delta[\u0027add_nics\u0027]:"},{"line_number":269,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_02bc7b04","line":266,"range":{"start_line":266,"start_character":26,"end_line":266,"end_character":38},"updated":"2019-12-02 18:08:45.000000000","message":"constant?","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"437639525a7fdf2c37af4ce7ee5c986f2a01f8e6","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            return"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        LOG.warning(\"Unable to plug networks for amp id %s\","},{"line_number":266,"context_line":"                    delta[\u0027amphora_id\u0027])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        for nic in delta[\u0027add_nics\u0027]:"},{"line_number":269,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_a4725011","line":266,"range":{"start_line":266,"start_character":26,"end_line":266,"end_character":38},"in_reply_to":"3fa7e38b_02bc7b04","updated":"2019-12-03 00:42:14.000000000","message":"Done","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cd05f8ca3806451eb96c2dc8ddcd3a99c3ba128a","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            return"},{"line_number":314,"context_line":"        for amp_id, delta in six.iteritems(deltas):"},{"line_number":315,"context_line":"            LOG.warning(\"Unable to plug networks for amp id %s\","},{"line_number":316,"context_line":"                        delta[\u0027amphora_id\u0027])"},{"line_number":317,"context_line":"            if not delta:"},{"line_number":318,"context_line":"                return"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"3fa7e38b_22b73724","line":316,"range":{"start_line":316,"start_character":30,"end_line":316,"end_character":42},"updated":"2019-12-02 18:08:45.000000000","message":"constant?","commit_id":"eee00e0af3358c53cc84ab4897cf77dca349b74b"}],"octavia/tests/unit/controller/worker/v2/tasks/test_amphora_driver_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f849c8004a2ff1c779f5234d9067a757e4e24d47","unresolved":false,"context_lines":[{"line_number":44,"context_line":"_amphora_mock \u003d {"},{"line_number":45,"context_line":"    \u0027id\u0027: AMP_ID,"},{"line_number":46,"context_line":"    \u0027status\u0027: constants.AMPHORA_ALLOCATED,"},{"line_number":47,"context_line":"    \u0027compute_id\u0027: COMPUTE_ID,"},{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":"_load_balancer_mock \u003d mock.MagicMock()"},{"line_number":50,"context_line":"_load_balancer_mock.id \u003d LB_ID"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_0e69a823","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":16},"updated":"2019-10-29 18:00:12.000000000","message":"s/constants.COMPUTE_ID","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9c8cdf98404f5b0ed6e0cfbc576d97230148ae4c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"_amphora_mock \u003d {"},{"line_number":45,"context_line":"    \u0027id\u0027: AMP_ID,"},{"line_number":46,"context_line":"    \u0027status\u0027: constants.AMPHORA_ALLOCATED,"},{"line_number":47,"context_line":"    \u0027compute_id\u0027: COMPUTE_ID,"},{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":"_load_balancer_mock \u003d mock.MagicMock()"},{"line_number":50,"context_line":"_load_balancer_mock.id \u003d LB_ID"}],"source_content_type":"text/x-python","patch_set":32,"id":"3fa7e38b_9cfff200","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":16},"in_reply_to":"3fa7e38b_0e69a823","updated":"2019-10-31 12:01:45.000000000","message":"Done","commit_id":"7df57383bd0a0ae4d708a08895824b6e57f018f3"}]}
