)]}'
{"octavia_tempest_plugin/common/constants.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"cfaba82055eba5bedcf944361b1f0b014d6e045a","unresolved":false,"context_lines":[{"line_number":294,"context_line":"test_server_binary \u003d \u0027/dev/shm/test_server.bin\u0027"},{"line_number":295,"context_line":"test_server_cert \u003d \u0027/dev/shm/cert.pem\u0027"},{"line_number":296,"context_line":"test_server_key \u003d \u0027/dev/shm/key.pem\u0027"},{"line_number":297,"context_line":"test_server_client_ca \u003d \u0027/dev/shm/client_ca.pem\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_d0cc5d63","line":297,"updated":"2020-10-28 19:18:33.000000000","message":"super nit: these are the only lower-case constants in the file...","commit_id":"238854811ec30379b982ded6aefdc62c053be0c9"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bba555cabfc7bc474a886eef7e191452ede0b188","unresolved":false,"context_lines":[{"line_number":294,"context_line":"test_server_binary \u003d \u0027/dev/shm/test_server.bin\u0027"},{"line_number":295,"context_line":"test_server_cert \u003d \u0027/dev/shm/cert.pem\u0027"},{"line_number":296,"context_line":"test_server_key \u003d \u0027/dev/shm/key.pem\u0027"},{"line_number":297,"context_line":"test_server_client_ca \u003d \u0027/dev/shm/client_ca.pem\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_c1cbf16f","line":297,"in_reply_to":"1f621f24_d0cc5d63","updated":"2020-10-28 22:33:04.000000000","message":"Friends don\u0027t let friends code after 6am PTG sessions. lol","commit_id":"238854811ec30379b982ded6aefdc62c053be0c9"}],"octavia_tempest_plugin/tests/test_base.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"4a16bf3e0588493fae16bf9756de45e29552ce18","unresolved":false,"context_lines":[{"line_number":1000,"context_line":"        with tempfile.TemporaryDirectory() as tmpdir:"},{"line_number":1001,"context_line":"            os.umask(0)"},{"line_number":1002,"context_line":"            files_to_send \u003d []"},{"line_number":1003,"context_line":"            cert_filename \u003d os.path.join(tmpdir, \u0027cert.pem\u0027)"},{"line_number":1004,"context_line":"            files_to_send.append(cert_filename)"},{"line_number":1005,"context_line":"            with open(os.open(cert_filename, os.O_CREAT | os.O_WRONLY,"},{"line_number":1006,"context_line":"                              0o700), \u0027w\u0027) as fh:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_26574405","line":1003,"range":{"start_line":1003,"start_character":49,"end_line":1003,"end_character":59},"updated":"2020-10-30 07:30:09.000000000","message":"Can we use a constant instead of this string?","commit_id":"a19ea35b4d2fb7f5d71fccdbecfb61107d1ffc4f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"5d0a4381ed527910433b669cabc8701d2fa7b5db","unresolved":false,"context_lines":[{"line_number":1000,"context_line":"        with tempfile.TemporaryDirectory() as tmpdir:"},{"line_number":1001,"context_line":"            os.umask(0)"},{"line_number":1002,"context_line":"            files_to_send \u003d []"},{"line_number":1003,"context_line":"            cert_filename \u003d os.path.join(tmpdir, \u0027cert.pem\u0027)"},{"line_number":1004,"context_line":"            files_to_send.append(cert_filename)"},{"line_number":1005,"context_line":"            with open(os.open(cert_filename, os.O_CREAT | os.O_WRONLY,"},{"line_number":1006,"context_line":"                              0o700), \u0027w\u0027) as fh:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_39cbde53","line":1003,"range":{"start_line":1003,"start_character":49,"end_line":1003,"end_character":59},"in_reply_to":"1f621f24_26574405","updated":"2020-10-30 15:45:45.000000000","message":"Usually, in tests, if it\u0027s only used once we don\u0027t bother with constants. This is for a secure temp file location only used inside this method. The final location I did create constants for as they might be reused.\nI can change the constants file though to split these out and double the number of constants.","commit_id":"a19ea35b4d2fb7f5d71fccdbecfb61107d1ffc4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"4a16bf3e0588493fae16bf9756de45e29552ce18","unresolved":false,"context_lines":[{"line_number":1007,"context_line":"                fh.write(cert.public_bytes("},{"line_number":1008,"context_line":"                    serialization.Encoding.PEM).decode(\u0027utf-8\u0027))"},{"line_number":1009,"context_line":"                fh.flush()"},{"line_number":1010,"context_line":"            key_filename \u003d os.path.join(tmpdir, \u0027key.pem\u0027)"},{"line_number":1011,"context_line":"            files_to_send.append(key_filename)"},{"line_number":1012,"context_line":"            with open(os.open(key_filename, os.O_CREAT | os.O_WRONLY,"},{"line_number":1013,"context_line":"                              0o700), \u0027w\u0027) as fh:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_065cc823","line":1010,"range":{"start_line":1010,"start_character":48,"end_line":1010,"end_character":57},"updated":"2020-10-30 07:30:09.000000000","message":"same","commit_id":"a19ea35b4d2fb7f5d71fccdbecfb61107d1ffc4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"4a16bf3e0588493fae16bf9756de45e29552ce18","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"                    encryption_algorithm\u003dserialization.NoEncryption()).decode("},{"line_number":1018,"context_line":"                        \u0027utf-8\u0027))"},{"line_number":1019,"context_line":"                fh.flush()"},{"line_number":1020,"context_line":"            client_ca_filename \u003d os.path.join(tmpdir, \u0027client_ca.pem\u0027)"},{"line_number":1021,"context_line":"            files_to_send.append(client_ca_filename)"},{"line_number":1022,"context_line":"            with open(os.open(client_ca_filename, os.O_CREAT | os.O_WRONLY,"},{"line_number":1023,"context_line":"                              0o700), \u0027w\u0027) as fh:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_66401c37","line":1020,"range":{"start_line":1020,"start_character":54,"end_line":1020,"end_character":69},"updated":"2020-10-30 07:30:09.000000000","message":"same","commit_id":"a19ea35b4d2fb7f5d71fccdbecfb61107d1ffc4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"4a16bf3e0588493fae16bf9756de45e29552ce18","unresolved":false,"context_lines":[{"line_number":1037,"context_line":"                CONF.load_balancer.scp_connection_timeout,"},{"line_number":1038,"context_line":"                CONF.load_balancer.scp_connection_attempts,"},{"line_number":1039,"context_line":"                ssh_key.name, cert_filename, key_filename, client_ca_filename,"},{"line_number":1040,"context_line":"                CONF.validation.image_ssh_user, ip_address, \u0027/dev/shm/\u0027)"},{"line_number":1041,"context_line":"            args \u003d shlex.split(cmd)"},{"line_number":1042,"context_line":"            proc \u003d subprocess.Popen(args, **subprocess_args)"},{"line_number":1043,"context_line":"            stdout, stderr \u003d proc.communicate()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_463d20ba","line":1040,"range":{"start_line":1040,"start_character":60,"end_line":1040,"end_character":71},"updated":"2020-10-30 07:30:09.000000000","message":"same","commit_id":"a19ea35b4d2fb7f5d71fccdbecfb61107d1ffc4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"41d021eb7c0331f0deb0adba0047453e7f3dd83a","unresolved":true,"context_lines":[{"line_number":1000,"context_line":"            files_to_send \u003d []"},{"line_number":1001,"context_line":"            cert_filename \u003d os.path.join(tmpdir, const.CERT_PEM)"},{"line_number":1002,"context_line":"            files_to_send.append(cert_filename)"},{"line_number":1003,"context_line":"            with open(os.open(cert_filename, os.O_CREAT | os.O_WRONLY,"},{"line_number":1004,"context_line":"                              0o700), \u0027w\u0027) as fh:"},{"line_number":1005,"context_line":"                fh.write(cert.public_bytes("},{"line_number":1006,"context_line":"                    serialization.Encoding.PEM).decode(\u0027utf-8\u0027))"},{"line_number":1007,"context_line":"                fh.flush()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5d10bae0_08fa0d72","line":1004,"range":{"start_line":1003,"start_character":17,"end_line":1004,"end_character":42},"updated":"2021-02-22 16:43:58.000000000","message":"I think I still don\u0027t understand these open(os.open()) calls.","commit_id":"bd2215d86ad2fc73d23ad35ce61b62bbdb3c4110"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ee63610bf23871b41f926526e4751ee3ecdd146f","unresolved":true,"context_lines":[{"line_number":1000,"context_line":"            files_to_send \u003d []"},{"line_number":1001,"context_line":"            cert_filename \u003d os.path.join(tmpdir, const.CERT_PEM)"},{"line_number":1002,"context_line":"            files_to_send.append(cert_filename)"},{"line_number":1003,"context_line":"            with open(os.open(cert_filename, os.O_CREAT | os.O_WRONLY,"},{"line_number":1004,"context_line":"                              0o700), \u0027w\u0027) as fh:"},{"line_number":1005,"context_line":"                fh.write(cert.public_bytes("},{"line_number":1006,"context_line":"                    serialization.Encoding.PEM).decode(\u0027utf-8\u0027))"},{"line_number":1007,"context_line":"                fh.flush()"}],"source_content_type":"text/x-python","patch_set":4,"id":"74ccd506_a3292242","line":1004,"range":{"start_line":1003,"start_character":17,"end_line":1004,"end_character":42},"in_reply_to":"5d10bae0_08fa0d72","updated":"2021-02-22 16:57:03.000000000","message":"The \u0027w\u0027 here means the file is truncated on open, so our writes below don\u0027t append to a file that may have existed from a previous test run.","commit_id":"bd2215d86ad2fc73d23ad35ce61b62bbdb3c4110"}]}
