)]}'
{"octavia_tempest_plugin/common/constants.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"628fb10110773fcfb5f3c946dc27547ceafaa3e2","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"# Other constants"},{"line_number":86,"context_line":"ACTIVE \u003d \u0027ACTIVE\u0027"},{"line_number":87,"context_line":"PENDING_UPDATE \u003d \u0027PENDING_UPDATE\u0027"},{"line_number":88,"context_line":"ADMIN_STATE_UP_TRUE \u003d \u0027true\u0027"},{"line_number":89,"context_line":"ASC \u003d \u0027asc\u0027"},{"line_number":90,"context_line":"DELETED \u003d \u0027DELETED\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3fce034c_cbcf5f7d","line":87,"updated":"2019-04-16 07:21:04.000000000","message":"Why don\u0027t we literally just have a section for \"statuses\" and include all of them? Is having a few possibly unused constants defined so bad? Did we have this before and they were removed or something? It looks like this is  just a muddled collection of the statuses anyway (both provisioning and operating) along with a few sort parameters...","commit_id":"c2e1216e8ec8a50fd8d4ea5b7a05a0805e8b5965"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"168194e648989200cdd856d6a40ac3bb65930d4c","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"# Other constants"},{"line_number":86,"context_line":"ACTIVE \u003d \u0027ACTIVE\u0027"},{"line_number":87,"context_line":"PENDING_UPDATE \u003d \u0027PENDING_UPDATE\u0027"},{"line_number":88,"context_line":"ADMIN_STATE_UP_TRUE \u003d \u0027true\u0027"},{"line_number":89,"context_line":"ASC \u003d \u0027asc\u0027"},{"line_number":90,"context_line":"DELETED \u003d \u0027DELETED\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3fce034c_f48a1a19","line":87,"in_reply_to":"3fce034c_cbcf5f7d","updated":"2019-04-17 11:27:16.000000000","message":"Like having SUPPORTED_OPERATING_STATUSES and SUPPORTED_PROVISIONING_STATUSES (https://github.com/openstack/octavia-lib/blob/master/octavia_lib/common/constants.py) also here? What would be the benefit in having that if we don\u0027t require it today?","commit_id":"c2e1216e8ec8a50fd8d4ea5b7a05a0805e8b5965"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"697a9ca8e679269502ae572b798dc9e58bb95115","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"# Other constants"},{"line_number":86,"context_line":"ACTIVE \u003d \u0027ACTIVE\u0027"},{"line_number":87,"context_line":"PENDING_UPDATE \u003d \u0027PENDING_UPDATE\u0027"},{"line_number":88,"context_line":"ADMIN_STATE_UP_TRUE \u003d \u0027true\u0027"},{"line_number":89,"context_line":"ASC \u003d \u0027asc\u0027"},{"line_number":90,"context_line":"DELETED \u003d \u0027DELETED\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3fce034c_72e1452a","line":87,"in_reply_to":"3fce034c_f48a1a19","updated":"2019-04-18 09:34:00.000000000","message":"... Yes.\nUgh. It just looks ugly like this, listing like 2 or 3 random statuses in an \"Other\" section, along with \"sorting\" vars that could also be in their own named section... It\u0027s just not tidy.\n\nThis section does not spark joy.","commit_id":"c2e1216e8ec8a50fd8d4ea5b7a05a0805e8b5965"}],"octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"86725ca4fc3ed3edf866d1d5aeceb70046b582e7","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        with open(key_file, \u0027r\u0027) as f:"},{"line_number":235,"context_line":"            return f.read()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027deab2b3f-62c7-4a05-9e92-aa45a04773fd\u0027)"},{"line_number":238,"context_line":"    def test_active_standby_vrrp_failover(self):"},{"line_number":239,"context_line":"        \"\"\"Tests active/standby VRRP failover"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5fc1f717_a624570e","line":237,"updated":"2019-04-05 22:03:24.000000000","message":"@testtools.skipIf(CONF.load_balancer.test_with_noop,\n                      \u0027Active/Standby tests will not work in noop mode.\u0027)","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"d60330df5ad630c8a8fba38d1410ddf659f1da34","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        with open(key_file, \u0027r\u0027) as f:"},{"line_number":235,"context_line":"            return f.read()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027deab2b3f-62c7-4a05-9e92-aa45a04773fd\u0027)"},{"line_number":238,"context_line":"    def test_active_standby_vrrp_failover(self):"},{"line_number":239,"context_line":"        \"\"\"Tests active/standby VRRP failover"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5fc1f717_c6e5e3a5","line":237,"in_reply_to":"5fc1f717_a624570e","updated":"2019-04-05 22:11:55.000000000","message":"Done","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"86725ca4fc3ed3edf866d1d5aeceb70046b582e7","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        self.check_members_balanced(self.lb_vip_address)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        # Which amphora is the active?"},{"line_number":265,"context_line":"        active, _ \u003d self._get_active_standby_amps(amps, \u0027ACTSTBY-1\u0027)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # Delete active amphora"},{"line_number":268,"context_line":"        self.os_admin_servers_client.delete_server(active[const.COMPUTE_ID])"}],"source_content_type":"text/x-python","patch_set":20,"id":"5fc1f717_e699ff6c","line":265,"range":{"start_line":265,"start_character":16,"end_line":265,"end_character":17},"updated":"2019-04-05 22:03:24.000000000","message":"This is a bad practice as _ is used for i18n as well. It\u0027s better to do:\nactive \u003d self._get_active_standby_amps(amps, \u0027ACTSTBY-1\u0027)[0]\nhttps://github.com/openstack/octavia/blob/master/octavia/i18n.py#L20","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"d60330df5ad630c8a8fba38d1410ddf659f1da34","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        self.check_members_balanced(self.lb_vip_address)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        # Which amphora is the active?"},{"line_number":265,"context_line":"        active, _ \u003d self._get_active_standby_amps(amps, \u0027ACTSTBY-1\u0027)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # Delete active amphora"},{"line_number":268,"context_line":"        self.os_admin_servers_client.delete_server(active[const.COMPUTE_ID])"}],"source_content_type":"text/x-python","patch_set":20,"id":"5fc1f717_a600d735","line":265,"range":{"start_line":265,"start_character":16,"end_line":265,"end_character":17},"in_reply_to":"5fc1f717_e699ff6c","updated":"2019-04-05 22:11:55.000000000","message":"Done","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"86725ca4fc3ed3edf866d1d5aeceb70046b582e7","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        # Wait for the load balancer to return to ACTIVE so the"},{"line_number":281,"context_line":"        # cleanup steps will pass"},{"line_number":282,"context_line":"        waiters.wait_for_status("},{"line_number":283,"context_line":"            self.mem_lb_client.show_loadbalancer,"},{"line_number":284,"context_line":"            self.lb_id, const.PROVISIONING_STATUS,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5fc1f717_46725314","line":281,"range":{"start_line":281,"start_character":10,"end_line":281,"end_character":33},"updated":"2019-04-05 22:03:24.000000000","message":"nit: Not sure this comment is valid in this test.","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"d60330df5ad630c8a8fba38d1410ddf659f1da34","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        # Wait for the load balancer to return to ACTIVE so the"},{"line_number":281,"context_line":"        # cleanup steps will pass"},{"line_number":282,"context_line":"        waiters.wait_for_status("},{"line_number":283,"context_line":"            self.mem_lb_client.show_loadbalancer,"},{"line_number":284,"context_line":"            self.lb_id, const.PROVISIONING_STATUS,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5fc1f717_e69fbfff","line":281,"range":{"start_line":281,"start_character":10,"end_line":281,"end_character":33},"in_reply_to":"5fc1f717_46725314","updated":"2019-04-05 22:11:55.000000000","message":"Done","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"}],"playbooks/act_stby_iptables/pre.yaml":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"86725ca4fc3ed3edf866d1d5aeceb70046b582e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- hosts: all"},{"line_number":2,"context_line":"  name: Octavia DSVM jobs pre-run playbook"},{"line_number":3,"context_line":"  tasks:"},{"line_number":4,"context_line":"    - name: Generate Octavia RSA key"},{"line_number":5,"context_line":"      shell: ssh-keygen -t rsa -f /tmp/octavia_ssh_key -q -N \"\""}],"source_content_type":"text/x-yaml","patch_set":20,"id":"5fc1f717_86f91b81","line":2,"updated":"2019-04-05 22:03:24.000000000","message":"It might be nice to have a comment here that explains why this is necessary as a pre playbook and not just part of the test setup.","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"86725ca4fc3ed3edf866d1d5aeceb70046b582e7","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  name: Octavia DSVM jobs pre-run playbook"},{"line_number":3,"context_line":"  tasks:"},{"line_number":4,"context_line":"    - name: Generate Octavia RSA key"},{"line_number":5,"context_line":"      shell: ssh-keygen -t rsa -f /tmp/octavia_ssh_key -q -N \"\""},{"line_number":6,"context_line":"    - name: Allow read permissions to other users"},{"line_number":7,"context_line":"      file:"},{"line_number":8,"context_line":"        path: /tmp/octavia_ssh_key"}],"source_content_type":"text/x-yaml","patch_set":20,"id":"5fc1f717_260b878e","line":5,"updated":"2019-04-05 22:03:24.000000000","message":"Should we be using the openssh_keypair module instead?\nhttps://docs.ansible.com/ansible/devel/modules/openssh_keypair_module.html","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"f95d04b86eb5fb8bf96a488ed42c29859f8dc939","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  name: Octavia DSVM jobs pre-run playbook"},{"line_number":3,"context_line":"  tasks:"},{"line_number":4,"context_line":"    - name: Generate Octavia RSA key"},{"line_number":5,"context_line":"      shell: ssh-keygen -t rsa -f /tmp/octavia_ssh_key -q -N \"\""},{"line_number":6,"context_line":"    - name: Allow read permissions to other users"},{"line_number":7,"context_line":"      file:"},{"line_number":8,"context_line":"        path: /tmp/octavia_ssh_key"}],"source_content_type":"text/x-yaml","patch_set":20,"id":"5fc1f717_8676fbd7","line":5,"in_reply_to":"5fc1f717_260b878e","updated":"2019-04-05 22:20:05.000000000","message":"I wish. \"New in version 2.8.\"","commit_id":"48130d0f12e2b619c76f15e7323bd357d333ca8e"}],"zuul.d/jobs.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"01651133bf20cb0a76fc53bd470831e040b9926e","unresolved":false,"context_lines":[{"line_number":408,"context_line":"      tempest_test_regex: ^octavia_tempest_plugin.tests.act_stdby_scenario.v2.test_active_standby_iptables"},{"line_number":409,"context_line":"      tox_envlist: all"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"- job:"},{"line_number":412,"context_line":"    name: octavia-v2-act-stdby-dsvm-py2-scenario"},{"line_number":413,"context_line":"    parent: octavia-v2-act-stdby-dsvm-scenario"},{"line_number":414,"context_line":"    vars:"},{"line_number":415,"context_line":"      devstack_localrc:"},{"line_number":416,"context_line":"        USE_PYTHON3: False"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"- job:"},{"line_number":419,"context_line":"    name: octavia-v2-act-stdby-dsvm-py2-scenario-centos-7"},{"line_number":420,"context_line":"    parent: octavia-v2-act-stdby-dsvm-py2-scenario"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fdfeff1_a181b7c5","line":417,"range":{"start_line":411,"start_character":2,"end_line":417,"end_character":0},"updated":"2019-02-24 22:01:13.000000000","message":"Job octavia-v2-act-stdby-dsvm-scenario not defined","commit_id":"d2667352c6c0ffef487af44c3e64968a974d5609"}],"zuul.d/projects.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"01651133bf20cb0a76fc53bd470831e040b9926e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Note: Some official OpenStack wide jobs are still defined in the"},{"line_number":2,"context_line":"#       project-config repository"},{"line_number":3,"context_line":"- project:"},{"line_number":4,"context_line":"    templates:"},{"line_number":5,"context_line":"      - check-requirements"},{"line_number":6,"context_line":"      - publish-openstack-docs-pti"},{"line_number":7,"context_line":"      - tempest-plugin-jobs"},{"line_number":8,"context_line":"    check:"},{"line_number":9,"context_line":"      jobs:"},{"line_number":10,"context_line":"        # - octavia-v2-dsvm-noop-api"},{"line_number":11,"context_line":"        # - octavia-v2-dsvm-noop-py2-api"},{"line_number":12,"context_line":"        # - octavia-v2-dsvm-noop-py2-api-stable-rocky"},{"line_number":13,"context_line":"        # - octavia-v2-dsvm-noop-py2-api-stable-queens"},{"line_number":14,"context_line":"        # - octavia-v2-dsvm-scenario"},{"line_number":15,"context_line":"        # - octavia-v2-dsvm-py2-scenario"},{"line_number":16,"context_line":"        # - octavia-v2-dsvm-py2-scenario-stable-rocky"},{"line_number":17,"context_line":"        # - octavia-v2-dsvm-py2-scenario-stable-queens"},{"line_number":18,"context_line":"        # - octavia-v2-dsvm-scenario-centos-7:"},{"line_number":19,"context_line":"        #     voting: false"},{"line_number":20,"context_line":"        # - octavia-v2-dsvm-scenario-ubuntu-bionic:"},{"line_number":21,"context_line":"        #     voting: false"},{"line_number":22,"context_line":"        # - octavia-v2-dsvm-scenario-two-node:"},{"line_number":23,"context_line":"        #     voting: false"},{"line_number":24,"context_line":"        # - octavia-v2-dsvm-py2-scenario-two-node:"},{"line_number":25,"context_line":"        #     voting: false"},{"line_number":26,"context_line":"        - octavia-v2-act-stdby-iptables-dsvm-scenario:"},{"line_number":27,"context_line":"            voting: false"},{"line_number":28,"context_line":"        - octavia-v2-act-stdby-iptables-dsvm-py2-scenario:"},{"line_number":29,"context_line":"            voting: false"},{"line_number":30,"context_line":"        - octavia-v2-act-stdby-iptables-dsvm-py2-scenario-centos-7:"},{"line_number":31,"context_line":"            voting: false"},{"line_number":32,"context_line":"        - octavia-v2-act-stdby-iptables-dsvm-py2-scenario-stable-rocky:"},{"line_number":33,"context_line":"            voting: false"},{"line_number":34,"context_line":"        - octavia-v2-act-stdby-iptables-dsvm-py2-scenario-stable-queens:"},{"line_number":35,"context_line":"            voting: false"},{"line_number":36,"context_line":"        # - octavia-v2-dsvm-tls-barbican:"},{"line_number":37,"context_line":"            # voting: false"},{"line_number":38,"context_line":"    gate:"},{"line_number":39,"context_line":"      queue: octavia"},{"line_number":40,"context_line":"      jobs:"},{"line_number":41,"context_line":"        - octavia-v2-dsvm-noop-api"},{"line_number":42,"context_line":"        - octavia-v2-dsvm-noop-py2-api"},{"line_number":43,"context_line":"        - octavia-v2-dsvm-noop-py2-api-stable-rocky"},{"line_number":44,"context_line":"        - octavia-v2-dsvm-noop-py2-api-stable-queens"},{"line_number":45,"context_line":"        - octavia-v2-dsvm-scenario"},{"line_number":46,"context_line":"        - octavia-v2-dsvm-py2-scenario"},{"line_number":47,"context_line":"        - octavia-v2-dsvm-py2-scenario-stable-rocky"},{"line_number":48,"context_line":"        - octavia-v2-dsvm-py2-scenario-stable-queens"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fdfeff1_c184fbd5","line":48,"range":{"start_line":3,"start_character":2,"end_line":48,"end_character":0},"updated":"2019-02-24 22:01:13.000000000","message":"Job octavia-v2-act-stdby-iptables-dsvm-py2-scenario not defined","commit_id":"d2667352c6c0ffef487af44c3e64968a974d5609"}]}
