)]}'
{"octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py":[{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"20d655ef1f71449613a02fc9133820a0d605c7e8","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        super(TLSWithBarbicanTest, cls).resource_setup()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # Create a CA self-signed cert and key"},{"line_number":107,"context_line":"        cls.ca_cert, cls.ca_key \u003d cert_utils.generate_ca_cert_and_key()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        LOG.debug(\u0027CA Cert: %s\u0027, cls.ca_cert.public_bytes("},{"line_number":110,"context_line":"            serialization.Encoding.PEM))"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_92fe6d69","line":107,"range":{"start_line":107,"start_character":21,"end_line":107,"end_character":24},"updated":"2020-11-18 13:45:13.000000000","message":"Just wondering why \"cls\" wasn\u0027t used in the past for \"ca_key\"?","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5752814792744ba018ee16f183980b73ac9d9c83","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        super(TLSWithBarbicanTest, cls).resource_setup()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # Create a CA self-signed cert and key"},{"line_number":107,"context_line":"        cls.ca_cert, cls.ca_key \u003d cert_utils.generate_ca_cert_and_key()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        LOG.debug(\u0027CA Cert: %s\u0027, cls.ca_cert.public_bytes("},{"line_number":110,"context_line":"            serialization.Encoding.PEM))"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_f5d50be7","line":107,"range":{"start_line":107,"start_character":21,"end_line":107,"end_character":24},"in_reply_to":"1f621f24_92fe6d69","updated":"2020-11-19 13:37:15.000000000","message":"Because ca_key was not used after this method, unlike ca_cert.","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"20d655ef1f71449613a02fc9133820a0d605c7e8","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                return False"},{"line_number":319,"context_line":"            return True"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        self._test_and_validate_certificate("},{"line_number":322,"context_line":"            ssl_method\u003dSSL.SSLv23_METHOD,"},{"line_number":323,"context_line":"            verify_method\u003d_verify_cb)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_326319b4","line":321,"range":{"start_line":321,"start_character":8,"end_line":321,"end_character":12},"updated":"2020-11-18 13:45:13.000000000","message":"As far as I know \"resource_setup\" is a classmethod (defined with classmethod decorator and includes (cls) for attributes).\n\nIt\u0027s not so clear to me why you are using \"self\" in Lines: 321-357 and not \"cls\", seems like Python was OK with that, but I don\u0027t understand what\u0027s the logic behind that :-(","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5752814792744ba018ee16f183980b73ac9d9c83","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                return False"},{"line_number":319,"context_line":"            return True"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        self._test_and_validate_certificate("},{"line_number":322,"context_line":"            ssl_method\u003dSSL.SSLv23_METHOD,"},{"line_number":323,"context_line":"            verify_method\u003d_verify_cb)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_0d3242f2","line":321,"range":{"start_line":321,"start_character":8,"end_line":321,"end_character":12},"in_reply_to":"1f621f24_326319b4","updated":"2020-11-19 13:37:15.000000000","message":"Well, basically I just did not want to change what was already there (where methods can be either classmethods or instance methods).\nApparently resource_setup is a classmethod by definition, as it should run only once.\nThe other tests are instance methods, I guess either the squad chose the tests to be instance methods or it is also by definition, I am not sure.","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9dfe2fed48d7129a03a5bcb040bb829133262c26","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                return False"},{"line_number":319,"context_line":"            return True"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        self._test_and_validate_certificate("},{"line_number":322,"context_line":"            ssl_method\u003dSSL.SSLv23_METHOD,"},{"line_number":323,"context_line":"            verify_method\u003d_verify_cb)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_8d5e32e4","line":321,"range":{"start_line":321,"start_character":8,"end_line":321,"end_character":12},"in_reply_to":"fffc6b78_0d3242f2","updated":"2020-11-19 13:46:24.000000000","message":"there is some confusion there, the current function is: def test_basic_tls_traffic(self)","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"20d655ef1f71449613a02fc9133820a0d605c7e8","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        # Test HTTP listener load balancing."},{"line_number":426,"context_line":"        self.check_members_balanced(self.lb_vip_address)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"        def _verify_cb(connection, x509, errno, errdepth, retcode):"},{"line_number":429,"context_line":"            \"\"\"Callback for certificate validation.\"\"\""},{"line_number":430,"context_line":"            # don\u0027t validate names of root certificates"},{"line_number":431,"context_line":"            if errdepth !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_32d67929","line":428,"range":{"start_line":428,"start_character":12,"end_line":428,"end_character":22},"updated":"2020-11-18 13:45:13.000000000","message":"Do we need it as inner function really? \n\n########################################\ndef test_mixed_http_https_traffic\n...\n...\n...\n    def _verify_cb\n#########################################\n    \nCan\u0027t we just define this function as other helper function we have outside of this test?","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5752814792744ba018ee16f183980b73ac9d9c83","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        # Test HTTP listener load balancing."},{"line_number":426,"context_line":"        self.check_members_balanced(self.lb_vip_address)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"        def _verify_cb(connection, x509, errno, errdepth, retcode):"},{"line_number":429,"context_line":"            \"\"\"Callback for certificate validation.\"\"\""},{"line_number":430,"context_line":"            # don\u0027t validate names of root certificates"},{"line_number":431,"context_line":"            if errdepth !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_55295ff0","line":428,"range":{"start_line":428,"start_character":12,"end_line":428,"end_character":22},"in_reply_to":"1f621f24_32d67929","updated":"2020-11-19 13:37:15.000000000","message":"I think that we can, I will change this. Thanks!","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"9dfe2fed48d7129a03a5bcb040bb829133262c26","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        # Test HTTP listener load balancing."},{"line_number":426,"context_line":"        self.check_members_balanced(self.lb_vip_address)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"        def _verify_cb(connection, x509, errno, errdepth, retcode):"},{"line_number":429,"context_line":"            \"\"\"Callback for certificate validation.\"\"\""},{"line_number":430,"context_line":"            # don\u0027t validate names of root certificates"},{"line_number":431,"context_line":"            if errdepth !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_0d6a427f","line":428,"range":{"start_line":428,"start_character":12,"end_line":428,"end_character":22},"in_reply_to":"1f621f24_55295ff0","updated":"2020-11-19 13:46:24.000000000","message":"no problem with adding nested function but that one is already defined in another test, so it would be great if you could avoid duplicating code.","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"44c1898b9cd82e100d036aa94eb597d7ba5276ba","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        # Test HTTP listener load balancing."},{"line_number":426,"context_line":"        self.check_members_balanced(self.lb_vip_address)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"        def _verify_cb(connection, x509, errno, errdepth, retcode):"},{"line_number":429,"context_line":"            \"\"\"Callback for certificate validation.\"\"\""},{"line_number":430,"context_line":"            # don\u0027t validate names of root certificates"},{"line_number":431,"context_line":"            if errdepth !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_e3b0ad8e","line":428,"range":{"start_line":428,"start_character":12,"end_line":428,"end_character":22},"in_reply_to":"fffc6b78_0d6a427f","updated":"2020-11-19 16:13:09.000000000","message":"Yes I agree, I will change it in the next patch set, thanks!","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"20d655ef1f71449613a02fc9133820a0d605c7e8","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                          \u0027OpenSSL verify errno {1}\u0027.format("},{"line_number":448,"context_line":"                              x509.get_subject().commonName, errno))"},{"line_number":449,"context_line":"                return False"},{"line_number":450,"context_line":"            return True"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        # Validate the certificate is signed by the ca_cert we created"},{"line_number":453,"context_line":"        self._test_and_validate_certificate("}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_9282edff","line":450,"range":{"start_line":450,"start_character":12,"end_line":450,"end_character":23},"updated":"2020-11-18 13:45:13.000000000","message":"Maybe just moving this return bellow the line: 444?","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5752814792744ba018ee16f183980b73ac9d9c83","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                          \u0027OpenSSL verify errno {1}\u0027.format("},{"line_number":448,"context_line":"                              x509.get_subject().commonName, errno))"},{"line_number":449,"context_line":"                return False"},{"line_number":450,"context_line":"            return True"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        # Validate the certificate is signed by the ca_cert we created"},{"line_number":453,"context_line":"        self._test_and_validate_certificate("}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_d53c4f32","line":450,"range":{"start_line":450,"start_character":12,"end_line":450,"end_character":23},"in_reply_to":"1f621f24_9282edff","updated":"2020-11-19 13:37:15.000000000","message":"I think that it will look more readable, I will change it, thanks.","commit_id":"c75f5167d3c35b4f1b6b5ffd5c7de207757480c1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1dfdb3b3c4092c761293ac4fd16284fb76bcc266","unresolved":true,"context_lines":[{"line_number":463,"context_line":"            return True"},{"line_number":464,"context_line":"        if errno \u003d\u003d 0:"},{"line_number":465,"context_line":"            received_cn \u003d x509.get_subject().commonName"},{"line_number":466,"context_line":"            received_name \u003d self._get_cert_name(received_cn)"},{"line_number":467,"context_line":"            expected_cn \u003d \u0027{}.example.com\u0027.format(name)"},{"line_number":468,"context_line":"            expected_name \u003d self._get_cert_name(name)"},{"line_number":469,"context_line":"            msg \u003d (\u0027ERROR: Received certificate \"{received_name}\" with CN \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"62f03495_31a7a3de","line":466,"updated":"2020-12-09 21:20:43.000000000","message":"This is now broken for the updated certs.","commit_id":"73ea432a21edb9d87da9b344587437bf8d6886a1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"ef753dc14011d9df89aa7f48ea20e346fac6a9f0","unresolved":true,"context_lines":[{"line_number":463,"context_line":"            return True"},{"line_number":464,"context_line":"        if errno \u003d\u003d 0:"},{"line_number":465,"context_line":"            received_cn \u003d x509.get_subject().commonName"},{"line_number":466,"context_line":"            received_name \u003d self._get_cert_name(received_cn)"},{"line_number":467,"context_line":"            expected_cn \u003d \u0027{}.example.com\u0027.format(name)"},{"line_number":468,"context_line":"            expected_name \u003d self._get_cert_name(name)"},{"line_number":469,"context_line":"            msg \u003d (\u0027ERROR: Received certificate \"{received_name}\" with CN \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ce4134ff_07395df2","line":466,"in_reply_to":"62f03495_31a7a3de","updated":"2020-12-13 10:16:11.000000000","message":"When I run it on my local environment I see the received_name clearly, but on Zuul/stable Stein I see that it returned as \"Unknown\". I am not sure what I can do here.","commit_id":"73ea432a21edb9d87da9b344587437bf8d6886a1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1dfdb3b3c4092c761293ac4fd16284fb76bcc266","unresolved":true,"context_lines":[{"line_number":529,"context_line":"        self._test_and_validate_certificate("},{"line_number":530,"context_line":"            ssl_method\u003dSSL.TLSv1_2_METHOD,"},{"line_number":531,"context_line":"            verify_method\u003dself._verify_SNI1_cb,"},{"line_number":532,"context_line":"            tls_ext_host_name\u003d\u0027{}.example.com\u0027.format(self.SNI1_uuid).encode())"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # Test that the SNI2 certificate is used when SNI2 host is specified"},{"line_number":535,"context_line":"        self._test_and_validate_certificate("}],"source_content_type":"text/x-python","patch_set":2,"id":"0dbafccc_76cf2356","line":532,"updated":"2020-12-09 21:20:43.000000000","message":"I suspect this \"encode()\" is the issue why the test fails on stable/stein as it is running under python2. I suspect the hostname encoding is different and thus the hostname SNI match in HAProxy fails.","commit_id":"73ea432a21edb9d87da9b344587437bf8d6886a1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"ef753dc14011d9df89aa7f48ea20e346fac6a9f0","unresolved":true,"context_lines":[{"line_number":529,"context_line":"        self._test_and_validate_certificate("},{"line_number":530,"context_line":"            ssl_method\u003dSSL.TLSv1_2_METHOD,"},{"line_number":531,"context_line":"            verify_method\u003dself._verify_SNI1_cb,"},{"line_number":532,"context_line":"            tls_ext_host_name\u003d\u0027{}.example.com\u0027.format(self.SNI1_uuid).encode())"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # Test that the SNI2 certificate is used when SNI2 host is specified"},{"line_number":535,"context_line":"        self._test_and_validate_certificate("}],"source_content_type":"text/x-python","patch_set":2,"id":"81157200_7c75af0b","line":532,"in_reply_to":"0dbafccc_76cf2356","updated":"2020-12-13 10:16:11.000000000","message":"Thanks Michael, I will take a look at it.","commit_id":"73ea432a21edb9d87da9b344587437bf8d6886a1"}]}
