)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"84d2733d2b270ec403342624e4c3f30e8e5de220","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"ee9a8e11_4cc40fd8","updated":"2021-11-09 22:11:27.000000000","message":"recheck","commit_id":"fc454f6e236804a38b54f3518e20159cbcc07abd"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"113dc85d630bb6da1ec92b0da2d58604138d41bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"ff2187ab_e4b6925a","updated":"2021-11-08 16:27:12.000000000","message":"recheck","commit_id":"fc454f6e236804a38b54f3518e20159cbcc07abd"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7d1412563ef4d061dacea1060fb89c2e0eb336b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"2911bddd_66fae5fc","updated":"2021-11-13 22:24:38.000000000","message":"makes total sense, is there any patch using ecdsa keys yet?","commit_id":"b267a2b170ed60b2eb1180a95087d3206a8d4729"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"44bc4a2ee1a0bd2a34d1e72c3a93ed36067d6682","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"8e1d3ade_bda97ba1","in_reply_to":"2911bddd_66fae5fc","updated":"2021-11-17 20:00:04.000000000","message":"Yes - the fips jobs are -- \n\n-- https://review.opendev.org/c/openstack/octavia/+/798151\n-- https://review.opendev.org/c/openstack/cinder/+/790535\n-- https://review.opendev.org/c/openstack/nova/+/790519\n\nas examples.  Others in https://review.opendev.org/q/topic:%22add_fips_job%22+(status:open%20OR%20status:merged)","commit_id":"b267a2b170ed60b2eb1180a95087d3206a8d4729"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a11425d42f7b4e4139b146c8c25207212b830126","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"47217b1c_4d7451a8","updated":"2021-11-18 00:11:41.000000000","message":"direction lgtm but few comments inline.\n\nTwo more comment\n- please add release notes for this\n- Also do we have any job setup with ssh_key_type\u003decdsa so that we can see if that work or not from nova side?","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"2e29679a3994d772778f97ac15ecaf49db1e9954","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"37eea954_ab83f066","updated":"2021-11-17 20:02:46.000000000","message":"recheck","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1ea363e2eb7c53d17fe2bdcde00e1e52dcabdeab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1c691c31_bd642ede","updated":"2021-11-18 16:33:18.000000000","message":"will also add release note.\n\nand nova job is at : https://review.opendev.org/c/openstack/nova/+/790519\n\nspecifically:  https://review.opendev.org/c/openstack/nova/+/790519/15/.zuul.yaml#521","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"9e3ceafc07db4ad10a12a49cc3bcdbbb716cb433","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"0538ed47_c03dd971","updated":"2021-12-01 22:33:48.000000000","message":"recheck","commit_id":"497ad76209a12a266887ccdbd62253c207ae508b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"5494db9b0e72bd4119d17779844df502e0bd5f0b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"8d629729_607d8518","updated":"2021-12-21 15:17:50.000000000","message":"+2 as nova-centos8-stream-fips job is passing in a follow up patch and we can add nova-centos8-stream-with-ecdsa job to tempest in a follow up patch (and later also nova-centos8-stream-fips one)","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bfe505626088572a66e79d3ed35341d552ce51d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"f5291bc4_f6561626","updated":"2021-12-14 15:20:00.000000000","message":"also, I would like to see nova new job passing with the new key so that we can verify the tempest change - https://review.opendev.org/c/openstack/nova/+/790519","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c3eb388e010d06cbf6a69f3aeb39ba249aa436b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b30cfb8f_65780ff0","updated":"2021-12-13 11:05:22.000000000","message":"recheck","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"c9da6ab452583aa3cff3524abacb875a57a22aff","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":21,"id":"e757444d_dbbdb59e","in_reply_to":"18e7d769_40ad3d4b","updated":"2021-12-20 22:12:28.000000000","message":"Ok - so just trying to clarify what needs to happen here to have this merge.\n\nThe nova change 790519 has multiple dependencies in order to run nova under fips - specifically - \n -- this change to use ECDSA keys\n -- a change to add a parameter to skip certain tests when fips is enabled\n -- paramiko patch\n -- devstack change\n\nThis new config is only invoked in one job in that change - nova-centos8-stream-fips, and we can see that this job is passing - which means that the new key is working there.\n\nThe other jobs -- which use the old keys -- are for the most part passing.  The jobs that are failing are doing so for reasons entirely unrelated to tempest and the changes in this commit.\n\nSo, the nova job shows that the new code is working, and that the old code is still working.\n\nIt sounds, though, like you want to add a nova job to tempest to ensure that tempest changes in general do not break nova?  If so, feels like we could add a nova job here and we simply need:\n\n- job:\n    name: nova-centos8-stream-with-ecdsa\n    parent: devstack-tempest\n    description: |\n      Integration testing for Centos 8 system with ECDSA\n    nodeset: devstack-single-node-centos-8-stream\n    vars:\n      devstack_local_conf:\n        test-config:\n          \"$TEMPEST_CONFIG\":\n            validation:\n              ssh_key_type: \u0027ecdsa\u0027\n\nAdding a test that is FIPS enabled right now in tempest in problematic because of the paramiko issue.\n\nIs this what you had in mind?","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"d96454507068442bade3c28ec007d7095cd8df04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"41c4acbe_fc3d22ba","in_reply_to":"28dc18c8_65bcd596","updated":"2021-12-14 16:37:14.000000000","message":"oh, it\u0027s a circle, the nova job added by https://review.opendev.org/c/openstack/nova/+/790519 requires this and 2 dependent (see the relation chain) changes in tempest in order to work, one of which is a paramiko replacement .. so it seems we can\u0027t have a proper job (not yet) without merging this, i\u0027m gonna rebase the nova patch, so that we have fresh results","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e99fb5a35384d2c6ee70f213b619aec6d94bf196","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"18e7d769_40ad3d4b","in_reply_to":"41c4acbe_fc3d22ba","updated":"2021-12-14 16:40:56.000000000","message":"did not get,  is there any nova change we need to make it work. I think nova change 790519 is job configuration which we can do in tempest too. until I am not missing anything, I think tempest change and a new job in tempest does not need nova change right?","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e7e338b867c1064e2c2918543be9ce41f5406c18","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":21,"id":"c0089ace_55ef08f0","in_reply_to":"e757444d_dbbdb59e","updated":"2021-12-20 22:17:24.000000000","message":"Or -- are you looking for more tests in tempest/tests/lib/test_ssh.py for the case where the key is ecdsa?","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b088fefd082c29d410a48a7f47cb185dfd0327aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"28dc18c8_65bcd596","in_reply_to":"f5291bc4_f6561626","updated":"2021-12-14 15:21:17.000000000","message":"or it would be even better if you can add a job in tempest also so that we make sure changes work and we do not break them.","commit_id":"27d0b1060a2a4bdcbbb66ce43500587aeacc8e63"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c1c1bf4ba492a2c179f33457a4c6a2c91a33cdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"75f1b368_c31f1ca0","updated":"2022-01-04 22:06:30.000000000","message":"I am ok with changes as it is passing in nova patch and does not change default behavior. Few comments.","commit_id":"bc784aaaac6ba9409dd6f55c66cf934269fea63d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"565fa2e8ff545d10e081593a20ee077bb77b8b42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"214bc697_937a091b","updated":"2022-01-12 02:16:49.000000000","message":"as we are not going to add key generation in nova let\u0027s add the job as experimental in tempest gate itself https://review.opendev.org/c/openstack/nova/+/790519\n\nPlease name that as tempest-centos8-stream-fips and run in experimental queue.","commit_id":"bc784aaaac6ba9409dd6f55c66cf934269fea63d"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"b05d806c9fcf3d07f29459ab598da9d19c6322cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"95e3ccfd_f0d9830c","updated":"2022-01-12 21:42:19.000000000","message":"Just as a note.  The experimental job will fail here because we need to patch paramiko.  On the other hand, if you look further up the chain, I ran the experimental job with paramiko patched - and it worked.\n\nhttps://zuul.opendev.org/t/openstack/build/92df62e104a047bd9d5198bc43a53da3\n","commit_id":"17a950240c1b15833e97d2ebb4336e5d50aee1e2"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"5b300df13a201317235b5f30ab89dca3c3312d12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"34e6f3d6_7d56c46f","updated":"2022-01-12 18:34:51.000000000","message":"check experimental","commit_id":"17a950240c1b15833e97d2ebb4336e5d50aee1e2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e9bccf37ab5a57345e70283837723f221cc5590","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"4e0198eb_9f31061e","updated":"2022-01-13 03:38:54.000000000","message":"test running in https://review.opendev.org/c/openstack/tempest/+/822560/3 and I can see ecdsa pub key being generated but could not see ssh using ecdsa key. may be running full test or adding some log in ssh client can help for debugging. \n\nhttps://zuul.opendev.org/t/openstack/build/92df62e104a047bd9d5198bc43a53da3/log/controller/logs/tempest_log.txt#13700","commit_id":"17a950240c1b15833e97d2ebb4336e5d50aee1e2"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"7f1b8354663c21f83252cecc2e4c21cac50db752","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"34c36539_b57a1202","updated":"2022-01-18 15:06:12.000000000","message":"lgtm","commit_id":"30ed07ce033c264a4776f8bcf326c75303389ccc"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"18a7bbad429cc6149c1543b36662d898f67df734","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"4a4cc817_7244a904","updated":"2022-01-17 21:08:55.000000000","message":"recheck","commit_id":"30ed07ce033c264a4776f8bcf326c75303389ccc"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"e632496f5f4b5ab1ad548cf55d310300be246fcd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"ba272745_4a2e8c61","updated":"2022-01-14 19:29:56.000000000","message":"recheck","commit_id":"30ed07ce033c264a4776f8bcf326c75303389ccc"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"14d90ad82b075be9bb6f0fe28de207a555b33a95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"f1cb5ddb_b5f2e1d8","updated":"2022-01-17 18:43:22.000000000","message":"recheck","commit_id":"30ed07ce033c264a4776f8bcf326c75303389ccc"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"41a22c24b6c39df537d09475570e4dbfda2d1af8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"d616f65f_c4f31a03","updated":"2022-01-18 18:34:55.000000000","message":"check experimental","commit_id":"6ded070b511263df2b6c06905615a951b29e2035"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"35e840f40ca25cfd3b0162213e7f9725db9b2745","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"23c91cf3_58980160","updated":"2022-01-18 22:19:40.000000000","message":"recheck","commit_id":"6ded070b511263df2b6c06905615a951b29e2035"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c363d327ac27e74bd45544c59d475c2001330a12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"74216cb2_c5da105e","updated":"2022-01-18 18:36:22.000000000","message":"test passing in https://zuul.opendev.org/t/openstack/build/a242a58e67d54bc6990df1c6ae647bf3/logs\n\nMartin is already +2 on the changes, approving it.","commit_id":"6ded070b511263df2b6c06905615a951b29e2035"}],"releasenotes/notes/add-ssh-key-type-38d7a2f900d79842.yaml":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c1c1bf4ba492a2c179f33457a4c6a2c91a33cdd","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add parameter to specify the SSH key type.  Current options are \u0027rsa\u0027"},{"line_number":5,"context_line":"    (which is the default) and \u0027ecdsa\u0027"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"f15c5dde_381dc80c","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":38},"updated":"2022-01-04 22:06:30.000000000","message":"we can add a sentence here about Tempest now support \u0027ecdsa\u0027 key type also along with \u0027rsa\u0027.","commit_id":"bc784aaaac6ba9409dd6f55c66cf934269fea63d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"565fa2e8ff545d10e081593a20ee077bb77b8b42","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add parameter to specify the SSH key type.  Current options are \u0027rsa\u0027"},{"line_number":5,"context_line":"    (which is the default) and \u0027ecdsa\u0027"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9016e1a6_f22c2fa3","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":38},"in_reply_to":"f15c5dde_381dc80c","updated":"2022-01-12 02:16:49.000000000","message":"let\u0027s add this sentence.","commit_id":"bc784aaaac6ba9409dd6f55c66cf934269fea63d"}],"tempest/common/utils/linux/remote_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a11425d42f7b4e4139b146c8c25207212b830126","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        :param pkey: ssh public key (optional)"},{"line_number":40,"context_line":"        :param server: server dict, used for debugging purposes"},{"line_number":41,"context_line":"        :param servers_client: servers client, used for debugging purposes"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        super(RemoteClient, self).__init__("},{"line_number":44,"context_line":"            ip_address, username, password\u003dpassword, pkey\u003dpkey,"},{"line_number":45,"context_line":"            server\u003dserver, servers_client\u003dservers_client,"}],"source_content_type":"text/x-python","patch_set":16,"id":"ecfdef11_5ed094d8","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":9},"updated":"2021-11-18 00:11:41.000000000","message":"please add ssh_key_type param in doc string too","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1ea363e2eb7c53d17fe2bdcde00e1e52dcabdeab","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        :param pkey: ssh public key (optional)"},{"line_number":40,"context_line":"        :param server: server dict, used for debugging purposes"},{"line_number":41,"context_line":"        :param servers_client: servers client, used for debugging purposes"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        super(RemoteClient, self).__init__("},{"line_number":44,"context_line":"            ip_address, username, password\u003dpassword, pkey\u003dpkey,"},{"line_number":45,"context_line":"            server\u003dserver, servers_client\u003dservers_client,"}],"source_content_type":"text/x-python","patch_set":16,"id":"afd1d801_f32dfe24","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":9},"in_reply_to":"ecfdef11_5ed094d8","updated":"2021-11-18 16:33:18.000000000","message":"will do","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"}],"tempest/lib/common/ssh.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a11425d42f7b4e4139b146c8c25207212b830126","unresolved":true,"context_lines":[{"line_number":60,"context_line":"            for ssh-over-ssh.  The default is None, which means"},{"line_number":61,"context_line":"            not to use ssh-over-ssh."},{"line_number":62,"context_line":"        :type proxy_client: ``tempest.lib.common.ssh.Client`` object"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        self.host \u003d host"},{"line_number":65,"context_line":"        self.username \u003d username"},{"line_number":66,"context_line":"        self.port \u003d port"}],"source_content_type":"text/x-python","patch_set":16,"id":"ab45ff59_0c95e87c","line":63,"range":{"start_line":63,"start_character":9,"end_line":63,"end_character":10},"updated":"2021-11-18 00:11:41.000000000","message":"ditto","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1ea363e2eb7c53d17fe2bdcde00e1e52dcabdeab","unresolved":true,"context_lines":[{"line_number":60,"context_line":"            for ssh-over-ssh.  The default is None, which means"},{"line_number":61,"context_line":"            not to use ssh-over-ssh."},{"line_number":62,"context_line":"        :type proxy_client: ``tempest.lib.common.ssh.Client`` object"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        self.host \u003d host"},{"line_number":65,"context_line":"        self.username \u003d username"},{"line_number":66,"context_line":"        self.port \u003d port"}],"source_content_type":"text/x-python","patch_set":16,"id":"40fed78c_edc67cf9","line":63,"range":{"start_line":63,"start_character":9,"end_line":63,"end_character":10},"in_reply_to":"ab45ff59_0c95e87c","updated":"2021-11-18 16:33:18.000000000","message":"will do","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"}],"tempest/lib/common/utils/linux/remote_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a11425d42f7b4e4139b146c8c25207212b830126","unresolved":true,"context_lines":[{"line_number":84,"context_line":"        :param ssh_shell_prologue: Shell fragments to use before command"},{"line_number":85,"context_line":"        :param ping_count: Number of ping packets"},{"line_number":86,"context_line":"        :param ping_size: Packet size for ping packets"},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":"        self.server \u003d server"},{"line_number":89,"context_line":"        self.servers_client \u003d servers_client"},{"line_number":90,"context_line":"        self.ip_address \u003d ip_address"}],"source_content_type":"text/x-python","patch_set":16,"id":"01ec628c_6df4fa16","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":11},"updated":"2021-11-18 00:11:41.000000000","message":"ditto","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1ea363e2eb7c53d17fe2bdcde00e1e52dcabdeab","unresolved":true,"context_lines":[{"line_number":84,"context_line":"        :param ssh_shell_prologue: Shell fragments to use before command"},{"line_number":85,"context_line":"        :param ping_count: Number of ping packets"},{"line_number":86,"context_line":"        :param ping_size: Packet size for ping packets"},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":"        self.server \u003d server"},{"line_number":89,"context_line":"        self.servers_client \u003d servers_client"},{"line_number":90,"context_line":"        self.ip_address \u003d ip_address"}],"source_content_type":"text/x-python","patch_set":16,"id":"d7195f62_7b490009","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":11},"in_reply_to":"01ec628c_6df4fa16","updated":"2021-11-18 16:33:18.000000000","message":"will do","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"}],"tempest/lib/services/compute/keypairs_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a11425d42f7b4e4139b146c8c25207212b830126","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        API reference:"},{"line_number":78,"context_line":"        https://docs.openstack.org/api-ref/compute/#create-or-import-keypair"},{"line_number":79,"context_line":"        \"\"\""},{"line_number":80,"context_line":"        pkey \u003d None"},{"line_number":81,"context_line":"        if (self.ssh_key_type \u003d\u003d \u0027ecdsa\u0027 and \u0027public_key\u0027 not in kwargs and"},{"line_number":82,"context_line":"            (\u0027type\u0027 not in kwargs or kwargs[\u0027type\u0027] \u003d\u003d \u0027ssh\u0027)):"},{"line_number":83,"context_line":"            # create a ecdsa key and pass the public key into the request"},{"line_number":84,"context_line":"            pkey \u003d ec.generate_private_key(ec.SECP384R1(), default_backend())"},{"line_number":85,"context_line":"            pubkey \u003d pkey.public_key().public_bytes("},{"line_number":86,"context_line":"                encoding\u003dserialization.Encoding.OpenSSH,"},{"line_number":87,"context_line":"                format\u003dserialization.PublicFormat.OpenSSH)"},{"line_number":88,"context_line":"            kwargs[\u0027public_key\u0027] \u003d pubkey"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        post_body \u003d json.dumps({\u0027keypair\u0027: kwargs})"},{"line_number":91,"context_line":"        resp, body \u003d self.post(\"os-keypairs\", body\u003dpost_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"fad934da_65f66cd1","line":88,"range":{"start_line":80,"start_character":0,"end_line":88,"end_character":41},"updated":"2021-11-18 00:11:41.000000000","message":"we should not do this part in lib function instead keep it same as it was and this part can go in the test side. so that test can test all positive or negative case around ecdsa type","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c1c1bf4ba492a2c179f33457a4c6a2c91a33cdd","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        API reference:"},{"line_number":78,"context_line":"        https://docs.openstack.org/api-ref/compute/#create-or-import-keypair"},{"line_number":79,"context_line":"        \"\"\""},{"line_number":80,"context_line":"        pkey \u003d None"},{"line_number":81,"context_line":"        if (self.ssh_key_type \u003d\u003d \u0027ecdsa\u0027 and \u0027public_key\u0027 not in kwargs and"},{"line_number":82,"context_line":"            (\u0027type\u0027 not in kwargs or kwargs[\u0027type\u0027] \u003d\u003d \u0027ssh\u0027)):"},{"line_number":83,"context_line":"            # create a ecdsa key and pass the public key into the request"},{"line_number":84,"context_line":"            pkey \u003d ec.generate_private_key(ec.SECP384R1(), default_backend())"},{"line_number":85,"context_line":"            pubkey \u003d pkey.public_key().public_bytes("},{"line_number":86,"context_line":"                encoding\u003dserialization.Encoding.OpenSSH,"},{"line_number":87,"context_line":"                format\u003dserialization.PublicFormat.OpenSSH)"},{"line_number":88,"context_line":"            kwargs[\u0027public_key\u0027] \u003d pubkey"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        post_body \u003d json.dumps({\u0027keypair\u0027: kwargs})"},{"line_number":91,"context_line":"        resp, body \u003d self.post(\"os-keypairs\", body\u003dpost_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"b8f660d6_34b808f5","line":88,"range":{"start_line":80,"start_character":0,"end_line":88,"end_character":41},"in_reply_to":"a976ba92_005c9f6c","updated":"2022-01-04 22:06:30.000000000","message":"Sorry for unclear comment. \n\nFrom nova side on generating the ecdsa key is fine, I mean here to generate the key in tempest tests side instead of this service client lib function. this lib function, create_keypair() accept the kwargs so any test can generate the ecdsa key and pass in kwargs. That way we will be accepting and passing the request param from tests to nova instead of doing somethings hardcoded in lib function.","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"565fa2e8ff545d10e081593a20ee077bb77b8b42","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        API reference:"},{"line_number":78,"context_line":"        https://docs.openstack.org/api-ref/compute/#create-or-import-keypair"},{"line_number":79,"context_line":"        \"\"\""},{"line_number":80,"context_line":"        pkey \u003d None"},{"line_number":81,"context_line":"        if (self.ssh_key_type \u003d\u003d \u0027ecdsa\u0027 and \u0027public_key\u0027 not in kwargs and"},{"line_number":82,"context_line":"            (\u0027type\u0027 not in kwargs or kwargs[\u0027type\u0027] \u003d\u003d \u0027ssh\u0027)):"},{"line_number":83,"context_line":"            # create a ecdsa key and pass the public key into the request"},{"line_number":84,"context_line":"            pkey \u003d ec.generate_private_key(ec.SECP384R1(), default_backend())"},{"line_number":85,"context_line":"            pubkey \u003d pkey.public_key().public_bytes("},{"line_number":86,"context_line":"                encoding\u003dserialization.Encoding.OpenSSH,"},{"line_number":87,"context_line":"                format\u003dserialization.PublicFormat.OpenSSH)"},{"line_number":88,"context_line":"            kwargs[\u0027public_key\u0027] \u003d pubkey"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        post_body \u003d json.dumps({\u0027keypair\u0027: kwargs})"},{"line_number":91,"context_line":"        resp, body \u003d self.post(\"os-keypairs\", body\u003dpost_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"695a6359_bf58da14","line":88,"range":{"start_line":80,"start_character":0,"end_line":88,"end_character":41},"in_reply_to":"b8f660d6_34b808f5","updated":"2022-01-12 02:16:49.000000000","message":"After discussion in nova channel that nova will not auto generate the key and client/tempest will send the generated key, I am ok with this code change to generate the key in lib function.","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1ea363e2eb7c53d17fe2bdcde00e1e52dcabdeab","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        API reference:"},{"line_number":78,"context_line":"        https://docs.openstack.org/api-ref/compute/#create-or-import-keypair"},{"line_number":79,"context_line":"        \"\"\""},{"line_number":80,"context_line":"        pkey \u003d None"},{"line_number":81,"context_line":"        if (self.ssh_key_type \u003d\u003d \u0027ecdsa\u0027 and \u0027public_key\u0027 not in kwargs and"},{"line_number":82,"context_line":"            (\u0027type\u0027 not in kwargs or kwargs[\u0027type\u0027] \u003d\u003d \u0027ssh\u0027)):"},{"line_number":83,"context_line":"            # create a ecdsa key and pass the public key into the request"},{"line_number":84,"context_line":"            pkey \u003d ec.generate_private_key(ec.SECP384R1(), default_backend())"},{"line_number":85,"context_line":"            pubkey \u003d pkey.public_key().public_bytes("},{"line_number":86,"context_line":"                encoding\u003dserialization.Encoding.OpenSSH,"},{"line_number":87,"context_line":"                format\u003dserialization.PublicFormat.OpenSSH)"},{"line_number":88,"context_line":"            kwargs[\u0027public_key\u0027] \u003d pubkey"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        post_body \u003d json.dumps({\u0027keypair\u0027: kwargs})"},{"line_number":91,"context_line":"        resp, body \u003d self.post(\"os-keypairs\", body\u003dpost_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"a976ba92_005c9f6c","line":88,"range":{"start_line":80,"start_character":0,"end_line":88,"end_character":41},"in_reply_to":"fad934da_65f66cd1","updated":"2021-11-18 16:33:18.000000000","message":"I\u0027m trying to understand what you\u0027re saying here.  \n\nThe purpose of this function is to either import or generate a key pair in nova.\n\nIf you just want to import a key pair, then you would imply pass in a public_key in kwargs and it will be uploaded to nova.  This part will continue to work exactly the same with ecdsa keys ie. the new code is only triggered if public_key not in kwargs.\n\nIf you want to generate a keypair, though, then for rsa keys, we simply pass a POST to nova, and nova will generate an RSA key and return the public and private keys, which we pass back to the caller.\n\nThe problem right now though is that nova does not currently support generating ecdsa keys.  We need to add support for that in nova (and I can put a patch up for that), but until that happens, we need to generate the ECDSA key here, upload the public key to nova, and return the public and private keys exactly as nova would have done.\n\nSo I agree that we shouldn\u0027t be doing this here ultimately - we should do this in nova - but can we do this here temporarily until the needed change merges in nova?  (And I should probably document this in the doc string above)","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a11425d42f7b4e4139b146c8c25207212b830126","unresolved":true,"context_lines":[{"line_number":93,"context_line":"        schema \u003d self.get_schema(self.schema_versions_info)"},{"line_number":94,"context_line":"        self.validate_response(schema.create_keypair, resp, body)"},{"line_number":95,"context_line":"        resp_body \u003d rest_client.ResponseBody(resp, body)"},{"line_number":96,"context_line":"        if pkey:"},{"line_number":97,"context_line":"            # add the privkey to the response as it was generated here"},{"line_number":98,"context_line":"            privkey \u003d pkey.private_bytes("},{"line_number":99,"context_line":"                encoding\u003dserialization.Encoding.PEM,"},{"line_number":100,"context_line":"                format\u003dserialization.PrivateFormat.TraditionalOpenSSL,"},{"line_number":101,"context_line":"                encryption_algorithm\u003dserialization.NoEncryption())"},{"line_number":102,"context_line":"            resp_body[\u0027keypair\u0027][\u0027private_key\u0027] \u003d privkey.decode(\u0027utf-8\u0027)"},{"line_number":103,"context_line":"        return resp_body"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def delete_keypair(self, keypair_name, **params):"},{"line_number":106,"context_line":"        \"\"\"Deletes a keypair."}],"source_content_type":"text/x-python","patch_set":16,"id":"8e127a73_8b7cd3a9","line":103,"range":{"start_line":96,"start_character":0,"end_line":103,"end_character":24},"updated":"2021-11-18 00:11:41.000000000","message":"ditto","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"},{"author":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"change_message_id":"1ea363e2eb7c53d17fe2bdcde00e1e52dcabdeab","unresolved":true,"context_lines":[{"line_number":93,"context_line":"        schema \u003d self.get_schema(self.schema_versions_info)"},{"line_number":94,"context_line":"        self.validate_response(schema.create_keypair, resp, body)"},{"line_number":95,"context_line":"        resp_body \u003d rest_client.ResponseBody(resp, body)"},{"line_number":96,"context_line":"        if pkey:"},{"line_number":97,"context_line":"            # add the privkey to the response as it was generated here"},{"line_number":98,"context_line":"            privkey \u003d pkey.private_bytes("},{"line_number":99,"context_line":"                encoding\u003dserialization.Encoding.PEM,"},{"line_number":100,"context_line":"                format\u003dserialization.PrivateFormat.TraditionalOpenSSL,"},{"line_number":101,"context_line":"                encryption_algorithm\u003dserialization.NoEncryption())"},{"line_number":102,"context_line":"            resp_body[\u0027keypair\u0027][\u0027private_key\u0027] \u003d privkey.decode(\u0027utf-8\u0027)"},{"line_number":103,"context_line":"        return resp_body"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def delete_keypair(self, keypair_name, **params):"},{"line_number":106,"context_line":"        \"\"\"Deletes a keypair."}],"source_content_type":"text/x-python","patch_set":16,"id":"0b7c8438_05475678","line":103,"range":{"start_line":96,"start_character":0,"end_line":103,"end_character":24},"in_reply_to":"8e127a73_8b7cd3a9","updated":"2021-11-18 16:33:18.000000000","message":"ditto","commit_id":"cf1a67b7ab7e34d2c9aa26f38d3a6a8a9a717daa"}],"zuul.d/integrated-gate.yaml":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2e9bccf37ab5a57345e70283837723f221cc5590","unresolved":true,"context_lines":[{"line_number":302,"context_line":"      Integration testing for a FIPS enabled Centos 8 system"},{"line_number":303,"context_line":"    nodeset: devstack-single-node-centos-8-stream"},{"line_number":304,"context_line":"    pre-run: playbooks/enable-fips.yaml"},{"line_number":305,"context_line":"    vars:"},{"line_number":306,"context_line":"      devstack_localrc:"},{"line_number":307,"context_line":"        ISCSID_ENABLE_FIPS: True"},{"line_number":308,"context_line":"      devstack_local_conf:"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"c103720c_cfd9996b","line":305,"range":{"start_line":305,"start_character":8,"end_line":305,"end_character":9},"updated":"2022-01-13 03:38:54.000000000","message":"by default it will run only smoke tests which hardly do ssh, let\u0027s run tempest full tests \n\n      tox_envlist: full","commit_id":"17a950240c1b15833e97d2ebb4336e5d50aee1e2"}]}
