)]}'
{"neutron/tests/contrib/george/build_container_images.sh":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"16aab6127e054bbfb4d95a6e3a4b9e14b6fa9036","unresolved":false,"context_lines":[{"line_number":9,"context_line":"BUILD_IMAGE_ERROR\u003d1"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"function get_container_reqs() {"},{"line_number":13,"context_line":"    $CONTRIB_DIR/get_container_reqs.sh $DOCKERFILE_SUFFIX"},{"line_number":14,"context_line":"    if [ $? -ne 0 ]; then"},{"line_number":15,"context_line":"        echo \"Running get_container_reqs failed!\" 1\u003e\u00262"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9f560f44_2dfb0e47","line":12,"updated":"2020-08-05 23:39:43.000000000","message":"pep8: E020 Function declaration not in format ^function name {$","commit_id":"009b614490a00cc90149204f47106abf46b6de92"}],"neutron/tests/contrib/george/containers/neutron-ovn-controller/neutron-ovn-controller.Dockerfile":[{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"3f8849296f77a21f976940f8ff4b7fd5c021f55a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"RUN alternatives --install /usr/bin/python python /usr/bin/python3.6 60"},{"line_number":10,"context_line":"RUN git clone --depth 1 --no-single-branch https://github.com/openvswitch/ovs.git"},{"line_number":11,"context_line":"RUN cd ovs \u0026\u0026 ./boot.sh \u0026\u0026 ./configure --prefix\u003d/usr --localstatedir\u003d/var \u0026\u0026 make -j 4"},{"line_number":12,"context_line":"RUN git clone --depth 1 --no-single-branch https://github.com/ovn-org/ovn.git"},{"line_number":13,"context_line":"RUN cd ovn \u0026\u0026 ./boot.sh \u0026\u0026 ./configure --prefix\u003d/usr --localstatedir\u003d/var --with-ovs-source\u003d/ovs \u0026\u0026 make -j 4 \u0026\u0026 make install"},{"line_number":14,"context_line":"RUN mkdir /var/run/ovn"},{"line_number":15,"context_line":"COPY containers/neutron-ovn-controller/start_services.sh /usr/bin/."}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"3fa7e38b_86cf7889","line":12,"updated":"2020-01-29 11:03:09.000000000","message":"is there something in cubeek we need merged into ovn-org?","commit_id":"31648c2877e2acbf1e6a3bfe9d3bc2836d5239ae"}],"neutron/tests/contrib/george/get_container_reqs.sh":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"1cba7971e5830dc0b24719ea77523ca6cd1fc449","unresolved":false,"context_lines":[{"line_number":7,"context_line":"cd \"$(dirname $0)\""},{"line_number":8,"context_line":"mkdir -p ./bin"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"../../../../tools/generate_dhclient_script_for_fullstack.sh \"$PWD\""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# Assuming everything went okay, there should a file in ./bin called"},{"line_number":13,"context_line":"# fullstack-dhclient-script. It will be needed by container to make"}],"source_content_type":"text/x-sh","patch_set":8,"id":"9f560f44_910cbe94","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":17},"updated":"2020-08-10 14:04:13.000000000","message":"We need to know the Neutron dir in multiple places now, I\u0027m thinking about introducing a NEUTRON_DIR variable, like in my WIP here: https://github.com/cubeek/neutron/blob/george/neutron/tests/contrib/george/build_container_images.sh#L5","commit_id":"a889fe1333eaf357fe789ad898822e4685b6584a"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"52c23cb3dee40b9325b84fd41bfcbd1597ed8cc3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"cd \"$(dirname $0)\""},{"line_number":8,"context_line":"mkdir -p ./bin"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"../../../../tools/generate_dhclient_script_for_fullstack.sh \"$PWD\""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# Assuming everything went okay, there should a file in ./bin called"},{"line_number":13,"context_line":"# fullstack-dhclient-script. It will be needed by container to make"}],"source_content_type":"text/x-sh","patch_set":8,"id":"9f560f44_8c7ca572","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":17},"in_reply_to":"9f560f44_910cbe94","updated":"2020-08-10 14:28:50.000000000","message":"sounds good. I don\u0027t like all these dots. ;)","commit_id":"a889fe1333eaf357fe789ad898822e4685b6584a"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"cb45ce1810a2b50fda851aadecfd05d0200fc838","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"NEUTRON_DIR\u003d${NEUTRON_DIR:-$(dirname $(dirname $(dirname $(dirname $(dirname $(realpath $0))))))}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"set -o errexit"},{"line_number":6,"context_line":"#set -o xtrace"}],"source_content_type":"text/x-sh","patch_set":9,"id":"9f560f44_eca561a0","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":97},"updated":"2020-08-10 14:46:21.000000000","message":"TODO: this is probably not needed here; and we can have this script bail if NEUTRON_DIR is not set.","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"}],"neutron/tests/george/resources/machine.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"746ebe409b21eb7f101f5d586e9ef065ce01e7d4","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def wait_until_boot(self):"},{"line_number":63,"context_line":"        iface_name \u003d \u0027tap-%s\u0027 % self.neutron_port[\u0027id\u0027][:11]"},{"line_number":64,"context_line":"        def is_ready():"},{"line_number":65,"context_line":"            if not self.neutron_port:"},{"line_number":66,"context_line":"                return False"},{"line_number":67,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2e07ad1a","line":64,"updated":"2020-08-04 03:19:38.000000000","message":"pep8: E306 expected 1 blank line before a nested definition, found 0","commit_id":"94f8a5737bdca5fbccd5021ea372a9b7ad8090c1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ad903e973008cca1efc9299aac03bd1b90e4039c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class FakeMachine(machine_fixtures.FakeMachineBase):"},{"line_number":23,"context_line":"    NO_RESOLV_CONF_DHCLIENT_SCRIPT_PATH \u003d \"/usr/bin/fullstack-dhclient-script\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def __init__(self, host, network_id, tenant_id, n_client):"},{"line_number":26,"context_line":"        self.host \u003d host"},{"line_number":27,"context_line":"        self.network_id \u003d network_id"},{"line_number":28,"context_line":"        self.tenant_id \u003d tenant_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_63d21b02","line":25,"updated":"2020-08-26 08:43:13.000000000","message":"shouldn\u0027t You add flag like \"use_dhcp\" here to allow also using vms with static IP configuration when dhcp is not available?","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"7104b594a943f470d051227057a2c6567ba1b35f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class FakeMachine(machine_fixtures.FakeMachineBase):"},{"line_number":23,"context_line":"    NO_RESOLV_CONF_DHCLIENT_SCRIPT_PATH \u003d \"/usr/bin/fullstack-dhclient-script\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def __init__(self, host, network_id, tenant_id, n_client):"},{"line_number":26,"context_line":"        self.host \u003d host"},{"line_number":27,"context_line":"        self.network_id \u003d network_id"},{"line_number":28,"context_line":"        self.tenant_id \u003d tenant_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_2b9d4857","line":25,"in_reply_to":"9f560f44_63d21b02","updated":"2020-09-01 08:52:50.000000000","message":"Good idea. Will do.","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ad903e973008cca1efc9299aac03bd1b90e4039c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if not self.neutron_port:"},{"line_number":67,"context_line":"                return False"},{"line_number":68,"context_line":"            try:"},{"line_number":69,"context_line":"                self.execute([\u0027ip\u0027, \u0027l\u0027, \u0027show\u0027, iface_name])"},{"line_number":70,"context_line":"                return True"},{"line_number":71,"context_line":"            except n_lib_e.ProcessExecutionError:"},{"line_number":72,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_a3aa736d","line":69,"updated":"2020-08-26 08:43:13.000000000","message":"in fullstack we are testing if vm is booted by checking port status in neutron db.\nDon\u0027t we need something like that here too?","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"7104b594a943f470d051227057a2c6567ba1b35f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if not self.neutron_port:"},{"line_number":67,"context_line":"                return False"},{"line_number":68,"context_line":"            try:"},{"line_number":69,"context_line":"                self.execute([\u0027ip\u0027, \u0027l\u0027, \u0027show\u0027, iface_name])"},{"line_number":70,"context_line":"                return True"},{"line_number":71,"context_line":"            except n_lib_e.ProcessExecutionError:"},{"line_number":72,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_6ba740a9","line":69,"in_reply_to":"9f560f44_a3aa736d","updated":"2020-09-01 08:52:50.000000000","message":"Sounds reasonable. Will work with Kuba on that.","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ad903e973008cca1efc9299aac03bd1b90e4039c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            exception\u003dException(\"VM didn\u0027t get created neutron port in time\"))"},{"line_number":77,"context_line":"        self.execute([\u0027ip\u0027, \u0027l\u0027, \u0027s\u0027, iface_name, \u0027up\u0027])"},{"line_number":78,"context_line":"        # self.execute([\u0027ip\u0027, \u0027a\u0027, \u0027a\u0027, \u0027%s/24\u0027 % self.ip_address,"},{"line_number":79,"context_line":"        #               \u0027dev\u0027, iface_name])"},{"line_number":80,"context_line":"        self.execute([\"dhclient\","},{"line_number":81,"context_line":"                      \u0027-sf\u0027, self.NO_RESOLV_CONF_DHCLIENT_SCRIPT_PATH,"},{"line_number":82,"context_line":"                      \u0027--no-pid\u0027, \u0027-1\u0027, \u0027--timeout\u0027, \u002760\u0027, iface_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_4391d751","line":79,"updated":"2020-08-26 08:43:13.000000000","message":"why this is commented? Do we need to have it here?","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"7104b594a943f470d051227057a2c6567ba1b35f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            exception\u003dException(\"VM didn\u0027t get created neutron port in time\"))"},{"line_number":77,"context_line":"        self.execute([\u0027ip\u0027, \u0027l\u0027, \u0027s\u0027, iface_name, \u0027up\u0027])"},{"line_number":78,"context_line":"        # self.execute([\u0027ip\u0027, \u0027a\u0027, \u0027a\u0027, \u0027%s/24\u0027 % self.ip_address,"},{"line_number":79,"context_line":"        #               \u0027dev\u0027, iface_name])"},{"line_number":80,"context_line":"        self.execute([\"dhclient\","},{"line_number":81,"context_line":"                      \u0027-sf\u0027, self.NO_RESOLV_CONF_DHCLIENT_SCRIPT_PATH,"},{"line_number":82,"context_line":"                      \u0027--no-pid\u0027, \u0027-1\u0027, \u0027--timeout\u0027, \u002760\u0027, iface_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_eb9b5063","line":79,"in_reply_to":"9f560f44_4391d751","updated":"2020-09-01 08:52:50.000000000","message":"That is how we configure the address statically. I\u0027m going to hook this with the use_dhcp flag you suggested in line 25.","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ad903e973008cca1efc9299aac03bd1b90e4039c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        #               \u0027dev\u0027, iface_name])"},{"line_number":80,"context_line":"        self.execute([\"dhclient\","},{"line_number":81,"context_line":"                      \u0027-sf\u0027, self.NO_RESOLV_CONF_DHCLIENT_SCRIPT_PATH,"},{"line_number":82,"context_line":"                      \u0027--no-pid\u0027, \u0027-1\u0027, \u0027--timeout\u0027, \u002760\u0027, iface_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_c3bcc7bc","line":82,"updated":"2020-08-26 08:43:13.000000000","message":"shouldn\u0027t we add some wait until this IP address will be really configured inside the vm? That may help us with debugging issues later.","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"7104b594a943f470d051227057a2c6567ba1b35f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        #               \u0027dev\u0027, iface_name])"},{"line_number":80,"context_line":"        self.execute([\"dhclient\","},{"line_number":81,"context_line":"                      \u0027-sf\u0027, self.NO_RESOLV_CONF_DHCLIENT_SCRIPT_PATH,"},{"line_number":82,"context_line":"                      \u0027--no-pid\u0027, \u0027-1\u0027, \u0027--timeout\u0027, \u002760\u0027, iface_name])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_cb8c8c30","line":82,"in_reply_to":"9f560f44_c3bcc7bc","updated":"2020-09-01 08:52:50.000000000","message":"Yes. In fact, we wait up to 60 seconds for the address to be obtained, due to the \u0027-1\u0027 flag. If that fails, the execute\nwill line will cause the test to fail.","commit_id":"5c303a9d1d5d5ec0a9a9e2220498929ee27858b6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0a37ffc3a9e91a93d0b9a7eaa34102b1770ba0a","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def wait_until_boot(self):"},{"line_number":64,"context_line":"        iface_name \u003d \u0027tap-%s\u0027 % self.neutron_port[\u0027id\u0027][:11]"},{"line_number":65,"context_line":"        def is_ready():"},{"line_number":66,"context_line":"            if not self.neutron_port:"},{"line_number":67,"context_line":"                return False"},{"line_number":68,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_c529189c","line":65,"updated":"2020-09-01 00:29:49.000000000","message":"pep8: E306 expected 1 blank line before a nested definition, found 0","commit_id":"6d372653e35eeeaed7eaf4e08f78ffd4afb05b6e"}],"tools/configure_for_func_testing.sh":[{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"6d45d887b9acc002836da6602a76459490076c21","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    PACKAGES\u003d$(echo $PACKAGES | perl -pe \u0027s|python-(?!dev)[^ ]*||g\u0027)"},{"line_number":106,"context_line":"    install_package $PACKAGES"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    #NEUTRON_PATH\u003d${NEUTRON_PATH:-.}"},{"line_number":109,"context_line":"    #source $NEUTRON_PATH/devstack/lib/ovs"},{"line_number":110,"context_line":"    #remove_ovs_packages"},{"line_number":111,"context_line":"    #OVS_BRANCH\u003d\"v2.12.0\""},{"line_number":112,"context_line":"    #compile_ovs False /usr /var"},{"line_number":113,"context_line":"}"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"3fa7e38b_91d81751","line":112,"range":{"start_line":108,"start_character":4,"end_line":112,"end_character":32},"updated":"2020-01-28 23:34:37.000000000","message":"Not needed. If that is not the case, special care needs\nto be applied in getting NEUTRON_PATH and compile_ovs\nrunning properly.","commit_id":"3eeb7654214d37e9e4d65c7e72a325aa0dff6458"}]}
