)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"b4ffe3cc896bbdf373e487e88d77d4df0bcf71f6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Usage of jobboard allows to resume jobs in case of restart/stop"},{"line_number":16,"context_line":"of Octavia controller services."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Persistence backend saves state of flow tasks that required in"},{"line_number":19,"context_line":"case of resuming job. SQLAlchemy backend is used here."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Bump taskflow version to 3.7.1 and add dependency to"},{"line_number":22,"context_line":"SQLAlchemy-Utils (required for taskflow sqlalchemy"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":74,"id":"3fa7e38b_81a2b0fa","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":54},"updated":"2020-01-16 09:58:21.000000000","message":"Each flow logs a lot of information in the \"atomdetails\" table that seems to persist after flows complete. Is this expected?","commit_id":"beabf9fda93c2e081dd5837520c8380db1acc106"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8759596a56b7164e9ac8c73e4f90681197f26c5b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Usage of jobboard allows to resume jobs in case of restart/stop"},{"line_number":16,"context_line":"of Octavia controller services."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Persistence backend saves state of flow tasks that required in"},{"line_number":19,"context_line":"case of resuming job. SQLAlchemy backend is used here."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Bump taskflow version to 3.7.1 and add dependency to"},{"line_number":22,"context_line":"SQLAlchemy-Utils (required for taskflow sqlalchemy"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":74,"id":"3fa7e38b_a146cc7d","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":54},"in_reply_to":"3fa7e38b_81a2b0fa","updated":"2020-01-16 11:17:26.000000000","message":"I\u0027m expecting it to be dropped, I will check if something is missing.","commit_id":"beabf9fda93c2e081dd5837520c8380db1acc106"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"1dd2c4f522bbb70e9c7539a6cf2c560cfb2126e3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Usage of jobboard allows to resume jobs in case of restart/stop"},{"line_number":16,"context_line":"of Octavia controller services."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Persistence backend saves state of flow tasks that required in"},{"line_number":19,"context_line":"case of resuming job. SQLAlchemy backend is used here."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Bump taskflow version to 3.7.1 and add dependency to"},{"line_number":22,"context_line":"SQLAlchemy-Utils (required for taskflow sqlalchemy"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":74,"id":"3fa7e38b_93f0c3fe","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":54},"in_reply_to":"3fa7e38b_a146cc7d","updated":"2020-01-16 11:38:35.000000000","message":"I should have been clearer. The flow completed although it reverted. The LB went to ERROR, timed out connecting to the amphora. I have not yet checked if the problem is with the amphora (CentOS 8) or controller.","commit_id":"beabf9fda93c2e081dd5837520c8380db1acc106"}],"devstack/plugin.sh":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"31be658a42a937ca312d1dbf6fea97998e0282b0","unresolved":false,"context_lines":[{"line_number":252,"context_line":"    elif is_suse; then"},{"line_number":253,"context_line":"        uninstall_package redis"},{"line_number":254,"context_line":"    else"},{"line_number":255,"context_line":"        exit_distro_not_supported \"redis installation\""},{"line_number":256,"context_line":"    fi"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    stop_service redis"}],"source_content_type":"text/x-sh","patch_set":54,"id":"3fa7e38b_06c2ba34","line":255,"range":{"start_line":255,"start_character":41,"end_line":255,"end_character":53},"updated":"2019-11-01 20:55:01.000000000","message":"s/uninstallation - it should never get called anyways","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c02b587fe74c5eca0c3acf0e5579801736327827","unresolved":false,"context_lines":[{"line_number":252,"context_line":"    elif is_suse; then"},{"line_number":253,"context_line":"        uninstall_package redis"},{"line_number":254,"context_line":"    else"},{"line_number":255,"context_line":"        exit_distro_not_supported \"redis installation\""},{"line_number":256,"context_line":"    fi"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    stop_service redis"}],"source_content_type":"text/x-sh","patch_set":54,"id":"3fa7e38b_95f1c36d","line":255,"range":{"start_line":255,"start_character":41,"end_line":255,"end_character":53},"in_reply_to":"3fa7e38b_06c2ba34","updated":"2019-11-06 12:27:27.000000000","message":"I made a scratch of redis support here, so that job  octavia-v2-dsvm-scenario-amphora-v2 can be meaningful. \n\nMay be a separate change for that could be done.","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    if is_fedora; then"},{"line_number":246,"context_line":"        uninstall_package redis"},{"line_number":247,"context_line":"    elif is_ubuntu; then"},{"line_number":248,"context_line":"        install_package redis-server"},{"line_number":249,"context_line":"    elif is_suse; then"},{"line_number":250,"context_line":"        uninstall_package redis"},{"line_number":251,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":87,"id":"3fa7e38b_934b7f84","line":248,"range":{"start_line":248,"start_character":8,"end_line":248,"end_character":23},"updated":"2020-02-11 10:40:34.000000000","message":"I think you mean \"uninstall_package\" here","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    if is_fedora; then"},{"line_number":246,"context_line":"        uninstall_package redis"},{"line_number":247,"context_line":"    elif is_ubuntu; then"},{"line_number":248,"context_line":"        install_package redis-server"},{"line_number":249,"context_line":"    elif is_suse; then"},{"line_number":250,"context_line":"        uninstall_package redis"},{"line_number":251,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":87,"id":"3fa7e38b_8aaca1a8","line":248,"range":{"start_line":248,"start_character":8,"end_line":248,"end_character":23},"in_reply_to":"3fa7e38b_934b7f84","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    stop_service redis"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    pip_unistall_gr redis"},{"line_number":256,"context_line":"}"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"function octavia_configure {"}],"source_content_type":"text/x-sh","patch_set":87,"id":"3fa7e38b_f370b3dd","line":255,"range":{"start_line":255,"start_character":4,"end_line":255,"end_character":19},"updated":"2020-02-11 10:40:34.000000000","message":"pip_uni*n*stall_gr doesn\u0027t exists","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    stop_service redis"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    pip_unistall_gr redis"},{"line_number":256,"context_line":"}"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"function octavia_configure {"}],"source_content_type":"text/x-sh","patch_set":87,"id":"3fa7e38b_ca9b7976","line":255,"range":{"start_line":255,"start_character":4,"end_line":255,"end_character":19},"in_reply_to":"3fa7e38b_f370b3dd","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    fi"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # amphorav2 required redis installation"},{"line_number":367,"context_line":"    install_redis"},{"line_number":368,"context_line":"    iniset $OCTAVIA_CONF task_flow jobboard_expiration_time ${OCTAVIA_JOBBOARD_EXPIRATION_TIME}"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    if [[ \"$(trueorfalse False OCTAVIA_USE_PREGENERATED_CERTS)\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":102,"id":"df33271e_ade01ffa","line":367,"updated":"2020-04-07 20:49:31.000000000","message":"It seems like we should make this dependent on a devstack variable being defined as it is only needed if amphorav2 is going to be used.","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    fi"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # amphorav2 required redis installation"},{"line_number":367,"context_line":"    install_redis"},{"line_number":368,"context_line":"    iniset $OCTAVIA_CONF task_flow jobboard_expiration_time ${OCTAVIA_JOBBOARD_EXPIRATION_TIME}"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    if [[ \"$(trueorfalse False OCTAVIA_USE_PREGENERATED_CERTS)\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":102,"id":"df33271e_042bd481","line":367,"in_reply_to":"df33271e_ade01ffa","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # amphorav2 required redis installation"},{"line_number":367,"context_line":"    install_redis"},{"line_number":368,"context_line":"    iniset $OCTAVIA_CONF task_flow jobboard_expiration_time ${OCTAVIA_JOBBOARD_EXPIRATION_TIME}"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    if [[ \"$(trueorfalse False OCTAVIA_USE_PREGENERATED_CERTS)\" \u003d\u003d \"True\" ]]; then"},{"line_number":371,"context_line":"        cp -rfp ${OCTAVIA_PREGENERATED_CERTS_DIR} ${OCTAVIA_CERTS_DIR}"}],"source_content_type":"text/x-sh","patch_set":102,"id":"df33271e_0dc94b77","line":368,"updated":"2020-04-07 20:49:31.000000000","message":"Same here, I think this should set only if it is defined, otherwise the config.py default should be used.\nI assume this is only needed for the slow gate job hosts, so we should use it, only if defined, then add it to our gate job definitions.","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # amphorav2 required redis installation"},{"line_number":367,"context_line":"    install_redis"},{"line_number":368,"context_line":"    iniset $OCTAVIA_CONF task_flow jobboard_expiration_time ${OCTAVIA_JOBBOARD_EXPIRATION_TIME}"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    if [[ \"$(trueorfalse False OCTAVIA_USE_PREGENERATED_CERTS)\" \u003d\u003d \"True\" ]]; then"},{"line_number":371,"context_line":"        cp -rfp ${OCTAVIA_PREGENERATED_CERTS_DIR} ${OCTAVIA_CERTS_DIR}"}],"source_content_type":"text/x-sh","patch_set":102,"id":"df33271e_6422a0a6","line":368,"in_reply_to":"df33271e_0dc94b77","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"b93daf74169e29aba9f1cd3dd1059067ded2531d","unresolved":false,"context_lines":[{"line_number":371,"context_line":"    if [[ ${OCTAVIA_ENABLE_AMPHORAV2_PROVIDER} \u003d True ]]; then"},{"line_number":372,"context_line":"        install_redis"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        if [[ -v $OCTAVIA_JOBBOARD_EXPIRATION_TIME ]]; then"},{"line_number":375,"context_line":"            iniset $OCTAVIA_CONF task_flow jobboard_expiration_time ${OCTAVIA_JOBBOARD_EXPIRATION_TIME}"},{"line_number":376,"context_line":"        fi"},{"line_number":377,"context_line":"    fi"},{"line_number":378,"context_line":""}],"source_content_type":"text/x-sh","patch_set":104,"id":"df33271e_977b93bc","line":375,"range":{"start_line":374,"start_character":8,"end_line":375,"end_character":103},"updated":"2020-04-08 12:45:50.000000000","message":"On my devstack this works, but gate it didn\u0027t set jobboard_expiration_time in octavia.conf\nI will set this job description.","commit_id":"a3a7f5c54d576b78b09b4642a1ff464525ac33db"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"0584c0f25b54730801f6ced891de8d64679e48ed","unresolved":false,"context_lines":[{"line_number":371,"context_line":"    if [[ ${OCTAVIA_ENABLE_AMPHORAV2_PROVIDER} \u003d True ]]; then"},{"line_number":372,"context_line":"        install_redis"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        if [[ -v $OCTAVIA_JOBBOARD_EXPIRATION_TIME ]]; then"},{"line_number":375,"context_line":"            iniset $OCTAVIA_CONF task_flow jobboard_expiration_time ${OCTAVIA_JOBBOARD_EXPIRATION_TIME}"},{"line_number":376,"context_line":"        fi"},{"line_number":377,"context_line":"    fi"},{"line_number":378,"context_line":""}],"source_content_type":"text/x-sh","patch_set":104,"id":"df33271e_520f59e0","line":375,"range":{"start_line":374,"start_character":8,"end_line":375,"end_character":103},"in_reply_to":"df33271e_977b93bc","updated":"2020-04-08 13:01:47.000000000","message":"https://zuul.opendev.org/t/openstack/build/331985a665ce43f0bab803e079e3ee76/log/controller/logs/devstacklog.txt#25633\n\nOn my local Bash:\n\n  $ [[ -v 100 ]]\n  $ echo $?\n  1\n\nSo I think the problem is the double-quotes. The -v option checks if the *variable* has been set. Instead, here we are checking the value of the variable.\n\n  $ FOOBAR\u003d100\n  $ [[ -v \"$FOOBAR\" ]]\n  $ echo $?\n  1\n  $ [[ -v \"FOOBAR\" ]]\n  $ echo $?\n  0","commit_id":"a3a7f5c54d576b78b09b4642a1ff464525ac33db"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9e23d22cf51a6718514cb456473cc6a5a2acc821","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    sudo rm -rf $NOVA_STATE_PATH $NOVA_AUTH_CACHE_DIR"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"     if [[ ${OCTAVIA_ENABLE_AMPHORAV2_PROVIDER} \u003d True ]]; then"},{"line_number":661,"context_line":"        uninstall_redis"},{"line_number":662,"context_line":"    fi"},{"line_number":663,"context_line":""}],"source_content_type":"text/x-sh","patch_set":105,"id":"df33271e_c69d66bc","line":660,"updated":"2020-04-08 15:13:27.000000000","message":"pep8: E003 Indent not multiple of 4","commit_id":"81ac6416bd9c4448931f5b00ec0cfdc5b3d18f74"}],"devstack/settings":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":32,"context_line":"OCTAVIA_PORT\u003d${OCTAVIA_PORT:-\"9876\"}"},{"line_number":33,"context_line":"OCTAVIA_HA_PORT\u003d${OCTAVIA_HA_PORT:-\"9875\"}"},{"line_number":34,"context_line":"OCTAVIA_HM_LISTEN_PORT\u003d${OCTAVIA_HM_LISTEN_PORT:-\"5555\"}"},{"line_number":35,"context_line":"OCTAVIA_JOBBOARD_EXPIRATION_TIME\u003d${OCTAVIA_JOBBOARD_EXPIRATION_TIME:-\"100\"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"OCTAVIA_MGMT_SUBNET\u003d${OCTAVIA_MGMT_SUBNET:-\"192.168.0.0/24\"}"},{"line_number":38,"context_line":"OCTAVIA_MGMT_SUBNET_START\u003d${OCTAVIA_MGMT_SUBNET_START:-\"192.168.0.2\"}"}],"source_content_type":"application/octet-stream","patch_set":102,"id":"df33271e_ad9c9f5b","line":35,"updated":"2020-04-07 20:49:31.000000000","message":"It seems like this should move to the zuul job definition instead of be blanket for all devstack installs.","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":32,"context_line":"OCTAVIA_PORT\u003d${OCTAVIA_PORT:-\"9876\"}"},{"line_number":33,"context_line":"OCTAVIA_HA_PORT\u003d${OCTAVIA_HA_PORT:-\"9875\"}"},{"line_number":34,"context_line":"OCTAVIA_HM_LISTEN_PORT\u003d${OCTAVIA_HM_LISTEN_PORT:-\"5555\"}"},{"line_number":35,"context_line":"OCTAVIA_JOBBOARD_EXPIRATION_TIME\u003d${OCTAVIA_JOBBOARD_EXPIRATION_TIME:-\"100\"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"OCTAVIA_MGMT_SUBNET\u003d${OCTAVIA_MGMT_SUBNET:-\"192.168.0.0/24\"}"},{"line_number":38,"context_line":"OCTAVIA_MGMT_SUBNET_START\u003d${OCTAVIA_MGMT_SUBNET_START:-\"192.168.0.2\"}"}],"source_content_type":"application/octet-stream","patch_set":102,"id":"df33271e_8436c4e6","line":35,"in_reply_to":"df33271e_ad9c9f5b","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"}],"doc/source/admin/providers/amphorav2.rst":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Copyright 2018 Rackspace, US Inc."},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"      not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-rst","patch_set":102,"id":"df33271e_2d088f8f","line":2,"updated":"2020-04-07 20:49:31.000000000","message":"Maybe you want to update this?","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Copyright 2018 Rackspace, US Inc."},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"      not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-rst","patch_set":102,"id":"df33271e_64a58004","line":2,"in_reply_to":"df33271e_2d088f8f","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"}],"doc/source/install/install-amphorav2.rst":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"If you would like to use amphorav2 provider for load-balancer service the"},{"line_number":7,"context_line":"following additional steps required."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Prerequisites"}],"source_content_type":"text/x-rst","patch_set":87,"id":"3fa7e38b_f307531d","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":35},"updated":"2020-02-11 10:40:34.000000000","message":"\"are required\"?","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":4,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"If you would like to use amphorav2 provider for load-balancer service the"},{"line_number":7,"context_line":"following additional steps required."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Prerequisites"}],"source_content_type":"text/x-rst","patch_set":87,"id":"3fa7e38b_8aa101aa","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":35},"in_reply_to":"3fa7e38b_f307531d","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"2. Install desired key-value backend (Redis or Zookeper)."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Additional configuration to octavia componets"},{"line_number":55,"context_line":"---------------------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"1. Edit the ``/etc/octavia/octavia.conf`` file ``[task_flow]`` section"}],"source_content_type":"text/x-rst","patch_set":87,"id":"3fa7e38b_ae12d454","line":54,"range":{"start_line":54,"start_character":36,"end_line":54,"end_character":45},"updated":"2020-02-11 10:40:34.000000000","message":"components","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"2. Install desired key-value backend (Redis or Zookeper)."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Additional configuration to octavia componets"},{"line_number":55,"context_line":"---------------------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"1. Edit the ``/etc/octavia/octavia.conf`` file ``[task_flow]`` section"}],"source_content_type":"text/x-rst","patch_set":87,"id":"3fa7e38b_aaa63dbe","line":54,"range":{"start_line":54,"start_character":36,"end_line":54,"end_character":45},"in_reply_to":"3fa7e38b_ae12d454","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"     Replace OCTAVIA_DBPASS with a suitable password."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   * Exit the database access client."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"     .. code-block:: console"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_bb9387a3","line":46,"updated":"2020-03-20 20:22:58.000000000","message":"Probably don\u0027t need to specify this, I hope. ^_^\nNot a big deal, just made me lol","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"     Replace OCTAVIA_DBPASS with a suitable password."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   * Exit the database access client."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"     .. code-block:: console"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_183b8bd1","line":46,"in_reply_to":"df33271e_bb9387a3","updated":"2020-03-23 08:19:57.000000000","message":"Done","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        [task_flow]"},{"line_number":73,"context_line":"        jobboard_backend_driver \u003d \u0027redis_taskflow_driver\u0027"},{"line_number":74,"context_line":"        jobboard_backend_hosts \u003d [KEYVALUE_HOST_IPS]"},{"line_number":75,"context_line":"        jobboard_backend_port \u003d KEYVALUE_PORT"},{"line_number":76,"context_line":"        jobboard_backend_password \u003d OCTAVIA_JOBBOARDPASS"},{"line_number":77,"context_line":"        jobboard_backend_namespace \u003d \u0027octavia_jobboard\u0027"}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_fb9a2f6c","line":74,"updated":"2020-03-20 20:22:58.000000000","message":"don\u0027t think this needs brackets?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        [task_flow]"},{"line_number":73,"context_line":"        jobboard_backend_driver \u003d \u0027redis_taskflow_driver\u0027"},{"line_number":74,"context_line":"        jobboard_backend_hosts \u003d [KEYVALUE_HOST_IPS]"},{"line_number":75,"context_line":"        jobboard_backend_port \u003d KEYVALUE_PORT"},{"line_number":76,"context_line":"        jobboard_backend_password \u003d OCTAVIA_JOBBOARDPASS"},{"line_number":77,"context_line":"        jobboard_backend_namespace \u003d \u0027octavia_jobboard\u0027"}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_f837c7e2","line":74,"in_reply_to":"df33271e_fb9a2f6c","updated":"2020-03-23 08:19:57.000000000","message":"Done","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    Replace OCTAVIA_JOBBOARDPASS with the password you chose for the Octavia"},{"line_number":80,"context_line":"    key-value storage."},{"line_number":81,"context_line":"    Replace KEYVALUE_HOST_IPS and KEYVALUE_PORT with ip and port which"},{"line_number":82,"context_line":"    chosen key-value storage is using."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"2. Populate the octavia database:"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_5b8ebb27","line":82,"updated":"2020-03-20 20:22:58.000000000","message":"Might be good to explain WHY it is plural -- zookeeper supports multiple hosts, redis does not?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    Replace OCTAVIA_JOBBOARDPASS with the password you chose for the Octavia"},{"line_number":80,"context_line":"    key-value storage."},{"line_number":81,"context_line":"    Replace KEYVALUE_HOST_IPS and KEYVALUE_PORT with ip and port which"},{"line_number":82,"context_line":"    chosen key-value storage is using."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"2. Populate the octavia database:"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_1524f6c5","line":82,"in_reply_to":"df33271e_5b8ebb27","updated":"2020-03-23 08:19:57.000000000","message":"I think it is not just about hosts, but if cloud already used one of them, if operator has any preferences. Ideally, if taskflow allows multiple backends - we should allow to use them.","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   .. code-block:: console"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      # octavia-db-manage --config-file /etc/octavia/octavia.conf upgrade_persistence"}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_3b93f751","line":88,"updated":"2020-03-20 20:22:58.000000000","message":"Is this necessary? It looked like there was code to just ... automatically do this on startup?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   .. code-block:: console"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      # octavia-db-manage --config-file /etc/octavia/octavia.conf upgrade_persistence"}],"source_content_type":"text/x-rst","patch_set":96,"id":"df33271e_9519268a","line":88,"in_reply_to":"df33271e_3b93f751","updated":"2020-03-23 08:19:57.000000000","message":"Yes, it is needed, there was code, but with multiple works it causes errors on start -  please, check the 4th in https://etherpad.openstack.org/p/octavia-worker-v2-issue-tracker","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"}],"etc/octavia.conf":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":310,"context_line":"#jobboard_backend_namespace \u003d octavia_jobboard"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"# Redis jobboard backend ssl configuration options. (dict value)"},{"line_number":313,"context_line":"#jobboard_redis_backend_ssl_options \u003d ssl:False,ssl_ca_certs:None,ssl_cert_reqs:required,ssl_certfile:None,ssl_keyfile:None"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"# Zookeeper jobboard backend ssl configuration options. (dict value)"},{"line_number":316,"context_line":"#jobboard_zookeeper_ssl_options \u003d certfile:None,keyfile:None,keyfile_password:None,use_ssl:False,verify_certs:True"}],"source_content_type":"text/plain","patch_set":102,"id":"df33271e_4d94f3e8","line":313,"updated":"2020-04-07 20:49:31.000000000","message":"is \"ssl_cert_reqs:required\" really the default? Wouldn\u0027t that for the definition of a client cert/key?\nIf this is disabled due to the \"ssl:False\" we should comment, as it\u0027s confusing on first review.","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":310,"context_line":"#jobboard_backend_namespace \u003d octavia_jobboard"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"# Redis jobboard backend ssl configuration options. (dict value)"},{"line_number":313,"context_line":"#jobboard_redis_backend_ssl_options \u003d ssl:False,ssl_ca_certs:None,ssl_cert_reqs:required,ssl_certfile:None,ssl_keyfile:None"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"# Zookeeper jobboard backend ssl configuration options. (dict value)"},{"line_number":316,"context_line":"#jobboard_zookeeper_ssl_options \u003d certfile:None,keyfile:None,keyfile_password:None,use_ssl:False,verify_certs:True"}],"source_content_type":"text/plain","patch_set":102,"id":"df33271e_4444bc1b","line":313,"in_reply_to":"df33271e_4d94f3e8","updated":"2020-04-08 08:42:22.000000000","message":"Yes, this is default value https://redis-py.readthedocs.io/en/latest/#redis.Redis\nhttps://github.com/openstack/taskflow/blob/master/taskflow/jobs/backends/impl_redis.py#L282","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":319,"context_line":"# how many seconds the claim should be retained for. (integer value)"},{"line_number":320,"context_line":"#jobboard_expiration_time \u003d 30"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"# If for analysis required saving logbooks info, set thisparameter to"},{"line_number":323,"context_line":"# True. By default remove logbook from persistence backend when job"},{"line_number":324,"context_line":"# completed. (boolean value)"},{"line_number":325,"context_line":"#jobboard_save_logbook \u003d false"}],"source_content_type":"text/plain","patch_set":102,"id":"df33271e_ed4987b7","line":322,"range":{"start_line":322,"start_character":53,"end_line":322,"end_character":66},"updated":"2020-04-07 20:49:31.000000000","message":"this parameter","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":319,"context_line":"# how many seconds the claim should be retained for. (integer value)"},{"line_number":320,"context_line":"#jobboard_expiration_time \u003d 30"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"# If for analysis required saving logbooks info, set thisparameter to"},{"line_number":323,"context_line":"# True. By default remove logbook from persistence backend when job"},{"line_number":324,"context_line":"# completed. (boolean value)"},{"line_number":325,"context_line":"#jobboard_save_logbook \u003d false"}],"source_content_type":"text/plain","patch_set":102,"id":"df33271e_a44ae823","line":322,"range":{"start_line":322,"start_character":53,"end_line":322,"end_character":66},"in_reply_to":"df33271e_ed4987b7","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"}],"lower-constraints.txt":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"68b874fa413040ab8ad8126982bd11e3cb4bca15","unresolved":false,"context_lines":[{"line_number":149,"context_line":"sphinxcontrib-svg2pdfconverter\u003d\u003d0.1.0"},{"line_number":150,"context_line":"sphinxcontrib-websupport\u003d\u003d1.0.1"},{"line_number":151,"context_line":"SQLAlchemy\u003d\u003d1.0.10"},{"line_number":152,"context_line":"SQLAlchemy-Utils"},{"line_number":153,"context_line":"sqlalchemy-migrate\u003d\u003d0.11.0"},{"line_number":154,"context_line":"sqlparse\u003d\u003d0.2.4"},{"line_number":155,"context_line":"statsd\u003d\u003d3.2.2"}],"source_content_type":"text/plain","patch_set":60,"id":"3fa7e38b_f6659eb0","line":152,"updated":"2019-11-27 01:50:37.000000000","message":"This must have a lower bound version. Pick the lowest version that supports the features you are using.","commit_id":"d5468bcb98a3314b0449e29b61ec7b1ba0d5ae55"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"381a2c057590c48d7d88918c5636f8d9acc49abe","unresolved":false,"context_lines":[{"line_number":149,"context_line":"sphinxcontrib-svg2pdfconverter\u003d\u003d0.1.0"},{"line_number":150,"context_line":"sphinxcontrib-websupport\u003d\u003d1.0.1"},{"line_number":151,"context_line":"SQLAlchemy\u003d\u003d1.0.10"},{"line_number":152,"context_line":"SQLAlchemy-Utils"},{"line_number":153,"context_line":"sqlalchemy-migrate\u003d\u003d0.11.0"},{"line_number":154,"context_line":"sqlparse\u003d\u003d0.2.4"},{"line_number":155,"context_line":"statsd\u003d\u003d3.2.2"}],"source_content_type":"text/plain","patch_set":60,"id":"3fa7e38b_2cd8be7e","line":152,"in_reply_to":"3fa7e38b_f6659eb0","updated":"2019-11-27 17:47:52.000000000","message":"Done","commit_id":"d5468bcb98a3314b0449e29b61ec7b1ba0d5ae55"}],"octavia/api/common/types.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param children: convert child data models"},{"line_number":135,"context_line":"        \"\"\""},{"line_number":136,"context_line":"        type_dict \u003d data_model.to_dict()"},{"line_number":137,"context_line":"        for k, v in six.iteritems(type_dict):"},{"line_number":138,"context_line":"            if (\u0027_at\u0027 in k or \u0027expiration\u0027 in k) and v is not None:"},{"line_number":139,"context_line":"                type_dict[k] \u003d parser.parse(v)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":85,"id":"3fa7e38b_7e710edf","line":137,"updated":"2020-02-07 22:13:32.000000000","message":"nit: with python 3 this should be:\n\ntype_dict.items()\n\nbut I\u0027ll fix it up in my six removal patch once this merges","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param children: convert child data models"},{"line_number":135,"context_line":"        \"\"\""},{"line_number":136,"context_line":"        type_dict \u003d data_model.to_dict()"},{"line_number":137,"context_line":"        for k, v in six.iteritems(type_dict):"},{"line_number":138,"context_line":"            if (\u0027_at\u0027 in k or \u0027expiration\u0027 in k) and v is not None:"},{"line_number":139,"context_line":"                type_dict[k] \u003d parser.parse(v)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":85,"id":"3fa7e38b_95cb7c49","line":137,"in_reply_to":"3fa7e38b_7e710edf","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"}],"octavia/cmd/octavia_worker.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           args\u003d(CONF,))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    persistence \u003d taskflow_jobboard_driver.MysqlPesistenceDriver()"},{"line_number":42,"context_line":"    persistence.initialize()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    sm.add(consumer_v2.ConsumerService,"},{"line_number":45,"context_line":"           workers\u003dCONF.controller_worker.workers, args\u003d(CONF,),"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_49231a58","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":28},"updated":"2020-02-11 10:40:34.000000000","message":"Question: is initialized() only called from octavia-worker service?","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"882429c18a5c9736d656e7c28e0a31eb1486b784","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           args\u003d(CONF,))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    persistence \u003d taskflow_jobboard_driver.MysqlPesistenceDriver()"},{"line_number":42,"context_line":"    persistence.initialize()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    sm.add(consumer_v2.ConsumerService,"},{"line_number":45,"context_line":"           workers\u003dCONF.controller_worker.workers, args\u003d(CONF,),"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_c9d70abd","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":28},"in_reply_to":"3fa7e38b_49231a58","updated":"2020-02-11 11:05:13.000000000","message":"initialize() will run alembic migrations for persistence backend, so we want it to be called and executed only once. I put it here, but I\u0027m not sure it is the best place for it.","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ea6884f1da563ba94fd4a361eaa0c419b3276141","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           args\u003d(CONF,))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    persistence \u003d taskflow_jobboard_driver.MysqlPesistenceDriver()"},{"line_number":42,"context_line":"    persistence.initialize()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    sm.add(consumer_v2.ConsumerService,"},{"line_number":45,"context_line":"           workers\u003dCONF.controller_worker.workers, args\u003d(CONF,),"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_ea2af5e3","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":28},"in_reply_to":"3fa7e38b_c9d70abd","updated":"2020-02-11 12:58:15.000000000","message":"Ok, looks good to me","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           args\u003d(CONF,))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    persistence \u003d taskflow_jobboard_driver.MysqlPesistenceDriver()"},{"line_number":42,"context_line":"    persistence.initialize()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    sm.add(consumer_v2.ConsumerService,"},{"line_number":45,"context_line":"           workers\u003dCONF.controller_worker.workers, args\u003d(CONF,),"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_6a8cc538","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":28},"in_reply_to":"3fa7e38b_c9d70abd","updated":"2020-02-11 13:32:39.000000000","message":"Will set up as part of octavia-db-manage, seems the better place.","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"}],"octavia/common/base_taskflow.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"1087cc4573f01d8358a532d16c761870e5219fd3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        return eng"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class ExtendExpityListener(base.Listener):"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self, engine, job):"},{"line_number":61,"context_line":"        super(ExtendExpityListener, self).__init__(engine)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_7e273514","line":58,"updated":"2019-07-05 16:37:40.000000000","message":"typo: Expiry","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"31be658a42a937ca312d1dbf6fea97998e0282b0","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    job_board.post(job_name, book\u003djob_logbook,"},{"line_number":125,"context_line":"                                   details\u003djob_details)"},{"line_number":126,"context_line":"                except TypeError:"},{"line_number":127,"context_line":"                    LOG.error(\"Error happen with %s\", flow_factory.__name__)"},{"line_number":128,"context_line":"                return job_id"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def run_conductor(self, name):"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_06d71af0","line":127,"updated":"2019-11-01 20:55:01.000000000","message":"Is it ok to fall through and return job_id here?","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c02b587fe74c5eca0c3acf0e5579801736327827","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    job_board.post(job_name, book\u003djob_logbook,"},{"line_number":125,"context_line":"                                   details\u003djob_details)"},{"line_number":126,"context_line":"                except TypeError:"},{"line_number":127,"context_line":"                    LOG.error(\"Error happen with %s\", flow_factory.__name__)"},{"line_number":128,"context_line":"                return job_id"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def run_conductor(self, name):"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_9596a3ef","line":127,"in_reply_to":"3fa7e38b_06d71af0","updated":"2019-11-06 12:27:27.000000000","message":"oops, this was try-except for debugging some error - not needed here.","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        return eng"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ExtendExpityListener(base.Listener):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, engine, job):"},{"line_number":77,"context_line":"        super(ExtendExpityListener, self).__init__(engine)"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_0e42080e","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":18},"updated":"2020-02-11 10:40:34.000000000","message":"Expiry?","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        return eng"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ExtendExpityListener(base.Listener):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, engine, job):"},{"line_number":77,"context_line":"        super(ExtendExpityListener, self).__init__(engine)"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_4a78e92a","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":18},"in_reply_to":"3fa7e38b_0e42080e","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"}],"octavia/common/config.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"1087cc4573f01d8358a532d16c761870e5219fd3","unresolved":false,"context_lines":[{"line_number":393,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_type\u0027,"},{"line_number":394,"context_line":"               default\u003d\u0027redis\u0027,"},{"line_number":395,"context_line":"               help\u003d\u0027Jobboard backend type\u0027),"},{"line_number":396,"context_line":"    cfg.StrOpt(\u0027persistent_backend_type\u0027, default\u003d\u0027mysql\u0027,"},{"line_number":397,"context_line":"               help\u003d\u0027Jobboard persistent backend type\u0027),"},{"line_number":398,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_host\u0027, default\u003d\u0027localhost\u0027,"},{"line_number":399,"context_line":"               help\u003d\u0027Jobboard backend server host\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_be5b6d85","line":396,"updated":"2019-07-05 16:37:40.000000000","message":"So does jobboard have two types of backends running simultaneously, one persistent and one not? This is a little confusing, maybe it\u0027s just because I don\u0027t know exactly how jobboard works, but neither will anyone else probably. :D\nMaybe if the help-text was a little more explanatory.","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"4cec8f971adb4eebe53bf5788b5862ae70e9cbc8","unresolved":false,"context_lines":[{"line_number":393,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_type\u0027,"},{"line_number":394,"context_line":"               default\u003d\u0027redis\u0027,"},{"line_number":395,"context_line":"               help\u003d\u0027Jobboard backend type\u0027),"},{"line_number":396,"context_line":"    cfg.StrOpt(\u0027persistent_backend_type\u0027, default\u003d\u0027mysql\u0027,"},{"line_number":397,"context_line":"               help\u003d\u0027Jobboard persistent backend type\u0027),"},{"line_number":398,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_host\u0027, default\u003d\u0027localhost\u0027,"},{"line_number":399,"context_line":"               help\u003d\u0027Jobboard backend server host\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_5ea6ebc3","line":396,"in_reply_to":"7faddb67_be5b6d85","updated":"2019-07-08 08:14:27.000000000","message":"Yes, persistence backend is storing what atoms outputs (sqlalchemybackend) are and jobboard is a backend to store and manage jobs(redis). We need both of them.","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"1087cc4573f01d8358a532d16c761870e5219fd3","unresolved":false,"context_lines":[{"line_number":401,"context_line":"               help\u003d\u0027Jobboard backend server port\u0027),"},{"line_number":402,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_password\u0027, default\u003d\u0027\u0027,"},{"line_number":403,"context_line":"               help\u003d\u0027Jobboard backend server password\u0027),"},{"line_number":404,"context_line":"    cfg.StrOpt(\u0027persistence_connection\u0027,"},{"line_number":405,"context_line":"               default\u003d\u0027mysql+pymysql://root:admin@127.0.0.1:3306/\u0027"},{"line_number":406,"context_line":"                       \u0027octavia_persistence\u0027,"},{"line_number":407,"context_line":"               help\u003d\u0027Database connection url with db name\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_9ed791c0","line":404,"updated":"2019-07-05 16:37:40.000000000","message":"So I assume this is handled as a connection string because it\u0027s going directly into a SQLAlchemy engine or something like that, whereas the other one before this is being passed as args to some other constructor? It\u0027s weirdly inconsistent, but I suppose there\u0027s not really any way to fix that?","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"4cec8f971adb4eebe53bf5788b5862ae70e9cbc8","unresolved":false,"context_lines":[{"line_number":401,"context_line":"               help\u003d\u0027Jobboard backend server port\u0027),"},{"line_number":402,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_password\u0027, default\u003d\u0027\u0027,"},{"line_number":403,"context_line":"               help\u003d\u0027Jobboard backend server password\u0027),"},{"line_number":404,"context_line":"    cfg.StrOpt(\u0027persistence_connection\u0027,"},{"line_number":405,"context_line":"               default\u003d\u0027mysql+pymysql://root:admin@127.0.0.1:3306/\u0027"},{"line_number":406,"context_line":"                       \u0027octavia_persistence\u0027,"},{"line_number":407,"context_line":"               help\u003d\u0027Database connection url with db name\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_fed0f7cb","line":404,"in_reply_to":"7faddb67_9ed791c0","updated":"2019-07-08 08:14:27.000000000","message":"So, we have two different backends, persistence (sqlalchemy) and jobboard (redis). They both expect configs to connect properly. I will rework these config sections at some point :)","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"1087cc4573f01d8358a532d16c761870e5219fd3","unresolved":false,"context_lines":[{"line_number":405,"context_line":"               default\u003d\u0027mysql+pymysql://root:admin@127.0.0.1:3306/\u0027"},{"line_number":406,"context_line":"                       \u0027octavia_persistence\u0027,"},{"line_number":407,"context_line":"               help\u003d\u0027Database connection url with db name\u0027),"},{"line_number":408,"context_line":"    cfg.StrOpt(\u0027jobboard_namespace\u0027, default\u003d\u0027octavia_jobboard\u0027,"},{"line_number":409,"context_line":"               help\u003d\u0027Jobboard name that should be used to store taskflow \u0027"},{"line_number":410,"context_line":"                    \u0027job info\u0027),"},{"line_number":411,"context_line":"    cfg.StrOpt(\u0027jobboard_name\u0027, default\u003d\u0027octavia_jobboard\u0027,"},{"line_number":412,"context_line":"               help\u003d\u0027Jobboard name that should be used to store taskflow \u0027"},{"line_number":413,"context_line":"                    \u0027job info\u0027),"},{"line_number":414,"context_line":"    cfg.IntOpt(\u0027jobboard_expiration_time\u0027, default\u003d100,"},{"line_number":415,"context_line":"               help\u003d\u0027For backends like redis claiming jobs requiring setting\u0027"},{"line_number":416,"context_line":"                    \u0027of expiry - how many seconds the claim should be \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_3ee45dac","line":413,"range":{"start_line":408,"start_character":0,"end_line":413,"end_character":32},"updated":"2019-07-05 16:37:40.000000000","message":"Are these two things different? It doesn\u0027t look like it?","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"4cec8f971adb4eebe53bf5788b5862ae70e9cbc8","unresolved":false,"context_lines":[{"line_number":405,"context_line":"               default\u003d\u0027mysql+pymysql://root:admin@127.0.0.1:3306/\u0027"},{"line_number":406,"context_line":"                       \u0027octavia_persistence\u0027,"},{"line_number":407,"context_line":"               help\u003d\u0027Database connection url with db name\u0027),"},{"line_number":408,"context_line":"    cfg.StrOpt(\u0027jobboard_namespace\u0027, default\u003d\u0027octavia_jobboard\u0027,"},{"line_number":409,"context_line":"               help\u003d\u0027Jobboard name that should be used to store taskflow \u0027"},{"line_number":410,"context_line":"                    \u0027job info\u0027),"},{"line_number":411,"context_line":"    cfg.StrOpt(\u0027jobboard_name\u0027, default\u003d\u0027octavia_jobboard\u0027,"},{"line_number":412,"context_line":"               help\u003d\u0027Jobboard name that should be used to store taskflow \u0027"},{"line_number":413,"context_line":"                    \u0027job info\u0027),"},{"line_number":414,"context_line":"    cfg.IntOpt(\u0027jobboard_expiration_time\u0027, default\u003d100,"},{"line_number":415,"context_line":"               help\u003d\u0027For backends like redis claiming jobs requiring setting\u0027"},{"line_number":416,"context_line":"                    \u0027of expiry - how many seconds the claim should be \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_ded73bbf","line":413,"range":{"start_line":408,"start_character":0,"end_line":413,"end_character":32},"in_reply_to":"7faddb67_3ee45dac","updated":"2019-07-08 08:14:27.000000000","message":"Yep, the last one is a leftover.","commit_id":"083815ee6e19a396b6af56b517ae2a06a6f1264f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"31be658a42a937ca312d1dbf6fea97998e0282b0","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":93,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":94,"context_line":"                         \u0027driver.\u0027,"},{"line_number":95,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that use \u0027"},{"line_number":96,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":97,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":98,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_26d256fe","line":95,"range":{"start_line":95,"start_character":71,"end_line":95,"end_character":74},"updated":"2019-11-01 20:55:01.000000000","message":"nit: s/uses","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c02b587fe74c5eca0c3acf0e5579801736327827","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":93,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":94,"context_line":"                         \u0027driver.\u0027,"},{"line_number":95,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that use \u0027"},{"line_number":96,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":97,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":98,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_359b2f18","line":95,"range":{"start_line":95,"start_character":71,"end_line":95,"end_character":74},"in_reply_to":"3fa7e38b_26d256fe","updated":"2019-11-06 12:27:27.000000000","message":"Done","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"31be658a42a937ca312d1dbf6fea97998e0282b0","unresolved":false,"context_lines":[{"line_number":473,"context_line":"    # TODO(ataraday) add ssl config opts for jobboard_backend"},{"line_number":474,"context_line":"    # ssl, ssl_keyfile, ssl_certfile, ssl_cert_reqs, ssl_ca_certs"},{"line_number":475,"context_line":"    cfg.IntOpt(\u0027jobboard_expiration_time\u0027, default\u003d30,"},{"line_number":476,"context_line":"               help\u003d\u0027For backends like redis claiming jobs requiring setting\u0027"},{"line_number":477,"context_line":"                    \u0027of expiry - how many seconds the claim should be \u0027"},{"line_number":478,"context_line":"                    \u0027retained for\u0027),"},{"line_number":479,"context_line":""}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_a6ff2664","line":476,"range":{"start_line":476,"start_character":69,"end_line":476,"end_character":76},"updated":"2019-11-01 20:55:01.000000000","message":"missing trailing space","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c02b587fe74c5eca0c3acf0e5579801736327827","unresolved":false,"context_lines":[{"line_number":473,"context_line":"    # TODO(ataraday) add ssl config opts for jobboard_backend"},{"line_number":474,"context_line":"    # ssl, ssl_keyfile, ssl_certfile, ssl_cert_reqs, ssl_ca_certs"},{"line_number":475,"context_line":"    cfg.IntOpt(\u0027jobboard_expiration_time\u0027, default\u003d30,"},{"line_number":476,"context_line":"               help\u003d\u0027For backends like redis claiming jobs requiring setting\u0027"},{"line_number":477,"context_line":"                    \u0027of expiry - how many seconds the claim should be \u0027"},{"line_number":478,"context_line":"                    \u0027retained for\u0027),"},{"line_number":479,"context_line":""}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_f584b7b4","line":476,"range":{"start_line":476,"start_character":69,"end_line":476,"end_character":76},"in_reply_to":"3fa7e38b_a6ff2664","updated":"2019-11-06 12:27:27.000000000","message":"Done","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"7cb053d1cd18b3e4ceb95f7c1d8b606ab4f858d2","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":94,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":95,"context_line":"                         \u0027driver.\u0027,"},{"line_number":96,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that uses \u0027"},{"line_number":97,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":99,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"}],"source_content_type":"text/x-python","patch_set":83,"id":"3fa7e38b_a1d13e58","line":96,"range":{"start_line":96,"start_character":26,"end_line":96,"end_character":37},"updated":"2020-01-29 12:00:44.000000000","message":"Do we want to have amphorav2 as enabled driver by default? Or for U cycle it should not be enabled?","commit_id":"17effe0469a4cd9b5f5c6272b5f605361e1dce8e"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9437f4e5571348cd4cea9eb835acda7cec0a8184","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":94,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":95,"context_line":"                         \u0027driver.\u0027,"},{"line_number":96,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that uses \u0027"},{"line_number":97,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":99,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"}],"source_content_type":"text/x-python","patch_set":83,"id":"3fa7e38b_ac193587","line":96,"range":{"start_line":96,"start_character":26,"end_line":96,"end_character":37},"in_reply_to":"3fa7e38b_8cec7992","updated":"2020-01-29 13:44:37.000000000","message":"Will clarify: \nDo we want to add \u0027amphorav2\u0027 to enabled_provider_drivers as I did it here?\n\u0027amphorav2\u0027 will be experimental in U as was dicussed on PTG, but should it be in enabled_provider_drivers in U?","commit_id":"17effe0469a4cd9b5f5c6272b5f605361e1dce8e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"5a2d01442e938b57b515bc4c29ba01da70afdbfc","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":94,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":95,"context_line":"                         \u0027driver.\u0027,"},{"line_number":96,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that uses \u0027"},{"line_number":97,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":99,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"}],"source_content_type":"text/x-python","patch_set":83,"id":"3fa7e38b_8cec7992","line":96,"range":{"start_line":96,"start_character":26,"end_line":96,"end_character":37},"in_reply_to":"3fa7e38b_a1d13e58","updated":"2020-01-29 13:33:55.000000000","message":"I\u0027m for not making it default in the U cycle and document it as experimental for now.","commit_id":"17effe0469a4cd9b5f5c6272b5f605361e1dce8e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9e2b198771d26f190e16fde40c52fcc17e64518a","unresolved":false,"context_lines":[{"line_number":462,"context_line":"               help\u003d\u0027Jobboard backend driver\u0027),"},{"line_number":463,"context_line":"    cfg.ListOpt(\u0027jobboard_backend_hosts\u0027, default\u003d[\u0027127.0.0.1\u0027],"},{"line_number":464,"context_line":"                help\u003d\u0027Jobboard backend server hosts\u0027),"},{"line_number":465,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_port\u0027, default\u003d\u00276379\u0027,"},{"line_number":466,"context_line":"               help\u003d\u0027Jobboard backend server port\u0027),"},{"line_number":467,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_password\u0027, default\u003d\u0027\u0027,"},{"line_number":468,"context_line":"               help\u003d\u0027Jobboard backend server password\u0027),"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_aee65413","line":465,"range":{"start_line":465,"start_character":8,"end_line":465,"end_character":14},"updated":"2020-02-11 10:40:34.000000000","message":"Could be replaced with PortOpt (so default should be an integer)","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":462,"context_line":"               help\u003d\u0027Jobboard backend driver\u0027),"},{"line_number":463,"context_line":"    cfg.ListOpt(\u0027jobboard_backend_hosts\u0027, default\u003d[\u0027127.0.0.1\u0027],"},{"line_number":464,"context_line":"                help\u003d\u0027Jobboard backend server hosts\u0027),"},{"line_number":465,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_port\u0027, default\u003d\u00276379\u0027,"},{"line_number":466,"context_line":"               help\u003d\u0027Jobboard backend server port\u0027),"},{"line_number":467,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_password\u0027, default\u003d\u0027\u0027,"},{"line_number":468,"context_line":"               help\u003d\u0027Jobboard backend server password\u0027),"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_0a6e7164","line":465,"range":{"start_line":465,"start_character":8,"end_line":465,"end_character":14},"in_reply_to":"3fa7e38b_aee65413","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"90a6c21dde8517c8dd49ed2081c4e4d0b6ce2288","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":94,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":95,"context_line":"                         \u0027driver.\u0027,"},{"line_number":96,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that uses \u0027"},{"line_number":97,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":99,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"},{"line_number":100,"context_line":"    cfg.IntOpt(\u0027udp_connect_min_interval_health_monitor\u0027,"}],"source_content_type":"text/x-python","patch_set":99,"id":"df33271e_8cb96f16","line":97,"range":{"start_line":96,"start_character":25,"end_line":97,"end_character":71},"updated":"2020-04-01 07:45:22.000000000","message":"This question was lost in earlier patch sets.. \nI set amphorav2 among enabled provider drivers - this means that jobboard backend and persistence should be configured to run Octavia. Do we OK with this since U? Or as tech preview it should not be in the list of enabled_provider_drivers?","commit_id":"6bcaa0e7846befdaa0f669e82dfa942f8b8804c7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bdc05d434d003cf63a6a6c8ccedad45695bce636","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                default\u003d{\u0027amphora\u0027: \u0027The Octavia Amphora driver.\u0027,"},{"line_number":94,"context_line":"                         \u0027octavia\u0027: \u0027Deprecated alias of the Octavia Amphora \u0027"},{"line_number":95,"context_line":"                         \u0027driver.\u0027,"},{"line_number":96,"context_line":"                         \u0027amphorav2\u0027: \u0027The Octavia Amphora driver that uses \u0027"},{"line_number":97,"context_line":"                                      \u0027taskflow jobboard persistence.\u0027}),"},{"line_number":98,"context_line":"    cfg.StrOpt(\u0027default_provider_driver\u0027, default\u003d\u0027amphora\u0027,"},{"line_number":99,"context_line":"               help\u003d_(\u0027Default provider driver.\u0027)),"},{"line_number":100,"context_line":"    cfg.IntOpt(\u0027udp_connect_min_interval_health_monitor\u0027,"}],"source_content_type":"text/x-python","patch_set":99,"id":"df33271e_1779df92","line":97,"range":{"start_line":96,"start_character":25,"end_line":97,"end_character":71},"in_reply_to":"df33271e_8cb96f16","updated":"2020-04-01 16:11:48.000000000","message":"It should not be in the enabled driver list for Ussuri in my opinion. It could still be enabled as needed by operators, but should not be enabled by default.","commit_id":"6bcaa0e7846befdaa0f669e82dfa942f8b8804c7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                help\u003d\u0027Jobboard backend server host(s).\u0027),"},{"line_number":472,"context_line":"    cfg.PortOpt(\u0027jobboard_backend_port\u0027, default\u003d6379,"},{"line_number":473,"context_line":"                help\u003d\u0027Jobboard backend server port\u0027),"},{"line_number":474,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_password\u0027, default\u003d\u0027\u0027,"},{"line_number":475,"context_line":"               help\u003d\u0027Jobboard backend server password\u0027),"},{"line_number":476,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_namespace\u0027, default\u003d\u0027octavia_jobboard\u0027,"},{"line_number":477,"context_line":"               help\u003d\u0027Jobboard name that should be used to store taskflow \u0027"}],"source_content_type":"text/x-python","patch_set":102,"id":"df33271e_2d640f49","line":474,"updated":"2020-04-07 20:49:31.000000000","message":"This should have the \"secret\u003dTrue\" parameter added so it is not logged.","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                help\u003d\u0027Jobboard backend server host(s).\u0027),"},{"line_number":472,"context_line":"    cfg.PortOpt(\u0027jobboard_backend_port\u0027, default\u003d6379,"},{"line_number":473,"context_line":"                help\u003d\u0027Jobboard backend server port\u0027),"},{"line_number":474,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_password\u0027, default\u003d\u0027\u0027,"},{"line_number":475,"context_line":"               help\u003d\u0027Jobboard backend server password\u0027),"},{"line_number":476,"context_line":"    cfg.StrOpt(\u0027jobboard_backend_namespace\u0027, default\u003d\u0027octavia_jobboard\u0027,"},{"line_number":477,"context_line":"               help\u003d\u0027Jobboard name that should be used to store taskflow \u0027"}],"source_content_type":"text/x-python","patch_set":102,"id":"df33271e_6428e033","line":474,"in_reply_to":"df33271e_2d640f49","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"}],"octavia/controller/housekeeping/house_keeping.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"37c56cfccac272ce04aca51e8fe7a4a836de33a8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            self.check_booting_amphora \u003d True"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            self.cw \u003d cw1.ControllerWorker()"},{"line_number":43,"context_line":"            self.check_booting_amphora \u003d False"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def spare_check(self):"},{"line_number":46,"context_line":"        \"\"\"Checks the DB for the Spare amphora count."}],"source_content_type":"text/x-python","patch_set":91,"id":"3fa7e38b_5905a815","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":38},"updated":"2020-02-19 12:35:57.000000000","message":"question for ann and others: could check_booting_amphora\u003dTrue become the default for amphora and amphorav2 drivers? It would simplify the code there and it wouldn\u0027t change that much amphora(v1) behavior.","commit_id":"8eb957e71941c2a69d8bab092b83d41835b218ad"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9b87ef2abaac3e0350bdb4736d23c0c6ce056744","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            self.check_booting_amphora \u003d True"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            self.cw \u003d cw1.ControllerWorker()"},{"line_number":43,"context_line":"            self.check_booting_amphora \u003d False"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def spare_check(self):"},{"line_number":46,"context_line":"        \"\"\"Checks the DB for the Spare amphora count."}],"source_content_type":"text/x-python","patch_set":91,"id":"3fa7e38b_34db117b","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":38},"in_reply_to":"3fa7e38b_5905a815","updated":"2020-02-19 12:51:02.000000000","message":"From what I see here - we may have amphora in BOOTING state if creation of amphora is interrupted, as process waits for creation to be complete. So in v1 case BOOTING amphora will never become READY (in case of interruption) as creation won\u0027t be continued, but for v2 case it will.","commit_id":"8eb957e71941c2a69d8bab092b83d41835b218ad"}],"octavia/controller/worker/v2/controller_worker.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":219,"context_line":"            flow_utils.get_update_health_monitor_flow,"},{"line_number":220,"context_line":"            store\u003dstore)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @tenacity.retry("},{"line_number":223,"context_line":"        retry\u003dtenacity.retry_if_exception_type(db_exceptions.NoResultFound),"},{"line_number":224,"context_line":"        wait\u003dtenacity.wait_incrementing("},{"line_number":225,"context_line":"            RETRY_INITIAL_DELAY, RETRY_BACKOFF, RETRY_MAX),"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_9b0e83e3","line":222,"updated":"2020-03-20 20:22:58.000000000","message":"Why is this the only thing that gets a retry?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":219,"context_line":"            flow_utils.get_update_health_monitor_flow,"},{"line_number":220,"context_line":"            store\u003dstore)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @tenacity.retry("},{"line_number":223,"context_line":"        retry\u003dtenacity.retry_if_exception_type(db_exceptions.NoResultFound),"},{"line_number":224,"context_line":"        wait\u003dtenacity.wait_incrementing("},{"line_number":225,"context_line":"            RETRY_INITIAL_DELAY, RETRY_BACKOFF, RETRY_MAX),"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_584a3355","line":222,"in_reply_to":"df33271e_9b0e83e3","updated":"2020-03-23 08:19:57.000000000","message":"Not only this one, retry requires for places where we get db object from db, that is going to be created (as dicts passed, it is not required for every create, but in some places it was wrongly dropped).","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"}],"octavia/controller/worker/v2/flows/flow_utils.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2ee6be20584330270efe9afb2d2d3e098e1d8365","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":102,"id":"df33271e_1c9dfbba","line":1,"updated":"2020-04-07 20:49:31.000000000","message":"Duplicate comment line here.","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"8813601ba8c43be13fbe31249d4db92f2e974055","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":102,"id":"df33271e_8471a4e1","line":1,"in_reply_to":"df33271e_1c9dfbba","updated":"2020-04-08 08:42:22.000000000","message":"Done","commit_id":"fa75ba0e45f0707db202a5158a0514e69a4977bd"}],"octavia/controller/worker/v2/taskflow_jobboard_driver.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"31be658a42a937ca312d1dbf6fea97998e0282b0","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"PERSISTENCE_CONF_OPT \u003d {\u0027max_pool_size\u0027: 10,"},{"line_number":26,"context_line":"                        \u0027max_overflow\u0027: 20,"},{"line_number":27,"context_line":"                        \u0027pool_timeout\u0027: 10,"},{"line_number":28,"context_line":"                        }"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_e6175ea2","line":27,"updated":"2019-11-01 20:55:01.000000000","message":"Are these defined elsewhere in CONF ?","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c02b587fe74c5eca0c3acf0e5579801736327827","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"PERSISTENCE_CONF_OPT \u003d {\u0027max_pool_size\u0027: 10,"},{"line_number":26,"context_line":"                        \u0027max_overflow\u0027: 20,"},{"line_number":27,"context_line":"                        \u0027pool_timeout\u0027: 10,"},{"line_number":28,"context_line":"                        }"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_15ab931e","line":27,"in_reply_to":"3fa7e38b_e6175ea2","updated":"2019-11-06 12:27:27.000000000","message":"No config option exists for this paramenters - https://github.com/openstack/octavia/blob/master/octavia/common/config.py#L750","commit_id":"639e3518ed0ec48b0ce9ad81d5d41e490cdc3f20"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b5b96e54ccf61b8e26aba1b6f21c28b3fbd7c330","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \u0027board\u0027: \u0027redis\u0027,"},{"line_number":87,"context_line":"            \u0027host\u0027: CONF.task_flow.jobboard_backend_hosts[0],"},{"line_number":88,"context_line":"            \u0027port\u0027: CONF.task_flow.jobboard_backend_port,"},{"line_number":89,"context_line":"            # \u0027password\u0027: CONF.task_flow.jobboard_backend_password,"},{"line_number":90,"context_line":"            \u0027namespace\u0027: CONF.task_flow.jobboard_backend_namespace,"},{"line_number":91,"context_line":"        }"},{"line_number":92,"context_line":"        return job_backends.backend(CONF.task_flow.jobboard_backend_namespace,"}],"source_content_type":"text/x-python","patch_set":65,"id":"3fa7e38b_17925ffd","line":89,"updated":"2019-12-04 03:25:11.000000000","message":"??","commit_id":"f966d31d1ba21b32052a18f4e32efd1147909e68"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c590c50a72dcf1274355a5053ff6d3e60b50cc13","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \u0027board\u0027: \u0027redis\u0027,"},{"line_number":87,"context_line":"            \u0027host\u0027: CONF.task_flow.jobboard_backend_hosts[0],"},{"line_number":88,"context_line":"            \u0027port\u0027: CONF.task_flow.jobboard_backend_port,"},{"line_number":89,"context_line":"            # \u0027password\u0027: CONF.task_flow.jobboard_backend_password,"},{"line_number":90,"context_line":"            \u0027namespace\u0027: CONF.task_flow.jobboard_backend_namespace,"},{"line_number":91,"context_line":"        }"},{"line_number":92,"context_line":"        return job_backends.backend(CONF.task_flow.jobboard_backend_namespace,"}],"source_content_type":"text/x-python","patch_set":65,"id":"3fa7e38b_1d602ecf","line":89,"in_reply_to":"3fa7e38b_17925ffd","updated":"2020-01-09 08:26:21.000000000","message":"At","commit_id":"f966d31d1ba21b32052a18f4e32efd1147909e68"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ebcfae274b86fbd8a1814d0210b5bb4429f4fe24","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \u0027board\u0027: \u0027redis\u0027,"},{"line_number":87,"context_line":"            \u0027host\u0027: CONF.task_flow.jobboard_backend_hosts[0],"},{"line_number":88,"context_line":"            \u0027port\u0027: CONF.task_flow.jobboard_backend_port,"},{"line_number":89,"context_line":"            # \u0027password\u0027: CONF.task_flow.jobboard_backend_password,"},{"line_number":90,"context_line":"            \u0027namespace\u0027: CONF.task_flow.jobboard_backend_namespace,"},{"line_number":91,"context_line":"        }"},{"line_number":92,"context_line":"        return job_backends.backend(CONF.task_flow.jobboard_backend_namespace,"}],"source_content_type":"text/x-python","patch_set":72,"id":"3fa7e38b_90d91cf2","line":89,"updated":"2020-01-07 19:21:06.000000000","message":"intentional?","commit_id":"dcdff5f041a59b382d63f975d1d6ee524d46e1f9"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c590c50a72dcf1274355a5053ff6d3e60b50cc13","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            \u0027board\u0027: \u0027redis\u0027,"},{"line_number":87,"context_line":"            \u0027host\u0027: CONF.task_flow.jobboard_backend_hosts[0],"},{"line_number":88,"context_line":"            \u0027port\u0027: CONF.task_flow.jobboard_backend_port,"},{"line_number":89,"context_line":"            # \u0027password\u0027: CONF.task_flow.jobboard_backend_password,"},{"line_number":90,"context_line":"            \u0027namespace\u0027: CONF.task_flow.jobboard_backend_namespace,"},{"line_number":91,"context_line":"        }"},{"line_number":92,"context_line":"        return job_backends.backend(CONF.task_flow.jobboard_backend_namespace,"}],"source_content_type":"text/x-python","patch_set":72,"id":"3fa7e38b_c087aa11","line":89,"in_reply_to":"3fa7e38b_90d91cf2","updated":"2020-01-09 08:26:21.000000000","message":"I\u0027ll add TODO here\nI will need some help with setting up redis properly, as now on devstack it is setup without password.","commit_id":"dcdff5f041a59b382d63f975d1d6ee524d46e1f9"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":28,"context_line":"class JobboardTaskFlowDriver(object):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":85,"id":"3fa7e38b_1e31fa0a","line":27,"updated":"2020-02-07 22:13:32.000000000","message":"I\u0027ll fix this too in the six removal patch","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":28,"context_line":"class JobboardTaskFlowDriver(object):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":85,"id":"3fa7e38b_f5099082","line":27,"in_reply_to":"3fa7e38b_1e31fa0a","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ea6884f1da563ba94fd4a361eaa0c419b3276141","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class MysqlPesistenceDriver(object):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        self.persistence_conf \u003d {"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_ea13d5b5","line":36,"range":{"start_line":36,"start_character":11,"end_line":36,"end_character":21},"updated":"2020-02-11 12:58:15.000000000","message":"typo in class name: \"Pe*r*sistence\"","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"442fa269042f59b8257e74e8e1e6d39a100dbd63","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class MysqlPesistenceDriver(object):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        self.persistence_conf \u003d {"}],"source_content_type":"text/x-python","patch_set":87,"id":"3fa7e38b_cd287337","line":36,"range":{"start_line":36,"start_character":11,"end_line":36,"end_character":21},"in_reply_to":"3fa7e38b_ea13d5b5","updated":"2020-02-11 13:32:39.000000000","message":"Done","commit_id":"509f5c0ceab3237f7034c284e08d3743ad167c31"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"065d803c04cd166a8a2641d7d1c1515ee08d1e6b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                connection.upgrade()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @contextlib.contextmanager"},{"line_number":54,"context_line":"    def get_perisistence(self):"},{"line_number":55,"context_line":"        # Rewrite taskflow get backend, so it won\u0027t run migrations on each call"},{"line_number":56,"context_line":"        backend \u003d persistence_backends.fetch(self.persistence_conf)"},{"line_number":57,"context_line":"        with contextlib.closing(backend):"}],"source_content_type":"text/x-python","patch_set":89,"id":"3fa7e38b_5d6718ed","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":24},"updated":"2020-02-14 09:37:00.000000000","message":"typo in persistence","commit_id":"be22c704adccf7a6e57461efcedfe22c0b7203e1"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"139f4cd5964fdabf4dd1e4c171e17852a4ac63c4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                connection.upgrade()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @contextlib.contextmanager"},{"line_number":54,"context_line":"    def get_perisistence(self):"},{"line_number":55,"context_line":"        # Rewrite taskflow get backend, so it won\u0027t run migrations on each call"},{"line_number":56,"context_line":"        backend \u003d persistence_backends.fetch(self.persistence_conf)"},{"line_number":57,"context_line":"        with contextlib.closing(backend):"}],"source_content_type":"text/x-python","patch_set":89,"id":"3fa7e38b_6aba3371","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":24},"in_reply_to":"3fa7e38b_5d6718ed","updated":"2020-02-17 13:30:03.000000000","message":"Done","commit_id":"be22c704adccf7a6e57461efcedfe22c0b7203e1"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        self.persistence_conf \u003d {"},{"line_number":40,"context_line":"            \u0027connection\u0027: CONF.task_flow.persistence_connection,"},{"line_number":41,"context_line":"            \u0027max_pool_size\u0027: 10,"},{"line_number":42,"context_line":"            \u0027max_overflow\u0027: 20,"},{"line_number":43,"context_line":"            \u0027pool_timeout\u0027: 10,"},{"line_number":44,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_fbfeafac","line":41,"updated":"2020-03-20 20:22:58.000000000","message":"These don\u0027t get to be configurable? Is that ever going to be a problem?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        self.persistence_conf \u003d {"},{"line_number":40,"context_line":"            \u0027connection\u0027: CONF.task_flow.persistence_connection,"},{"line_number":41,"context_line":"            \u0027max_pool_size\u0027: 10,"},{"line_number":42,"context_line":"            \u0027max_overflow\u0027: 20,"},{"line_number":43,"context_line":"            \u0027pool_timeout\u0027: 10,"},{"line_number":44,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_f5099231","line":41,"in_reply_to":"df33271e_fbfeafac","updated":"2020-03-23 08:19:57.000000000","message":"I used the same that set in config https://github.com/openstack/octavia/blob/master/octavia/common/config.py#L754 but yes, probably better to set via CONF values anyway.","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def initialize(self):"},{"line_number":47,"context_line":"        # Run migrations once on service start."},{"line_number":48,"context_line":"        backend \u003d persistence_backends.fetch(self.persistence_conf)"},{"line_number":49,"context_line":"        with contextlib.closing(backend):"},{"line_number":50,"context_line":"            with contextlib.closing(backend.get_connection()) as connection:"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_bb1d4711","line":47,"updated":"2020-03-20 20:22:58.000000000","message":"Wait, so we never have to explicitly run the migrations? It just automatically does it?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"ee7d0573c70e0cc02dc39d7cfe8d7f9fb164e025","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def initialize(self):"},{"line_number":47,"context_line":"        # Run migrations once on service start."},{"line_number":48,"context_line":"        backend \u003d persistence_backends.fetch(self.persistence_conf)"},{"line_number":49,"context_line":"        with contextlib.closing(backend):"},{"line_number":50,"context_line":"            with contextlib.closing(backend.get_connection()) as connection:"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_b7809c8d","line":47,"in_reply_to":"df33271e_acb7b8d8","updated":"2020-03-24 06:55:19.000000000","message":"Sure, I will catch you today.\nPut some more details here anyway:\nIn default configuration octavia start multiple controller workers https://github.com/openstack/octavia/blob/master/octavia/cmd/octavia_worker.py#L39\nIn default taskflow behavior this leads to multiple errors on octavia-worker start, one of traces in mentioned in the etherpad, as migration applied in parallel. https://github.com/openstack/octavia/blob/master/octavia/cmd/octavia_worker.py#L39 \nSo, I moved apply of migrations in separate method, so db scheme should be created before worker starts as done with basic migrations.","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"712e3282734dac50802dd1a30c3c742ef31c2308","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def initialize(self):"},{"line_number":47,"context_line":"        # Run migrations once on service start."},{"line_number":48,"context_line":"        backend \u003d persistence_backends.fetch(self.persistence_conf)"},{"line_number":49,"context_line":"        with contextlib.closing(backend):"},{"line_number":50,"context_line":"            with contextlib.closing(backend.get_connection()) as connection:"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_acb7b8d8","line":47,"in_reply_to":"df33271e_b80d3f39","updated":"2020-03-23 16:38:51.000000000","message":"Ok, I\u0027m still not totally clear about this part... Maybe we can run through this on IRC?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def initialize(self):"},{"line_number":47,"context_line":"        # Run migrations once on service start."},{"line_number":48,"context_line":"        backend \u003d persistence_backends.fetch(self.persistence_conf)"},{"line_number":49,"context_line":"        with contextlib.closing(backend):"},{"line_number":50,"context_line":"            with contextlib.closing(backend.get_connection()) as connection:"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_b80d3f39","line":47,"in_reply_to":"df33271e_bb1d4711","updated":"2020-03-23 08:19:57.000000000","message":"No, this is some kind override of taskflow logic - to have method to run migration once - it is called via octavi-db-manage https://review.opendev.org/#/c/647406/96/octavia/db/migration/cli.py@94\nThe taskflow logic gives error with multiple workers https://etherpad.openstack.org/p/octavia-worker-v2-issue-tracker 4th","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            [\u0027%s:%s\u0027 % (host, CONF.task_flow.jobboard_backend_port)"},{"line_number":71,"context_line":"             for host in CONF.task_flow.jobboard_backend_hosts])"},{"line_number":72,"context_line":"        jobboard_backend_conf \u003d {"},{"line_number":73,"context_line":"            \u0027board\u0027: \u0027zookepeer\u0027,"},{"line_number":74,"context_line":"            \u0027hosts\u0027: job_backends_hosts,"},{"line_number":75,"context_line":"            \u0027path\u0027: \u0027/\u0027 + CONF.task_flow.jobboard_backend_namespace,"},{"line_number":76,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_1b1b931b","line":73,"range":{"start_line":73,"start_character":22,"end_line":73,"end_character":31},"updated":"2020-03-20 20:22:58.000000000","message":"typo","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            \u0027path\u0027: \u0027/\u0027 + CONF.task_flow.jobboard_backend_namespace,"},{"line_number":76,"context_line":"        }"},{"line_number":77,"context_line":"        # TODO(ataraday): Passing this options will be available only with"},{"line_number":78,"context_line":"        # https://review.opendev.org/#/c/710764/"},{"line_number":79,"context_line":"        # So, taskflow version should be bumped, when this change got merged"},{"line_number":80,"context_line":"        jobboard_backend_conf.update("},{"line_number":81,"context_line":"            CONF.task_flow.jobboard_zookeeper_ssl_options)"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_fbeceff4","line":78,"range":{"start_line":78,"start_character":10,"end_line":78,"end_character":48},"updated":"2020-03-20 20:22:58.000000000","message":"It merged! So, did this get done?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def job_board(self, persistence):"},{"line_number":93,"context_line":"        jobboard_backend_conf \u003d {"},{"line_number":94,"context_line":"            \u0027board\u0027: \u0027redis\u0027,"},{"line_number":95,"context_line":"            \u0027host\u0027: CONF.task_flow.jobboard_backend_hosts[0],"},{"line_number":96,"context_line":"            \u0027port\u0027: CONF.task_flow.jobboard_backend_port,"},{"line_number":97,"context_line":"            \u0027password\u0027: CONF.task_flow.jobboard_backend_password,"},{"line_number":98,"context_line":"            \u0027namespace\u0027: CONF.task_flow.jobboard_backend_namespace,"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_9bdcc347","line":95,"updated":"2020-03-20 20:22:58.000000000","message":"So, redis only ever supports one host, but zookeeper supports multiple? That\u0027s why the option is set up as a list?","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def job_board(self, persistence):"},{"line_number":93,"context_line":"        jobboard_backend_conf \u003d {"},{"line_number":94,"context_line":"            \u0027board\u0027: \u0027redis\u0027,"},{"line_number":95,"context_line":"            \u0027host\u0027: CONF.task_flow.jobboard_backend_hosts[0],"},{"line_number":96,"context_line":"            \u0027port\u0027: CONF.task_flow.jobboard_backend_port,"},{"line_number":97,"context_line":"            \u0027password\u0027: CONF.task_flow.jobboard_backend_password,"},{"line_number":98,"context_line":"            \u0027namespace\u0027: CONF.task_flow.jobboard_backend_namespace,"}],"source_content_type":"text/x-python","patch_set":96,"id":"df33271e_782c5799","line":95,"in_reply_to":"df33271e_9bdcc347","updated":"2020-03-23 08:19:57.000000000","message":"In order to have an option that works for both variants","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"}],"octavia/distributor/drivers/taskflow_driver.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31163aff19aa0134f3d4057055559595c70da952","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ffb9cba7_6a60bacf","updated":"2019-04-24 01:15:26.000000000","message":"FYI, this directory \"distributor\" is part of the Active/Active work.\nThis file should be placed somewhere else in the octavia code tree.","commit_id":"9a1f04657faf33da1bd2ee1007e0905dcf3c3477"}],"releasenotes/notes/add-jobboard-based-controller-599279c7cc172e955.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_9e1c0a7c","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":73},"updated":"2020-02-07 22:13:32.000000000","message":"s/a jobboard-based","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_3562c83e","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":73},"in_reply_to":"3fa7e38b_9e1c0a7c","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_5e2212b9","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":24},"updated":"2020-02-07 22:13:32.000000000","message":"s/A jobboard","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_1e1a5a7b","line":5,"range":{"start_line":5,"start_character":43,"end_line":5,"end_character":48},"updated":"2020-02-07 22:13:32.000000000","message":"s/the issue (or an issue?)","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_f5cc3034","line":5,"range":{"start_line":5,"start_character":43,"end_line":5,"end_character":48},"in_reply_to":"3fa7e38b_1e1a5a7b","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_b5d238ce","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":24},"in_reply_to":"3fa7e38b_5e2212b9","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_5efbf214","line":6,"range":{"start_line":6,"start_character":56,"end_line":6,"end_character":67},"updated":"2020-02-07 22:13:32.000000000","message":"s/a persistent ?","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_3efe3607","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":52},"updated":"2020-02-07 22:13:32.000000000","message":"s/states","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94f87008b71b8c0152af538197e1872efad24821","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_7e082e2d","line":6,"range":{"start_line":6,"start_character":14,"end_line":6,"end_character":19},"updated":"2020-02-07 22:13:32.000000000","message":"s/states (PENDING_* implies \u003e1)","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_75d840ec","line":6,"range":{"start_line":6,"start_character":47,"end_line":6,"end_character":52},"in_reply_to":"3fa7e38b_3efe3607","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_b5fb1846","line":6,"range":{"start_line":6,"start_character":56,"end_line":6,"end_character":67},"in_reply_to":"3fa7e38b_5efbf214","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1bec247fa4983cdce1089c1231367c1b80adb093","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad based"},{"line_number":5,"context_line":"    controller. Jobboard controller solves issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* state by writing info about task state in persistence backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":85,"id":"3fa7e38b_55f42456","line":6,"range":{"start_line":6,"start_character":14,"end_line":6,"end_character":19},"in_reply_to":"3fa7e38b_7e082e2d","updated":"2020-02-10 11:05:12.000000000","message":"Done","commit_id":"ea0b095fb72f407a2b8a8123af56cbd717fb80f5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"f2dc8319260ec9ee35778ec02d6f420c0b69484e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad-based"},{"line_number":5,"context_line":"    controller. A jobboard controller solves the issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* states by writing info about task states in persistent backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":96,"id":"df33271e_9baa0383","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":67},"updated":"2020-03-20 20:22:58.000000000","message":"typo","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d632ddd3068f7c422b8a1fe7fa35dbb45e8afc5d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now use the amphorav2 provider which uses jobboad-based"},{"line_number":5,"context_line":"    controller. A jobboard controller solves the issue with resources stuck in"},{"line_number":6,"context_line":"    PENDING_* states by writing info about task states in persistent backend"},{"line_number":7,"context_line":"    and monitoring job claims via jobboard."}],"source_content_type":"text/x-yaml","patch_set":96,"id":"df33271e_f846a721","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":67},"in_reply_to":"df33271e_9baa0383","updated":"2020-03-23 08:19:57.000000000","message":"Done","commit_id":"fccce7f02410980164d314685750a47ea01be7e5"}],"requirements.txt":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"68b874fa413040ab8ad8126982bd11e3cb4bca15","unresolved":false,"context_lines":[{"line_number":6,"context_line":"pecan!\u003d1.0.2,!\u003d1.0.3,!\u003d1.0.4,!\u003d1.2,\u003e\u003d1.0.0 # BSD"},{"line_number":7,"context_line":"pbr!\u003d2.1.0,\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":8,"context_line":"SQLAlchemy!\u003d1.1.5,!\u003d1.1.6,!\u003d1.1.7,!\u003d1.1.8,\u003e\u003d1.0.10 # MIT"},{"line_number":9,"context_line":"SQLAlchemy-Utils"},{"line_number":10,"context_line":"Babel!\u003d2.4.0,\u003e\u003d2.3.4 # BSD"},{"line_number":11,"context_line":"futurist\u003e\u003d1.2.0 # Apache-2.0"},{"line_number":12,"context_line":"requests\u003e\u003d2.14.2 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":60,"id":"3fa7e38b_d668a289","line":9,"updated":"2019-11-27 01:50:37.000000000","message":"This must have a lower bound. Set it to the lowest value that supports the functions you are using.","commit_id":"d5468bcb98a3314b0449e29b61ec7b1ba0d5ae55"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"381a2c057590c48d7d88918c5636f8d9acc49abe","unresolved":false,"context_lines":[{"line_number":6,"context_line":"pecan!\u003d1.0.2,!\u003d1.0.3,!\u003d1.0.4,!\u003d1.2,\u003e\u003d1.0.0 # BSD"},{"line_number":7,"context_line":"pbr!\u003d2.1.0,\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":8,"context_line":"SQLAlchemy!\u003d1.1.5,!\u003d1.1.6,!\u003d1.1.7,!\u003d1.1.8,\u003e\u003d1.0.10 # MIT"},{"line_number":9,"context_line":"SQLAlchemy-Utils"},{"line_number":10,"context_line":"Babel!\u003d2.4.0,\u003e\u003d2.3.4 # BSD"},{"line_number":11,"context_line":"futurist\u003e\u003d1.2.0 # Apache-2.0"},{"line_number":12,"context_line":"requests\u003e\u003d2.14.2 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":60,"id":"3fa7e38b_ec8ce681","line":9,"in_reply_to":"3fa7e38b_d668a289","updated":"2019-11-27 17:47:52.000000000","message":"Will use lower version from taskflow requirement.","commit_id":"d5468bcb98a3314b0449e29b61ec7b1ba0d5ae55"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"84c0282febb0ac359068ccb1d8f909c78a6653d9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"ipaddress\u003e\u003d1.0.17;python_version\u003c\u00273.3\u0027 # PSF"},{"line_number":59,"context_line":"cryptography\u003e\u003d2.1 # BSD/Apache-2.0"},{"line_number":60,"context_line":"pyroute2\u003e\u003d0.4.21;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"},{"line_number":61,"context_line":"gunicorn\u003e\u003d19.9.0 # MIT"},{"line_number":62,"context_line":"Werkzeug\u003e\u003d0.14.1 # BSD License"}],"source_content_type":"text/plain","patch_set":60,"id":"3fa7e38b_9629ca3b","line":61,"updated":"2019-11-27 01:53:56.000000000","message":"global requirements has changed this format, you you will need to as well.\ngunicorn\u003e\u003d19.9.0;python_version\u003c\u00273.0\u0027 # MIT\ngunicorn\u003e\u003d20.0.0;python_version\u003e\u003d\u00273.0\u0027  # MIT","commit_id":"d5468bcb98a3314b0449e29b61ec7b1ba0d5ae55"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"381a2c057590c48d7d88918c5636f8d9acc49abe","unresolved":false,"context_lines":[{"line_number":58,"context_line":"ipaddress\u003e\u003d1.0.17;python_version\u003c\u00273.3\u0027 # PSF"},{"line_number":59,"context_line":"cryptography\u003e\u003d2.1 # BSD/Apache-2.0"},{"line_number":60,"context_line":"pyroute2\u003e\u003d0.4.21;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"},{"line_number":61,"context_line":"gunicorn\u003e\u003d19.9.0 # MIT"},{"line_number":62,"context_line":"Werkzeug\u003e\u003d0.14.1 # BSD License"}],"source_content_type":"text/plain","patch_set":60,"id":"3fa7e38b_6ceeb622","line":61,"in_reply_to":"3fa7e38b_9629ca3b","updated":"2019-11-27 17:47:52.000000000","message":"Done","commit_id":"d5468bcb98a3314b0449e29b61ec7b1ba0d5ae55"}],"zuul.d/jobs.yaml":[{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"2105cfc69a3d12dcdbcafff97f2002e897c04c94","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    parent: octavia-v2-dsvm-scenario"},{"line_number":71,"context_line":"    vars:"},{"line_number":72,"context_line":"      devstack_local_conf:"},{"line_number":73,"context_line":"        OCTAVIA_ENABLE_AMPHORAV2_PROVIDER: True"},{"line_number":74,"context_line":"        OCTAVIA_JOBBOARD_EXPIRATION_TIME: 100"},{"line_number":75,"context_line":"        post-config:"},{"line_number":76,"context_line":"          $OCTAVIA_CONF:"},{"line_number":77,"context_line":"            api_settings:"}],"source_content_type":"text/x-yaml","patch_set":103,"id":"df33271e_ca173345","line":74,"range":{"start_line":73,"start_character":8,"end_line":74,"end_character":45},"updated":"2020-04-08 09:32:35.000000000","message":"I think these need to be in devstack_localrc. See https://github.com/openstack/octavia-tempest-plugin/blob/master/zuul.d/jobs.yaml#L51-L53 as an example.","commit_id":"4e9c6748cae058174a32e37593c9bbc12e038d56"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"376720c40ea1b663af435fe9947ed86728f8f795","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    parent: octavia-v2-dsvm-scenario"},{"line_number":71,"context_line":"    vars:"},{"line_number":72,"context_line":"      devstack_local_conf:"},{"line_number":73,"context_line":"        OCTAVIA_ENABLE_AMPHORAV2_PROVIDER: True"},{"line_number":74,"context_line":"        OCTAVIA_JOBBOARD_EXPIRATION_TIME: 100"},{"line_number":75,"context_line":"        post-config:"},{"line_number":76,"context_line":"          $OCTAVIA_CONF:"},{"line_number":77,"context_line":"            api_settings:"}],"source_content_type":"text/x-yaml","patch_set":103,"id":"df33271e_6a8387cd","line":74,"range":{"start_line":73,"start_character":8,"end_line":74,"end_character":45},"in_reply_to":"df33271e_ca173345","updated":"2020-04-08 10:01:03.000000000","message":"Thanks! I was not sure about it.","commit_id":"4e9c6748cae058174a32e37593c9bbc12e038d56"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"79e2a13a218431e3e1fa0d3aede06ea1de1b119f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    name: octavia-v2-dsvm-scenario-amphora-v2"},{"line_number":70,"context_line":"    parent: octavia-v2-dsvm-scenario"},{"line_number":71,"context_line":"    vars:"},{"line_number":72,"context_line":"      devstack_localrc:"},{"line_number":73,"context_line":"        OCTAVIA_ENABLE_AMPHORAV2_PROVIDER: True"},{"line_number":74,"context_line":"        OCTAVIA_JOBBOARD_EXPIRATION_TIME: 100"},{"line_number":75,"context_line":"      devstack_local_conf:"}],"source_content_type":"text/x-yaml","patch_set":104,"id":"df33271e_ca8d73d4","line":72,"updated":"2020-04-08 10:05:31.000000000","message":"Sorry to be a pain again, just noticed one other thing with setting devstack_localrc here. I think it will override DIB_LOCAL_ELEMENTS set in the parent job: https://opendev.org/openstack/octavia-tempest-plugin/src/branch/master/zuul.d/jobs.yaml#L146\n\nWe can wait for Zuul to run and double-check the devstack local.conf file.","commit_id":"a3a7f5c54d576b78b09b4642a1ff464525ac33db"}]}
