)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"d159cda549ebd728eb6eb19f283d3e110e9285f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"61849564_0b4f99d5","updated":"2021-12-03 11:46:16.000000000","message":"Besides @marios comment, I woiuld like to see a testproject exercising both situations when the multistore is set to true, and when it is set to false","commit_id":"5439997d4b255617c19e43ca8fc2f9f25c2d56ad"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"31dd4581f8b4f18fdf5d42848610566f3a7d3abb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d2e153d7_dfa5606a","updated":"2021-12-13 08:13:00.000000000","message":"thanks\nlgtm is there a testproject somewhere per arx comment? ","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"4ad81efdb2b265d2e32f9c25aa5ff6d777ae1d0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ca631e6b_cac7deb9","in_reply_to":"286b14c9_a2ee8a15","updated":"2021-12-15 07:35:39.000000000","message":"thanks\n\nfor https://review.rdoproject.org/r/c/testproject/+/37160 looks like you forgot the depends-on?","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"cefef44cb67233b80afdeb533d27c3f7c57f7b80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"27d6378d_a8d4ebf3","in_reply_to":"ca631e6b_cac7deb9","updated":"2021-12-15 09:45:41.000000000","message":"So, here we are trying to test with both like one when we enable the multistore option and other one when we don\u0027t.","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"dcdaa55b01809b9395bf289b5cf0d34c9a692852","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"286b14c9_a2ee8a15","in_reply_to":"d2e153d7_dfa5606a","updated":"2021-12-13 12:33:05.000000000","message":"yes, I have two testproject with respect to this.\n\n1. https://review.rdoproject.org/r/c/testproject/+/37160\n2. https://review.rdoproject.org/r/c/testproject/+/37159","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"ed8b40a5365f4066b2d4bfb161891de97ec855a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5c427a9f_fd4545e1","updated":"2022-01-06 12:18:38.000000000","message":"Looks good to me but yes as Alex mentioned, need to check why it\u0027s failing.","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c48caf828177d82ff081953cb1a684f1176d1125","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a63f81dd_11f9b976","updated":"2022-01-06 13:19:28.000000000","message":"the gate failures don\u0027t seem to be related to this change, i\u0027m testing the gate\u0027s health in another change","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"9d3b48f7badce6b68c9f752056389a40f9a3353a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1e8c25b9_68b6da67","in_reply_to":"a63f81dd_11f9b976","updated":"2022-01-06 14:37:40.000000000","message":"yeah..i also think python-tempestconf gate is not very stable","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"9ab694a8ca8523a74ee76a00778e9b9f189ae3bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"edd606b9_7cbde226","updated":"2022-01-10 14:18:24.000000000","message":"Also you are getting response from stores-info API means multiple stores are configured,So IMO no need to check whether length is 1 or \u003e 1.\n  ","commit_id":"950f8ed240e7708e2a45b509d388789dc59a5dc3"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d92a0d40f7fdb5e93f7562768f318ff39ab68b15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c404e162_d914f614","in_reply_to":"edd606b9_7cbde226","updated":"2022-01-10 14:39:51.000000000","message":"Done!","commit_id":"950f8ed240e7708e2a45b509d388789dc59a5dc3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cae7a406c8117e3c97baaa5a03dedb2d1cbc0723","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3b9b0ab7_2e3832ec","updated":"2022-01-12 15:41:46.000000000","message":"Thank you,looks better now!","commit_id":"1d5edd3b0a51b3d3c535dab13796931200fe281a"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"fd4f336ad9a1d42ba9488c1370504cc23de7dd60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"05ee5178_0ec0e062","updated":"2022-01-19 10:18:52.000000000","message":"\u003e Patch Set 10: Code-Review-1\n\u003e \n\u003e Need the testproject to test if tempestconf will set properly the multistore, and also add a unittest\n\n@arxcruz, In the commit message I have mentioned the two testprojects exercising both the configs, please do have a look!!\nI will do a fresh review for the unittest since this patch is pending for too long.","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"a00eba0706570c95f1ed80c4774b1892817faf73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"02f057f9_4dde6281","updated":"2022-01-17 14:39:48.000000000","message":"@Soniya, do we have a testproject testing both configs?","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0b17071c9cfeca7ee41e9c2851cf5d364b7aa357","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"781431a7_bdb3e30e","updated":"2022-01-19 12:48:26.000000000","message":"check experimental ","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"6e6fd616a0763aa05caa6641a34377af8e2a9edd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"2c9d280c_d77e5074","updated":"2022-01-24 14:08:26.000000000","message":"recheck","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"f99de2c1c8f2ac84644d9f211e5688a8524f3366","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"32cc3167_34923f7e","updated":"2022-01-31 13:45:54.000000000","message":"Can please anyone (the original author or any uploaded) answer to the various comment which are marked as unresolved?","commit_id":"17b3da804481a9d040efc3a4f13be67deaa91b72"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"52129fd0eee61c8be340bec93c36771126a45b71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3910af9b_ab5b88b0","updated":"2022-02-16 12:02:44.000000000","message":"Based on Abhishek comment, looks good to me, Waiting for tosky final ack on this.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"a1be9698a54f437ca5db077d1d73d9526998da59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"882b1acc_6dbe1900","updated":"2022-02-09 14:27:46.000000000","message":"I suspect the failure in python-tempestconf-tempest-devstack-admin-train may be caused by the fact we are still using run-tempest instead of run-tempest-26 for that release, basically missing the changes introduced in tempest.git by If49ab0c31aca5b7837636727096a9bc83f891b1b (https://review.opendev.org/c/openstack/tempest/+/787455).\n\nSo that should be probably fixed (of course in a separate patch).","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"74fbc45fc67fb2218145d2b1c7b17b85e02da06b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"964fb824_f68c23d6","updated":"2022-02-16 15:24:57.000000000","message":"No, sorry, I still have a question.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ce062b56d3ec27083c4804802c0f3738c6efcc17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"142e7e75_b244ae85","updated":"2022-02-11 13:08:48.000000000","message":"lgtm, thanks","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"ee95f0761283073dba23cf1a3803542e9cd6b3d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0ec2f9d2_d13799e9","updated":"2022-02-08 09:15:01.000000000","message":"recheck","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"ad7c11a01461c364de84aec5a73c8382e9405869","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"52a7286a_3a85cf70","updated":"2022-02-09 10:54:17.000000000","message":"recheck","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"35b72a9b264278d778c49d4e68aac0838c50e030","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"68ffc367_18047376","updated":"2022-02-10 22:59:35.000000000","message":"recheck","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"c407161a5cd534bb0e034544cae5060d07e6b297","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"51133b43_f1dc6992","in_reply_to":"882b1acc_6dbe1900","updated":"2022-02-10 11:52:33.000000000","message":"Thanks Luigi for pointing out the change. I will put a separate patch for the tempest change happened.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"6c4cfaeb3f85761de764ad353552c3716713fbf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"8e0cb044_b8111b1c","in_reply_to":"882b1acc_6dbe1900","updated":"2022-02-10 11:55:53.000000000","message":"a good catch! thanks!\nhttps://review.opendev.org/c/openinfra/python-tempestconf/+/828680","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"dd21124b46743121080d827bcb301e61f1ca15df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"f1ae899d_a7d679fb","updated":"2022-03-11 12:18:00.000000000","message":"Do you have a fresh link to a job which tests this?\n\nAlso: Abhishek, does it look fine?\n\n\n","commit_id":"fb978cf7707140378fa3f33a05af34b32dc5bd7d"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"35dca00c81152c1093cca704c73c2db675ce09ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d415428c_1c56e9ca","updated":"2022-03-10 15:48:37.000000000","message":"recheck","commit_id":"fb978cf7707140378fa3f33a05af34b32dc5bd7d"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"31dc76335fa05fa2a07e2a8b2052e9b7442ff586","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"0c3a5df6_dcaa9925","in_reply_to":"83d24372_5382a8ab","updated":"2022-03-14 14:26:24.000000000","message":"@Luigi Toscano, we are testing this here:- https://review.rdoproject.org/r/c/testproject/+/37159","commit_id":"fb978cf7707140378fa3f33a05af34b32dc5bd7d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"071d63390b89c677caedaea6d9e50e06201e3099","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"83d24372_5382a8ab","in_reply_to":"f1ae899d_a7d679fb","updated":"2022-03-11 14:57:58.000000000","message":"Yep,looks good to me","commit_id":"fb978cf7707140378fa3f33a05af34b32dc5bd7d"}],"config_tempest/services/image.py":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"18097d85f5e70815175b95886da4d31754a3de60","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e\u003d 1:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":1,"id":"db119c63_44470721","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":24},"updated":"2021-12-03 07:53:01.000000000","message":"if you only want this for multiple then probably that should be \u003e not \u003e\u003d","commit_id":"5439997d4b255617c19e43ca8fc2f9f25c2d56ad"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"79194b80771b67914b0d3bf94058e3181a10c4f9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e\u003d 1:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":1,"id":"763b0be4_54e22e79","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":24},"in_reply_to":"db119c63_44470721","updated":"2021-12-03 08:47:01.000000000","message":"Ack","commit_id":"5439997d4b255617c19e43ca8fc2f9f25c2d56ad"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"4ad81efdb2b265d2e32f9c25aa5ff6d777ae1d0d","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _get_number_of_stores(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.get_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a30ce214_9afe086d","line":87,"range":{"start_line":87,"start_character":32,"end_line":87,"end_character":43},"updated":"2021-12-15 07:35:39.000000000","message":"looks like something further is needed here \n\n2021-12-13 09:46:16.871 295000 ERROR tempest AttributeError: \u0027ImagesClient\u0027 object has no attribute \u0027get_stores\u0027\n\nhttps://b43e77286130d7961693-ebb0bf58265a2173bda790006658dd60.ssl.cf2.rackcdn.com/820169/2/check/tripleo-ci-centos-8-scenario002-standalone/9e70e56/logs/undercloud/var/log/tempest/tempestconf.log","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _get_number_of_stores(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.get_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"81302c42_6a4defa3","line":87,"range":{"start_line":87,"start_character":32,"end_line":87,"end_character":43},"in_reply_to":"610c75cb_a99cd771","updated":"2022-02-08 09:14:39.000000000","message":"Done","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"cefef44cb67233b80afdeb533d27c3f7c57f7b80","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _get_number_of_stores(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.get_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"610c75cb_a99cd771","line":87,"range":{"start_line":87,"start_character":32,"end_line":87,"end_character":43},"in_reply_to":"a30ce214_9afe086d","updated":"2021-12-15 09:45:41.000000000","message":"Yeah, I am working over it.","commit_id":"f8e46f5e2590de9fc5636e95ce0b0633b65aef5e"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6ef0f6737d6a1298076cb14f73b0df9472bbdb94","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 1:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"},{"line_number":65,"context_line":"        # because we don\u0027t have to specify overrides."}],"source_content_type":"text/x-python","patch_set":3,"id":"4855f0fd_fdc336af","line":62,"range":{"start_line":60,"start_character":8,"end_line":62,"end_character":69},"updated":"2022-01-10 14:12:49.000000000","message":"There is a possibility that I can configure multiplestores with actual single store in it;\nLike;\n\nenabled_backends \u003d efficient:rbd\n\nAlso going forward we are going to get rid of old way of store configuration, so devstack will define default store as \n\nenabled_backends \u003d default:file\n\nI think this code should be generic and should work with num_stores \u003d\u003d 1","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"1847f274ff1e7bdfd80294d1dff84be91f7a90bd","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 1:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"},{"line_number":65,"context_line":"        # because we don\u0027t have to specify overrides."}],"source_content_type":"text/x-python","patch_set":3,"id":"007d0954_42fd7109","line":62,"range":{"start_line":60,"start_character":8,"end_line":62,"end_character":69},"in_reply_to":"4855f0fd_fdc336af","updated":"2022-01-31 14:23:29.000000000","message":"Done","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"8e7c6704f9776df243d582fce834ef7933c761e8","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        if \u0027cirros\u0027 in conf.get_defaulted(\u0027image\u0027,"},{"line_number":67,"context_line":"                                          \u0027image_path\u0027).rsplit(\u0027/\u0027)[-1]:"},{"line_number":68,"context_line":"            conf.set(\u0027validation\u0027, \u0027image_ssh_user\u0027, \u0027cirros\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # image.http_image is a tempest option which defines \u0027http accessible"},{"line_number":71,"context_line":"        # image\u0027, it can be in a compressed format so it can\u0027t be mistaken"},{"line_number":72,"context_line":"        # for an image which will be uploaded to the glance."}],"source_content_type":"text/x-python","patch_set":3,"id":"b6050ed7_5c2e0b81","line":69,"updated":"2022-01-10 08:13:50.000000000","message":"is that extra line intentional?","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"0676dee38795218bedef93c12d61e96a2f0536b7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if \u0027cirros\u0027 in conf.get_defaulted(\u0027image\u0027,"},{"line_number":67,"context_line":"                                          \u0027image_path\u0027).rsplit(\u0027/\u0027)[-1]:"},{"line_number":68,"context_line":"            conf.set(\u0027validation\u0027, \u0027image_ssh_user\u0027, \u0027cirros\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # image.http_image is a tempest option which defines \u0027http accessible"},{"line_number":71,"context_line":"        # image\u0027, it can be in a compressed format so it can\u0027t be mistaken"},{"line_number":72,"context_line":"        # for an image which will be uploaded to the glance."}],"source_content_type":"text/x-python","patch_set":3,"id":"d71348cf_9dc0c206","line":69,"in_reply_to":"b6050ed7_5c2e0b81","updated":"2022-01-10 12:48:07.000000000","message":"Ack","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"8e7c6704f9776df243d582fce834ef7933c761e8","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _get_number_of_stores(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"00abe89a_063e4e9e","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":18},"updated":"2022-01-10 08:13:50.000000000","message":"do we need to worry about this being null or 0 ?","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"0676dee38795218bedef93c12d61e96a2f0536b7","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _get_number_of_stores(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"2efad8d4_cdc04f61","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":18},"in_reply_to":"00abe89a_063e4e9e","updated":"2022-01-10 12:48:07.000000000","message":"IMO, we don\u0027t need to worry about \u0027stores\u0027 value being null or 0 since we want to check weather this value is greater than 1. If it is 1 or less than 1 i.e 0 or null we won\u0027t enable the multi-store feature.","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _get_number_of_stores(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"69233535_8be363a1","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":18},"in_reply_to":"2efad8d4_cdc04f61","updated":"2022-02-08 09:14:39.000000000","message":"Ack","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"8e7c6704f9776df243d582fce834ef7933c761e8","unresolved":true,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":91,"context_line":"            return 1"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def get_supported_versions(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"f2a20faf_dab856f8","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":3},"updated":"2022-01-10 08:13:50.000000000","message":"I think it is good to return any info provided by the actual exception too wdyt?\n\n        except exceptions.Forbidden as e:\n            C.LOG.info(\u0027Can not retrieve stores, user are not allowed \u0027 + str(e))","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"0676dee38795218bedef93c12d61e96a2f0536b7","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"            return len(stores)"},{"line_number":89,"context_line":"        except exceptions.Forbidden:"},{"line_number":90,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":91,"context_line":"            return 1"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def get_supported_versions(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df9e489d_94bbe613","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":3},"in_reply_to":"f2a20faf_dab856f8","updated":"2022-01-10 12:48:07.000000000","message":"Ack","commit_id":"b284f4f7b7dfdce06054bdb546956d9c11832e32"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"9ab694a8ca8523a74ee76a00778e9b9f189ae3bb","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 1:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":4,"id":"a64d66d1_2f4dcc6b","line":61,"range":{"start_line":61,"start_character":8,"end_line":61,"end_character":26},"updated":"2022-01-10 14:18:24.000000000","message":"Please refer to my comment from previous PS","commit_id":"950f8ed240e7708e2a45b509d388789dc59a5dc3"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"4e0659a0a7d1c890db1148c72a076f105e89938f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 1:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e10bbb1c_f38f9ea3","line":61,"range":{"start_line":61,"start_character":8,"end_line":61,"end_character":26},"in_reply_to":"a64d66d1_2f4dcc6b","updated":"2022-01-10 14:28:07.000000000","message":"Done","commit_id":"950f8ed240e7708e2a45b509d388789dc59a5dc3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2a809e0dfa46c1ed55bf809b06db7a06b83d593f","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":87,"context_line":"            return len(stores)"},{"line_number":88,"context_line":"        except exceptions.Forbidden:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_supported_versions(self):"},{"line_number":92,"context_line":"        return [\u0027v1\u0027, \u0027v2\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"2bc46b2a_30ce78c1","line":89,"range":{"start_line":85,"start_character":8,"end_line":89,"end_character":71},"updated":"2022-01-11 06:36:36.000000000","message":"I think you should catch generic exception here, because actual glance API is raising NotFound if multiple stores are not configured, also a work is going on to check policy rule which will raise forbidden to restrict users from accessing the information.\n\nI think this should be like;\nstores \u003d None\ntry:\n    stores \u003d self.client.info_stores()[\u0027stores\u0027]\nexcept Exception:\n    C.LOG.info(\u0027Can not retrieve stores, either multiple stores are not configured or user are not allowed access stores information\u0027)\n    return stores\n\nreturn len(stores)","commit_id":"1bd900a36c502787b3499a7f0ab5672962dfc97b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"e4b4904a65a0103a2847754b72390809f922c1df","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":87,"context_line":"            return len(stores)"},{"line_number":88,"context_line":"        except exceptions.Forbidden:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_supported_versions(self):"},{"line_number":92,"context_line":"        return [\u0027v1\u0027, \u0027v2\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"4deb400f_99ee726c","line":89,"range":{"start_line":85,"start_character":8,"end_line":89,"end_character":71},"in_reply_to":"2bc46b2a_30ce78c1","updated":"2022-01-11 10:32:37.000000000","message":"What if we catch the same exception which glance API would throw?","commit_id":"1bd900a36c502787b3499a7f0ab5672962dfc97b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"fd4f336ad9a1d42ba9488c1370504cc23de7dd60","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":87,"context_line":"            return len(stores)"},{"line_number":88,"context_line":"        except exceptions.Forbidden:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_supported_versions(self):"},{"line_number":92,"context_line":"        return [\u0027v1\u0027, \u0027v2\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"572a928d_f6e91a8d","line":89,"range":{"start_line":85,"start_character":8,"end_line":89,"end_character":71},"in_reply_to":"2e8d6b1e_e74906fb","updated":"2022-01-19 10:18:52.000000000","message":"okay","commit_id":"1bd900a36c502787b3499a7f0ab5672962dfc97b"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"2536a3de79a26456bcd0f4a09e442816345073b1","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":87,"context_line":"            return len(stores)"},{"line_number":88,"context_line":"        except exceptions.Forbidden:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_supported_versions(self):"},{"line_number":92,"context_line":"        return [\u0027v1\u0027, \u0027v2\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"2e8d6b1e_e74906fb","line":89,"range":{"start_line":85,"start_character":8,"end_line":89,"end_character":71},"in_reply_to":"4deb400f_99ee726c","updated":"2022-01-11 10:38:01.000000000","message":"I agree, just generic exception and return 0 then you can check if the return code is \u003e 1 enable it, otherwise, do nothing.","commit_id":"1bd900a36c502787b3499a7f0ab5672962dfc97b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"1847f274ff1e7bdfd80294d1dff84be91f7a90bd","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":87,"context_line":"            return len(stores)"},{"line_number":88,"context_line":"        except exceptions.Forbidden:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, user are not allowed\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_supported_versions(self):"},{"line_number":92,"context_line":"        return [\u0027v1\u0027, \u0027v2\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"bac98d4d_e4bfa9e5","line":89,"range":{"start_line":85,"start_character":8,"end_line":89,"end_character":71},"in_reply_to":"572a928d_f6e91a8d","updated":"2022-01-31 14:23:29.000000000","message":"Done","commit_id":"1bd900a36c502787b3499a7f0ab5672962dfc97b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0b17071c9cfeca7ee41e9c2851cf5d364b7aa357","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":10,"id":"10c61729_ec1de562","line":61,"range":{"start_line":61,"start_character":11,"end_line":61,"end_character":21},"updated":"2022-01-19 12:48:26.000000000","message":"as Arx mentioned, the _get_number_of_stores returns a number, so let\u0027s edit this if to num_stores \u003e 0","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"953d9cb8a92a7a2c23874dc0aa9076d7d997f0b6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":10,"id":"295e76fb_3116f188","line":61,"range":{"start_line":61,"start_character":11,"end_line":61,"end_character":21},"in_reply_to":"10c61729_ec1de562","updated":"2022-01-24 08:12:55.000000000","message":"Done","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"0b17071c9cfeca7ee41e9c2851cf5d364b7aa357","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        stores \u003d None"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"284934d9_c5877132","line":85,"range":{"start_line":85,"start_character":17,"end_line":85,"end_character":21},"updated":"2022-01-19 12:48:26.000000000","message":"better to use 0 , to have the type consistent - the method returns a number","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"953d9cb8a92a7a2c23874dc0aa9076d7d997f0b6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            conf.set(\u0027image\u0027, \u0027http_image\u0027, C.DEFAULT_IMAGE)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _get_number_of_stores(self):"},{"line_number":85,"context_line":"        stores \u003d None"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3dbf1226_0aa77793","line":85,"range":{"start_line":85,"start_character":17,"end_line":85,"end_character":21},"in_reply_to":"284934d9_c5877132","updated":"2022-01-24 08:12:55.000000000","message":"Done","commit_id":"3246f65d9de427b2e146d99d4044aea9bf0a0dff"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"93b34a8743bd07e8956650a231d13716409de2d3","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"}],"source_content_type":"text/x-python","patch_set":11,"id":"4956e0ed_b3fd9c7c","line":89,"range":{"start_line":89,"start_character":75,"end_line":89,"end_character":76},"updated":"2022-01-25 10:14:13.000000000","message":"shouldn\u0027t be here a space?","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a98f071_2096a8c8","line":89,"range":{"start_line":89,"start_character":75,"end_line":89,"end_character":76},"in_reply_to":"4956e0ed_b3fd9c7c","updated":"2022-02-08 09:14:39.000000000","message":"Done","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"36b6081f9570f9e23a07d1c8048e7ff725cc2e15","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"}],"source_content_type":"text/x-python","patch_set":11,"id":"878f997f_24c13248","line":89,"range":{"start_line":89,"start_character":75,"end_line":89,"end_character":76},"in_reply_to":"4956e0ed_b3fd9c7c","updated":"2022-02-11 13:16:03.000000000","message":"Done","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"93b34a8743bd07e8956650a231d13716409de2d3","unresolved":true,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9754e8b0_fb7cd517","line":90,"range":{"start_line":90,"start_character":69,"end_line":90,"end_character":70},"updated":"2022-01-25 10:14:13.000000000","message":"here as well","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"93b34a8743bd07e8956650a231d13716409de2d3","unresolved":true,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"}],"source_content_type":"text/x-python","patch_set":11,"id":"2a59fd10_9029d8cd","line":90,"range":{"start_line":90,"start_character":47,"end_line":90,"end_character":50},"updated":"2022-01-25 10:14:13.000000000","message":"is","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fcacb07b_f2743280","line":90,"range":{"start_line":90,"start_character":47,"end_line":90,"end_character":50},"in_reply_to":"2a59fd10_9029d8cd","updated":"2022-02-08 09:14:39.000000000","message":"Ack","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"36b6081f9570f9e23a07d1c8048e7ff725cc2e15","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"}],"source_content_type":"text/x-python","patch_set":11,"id":"c2740447_3bcc79cb","line":90,"range":{"start_line":90,"start_character":47,"end_line":90,"end_character":50},"in_reply_to":"2a59fd10_9029d8cd","updated":"2022-02-11 13:16:03.000000000","message":"Done","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"36b6081f9570f9e23a07d1c8048e7ff725cc2e15","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"}],"source_content_type":"text/x-python","patch_set":11,"id":"19831338_53920799","line":90,"range":{"start_line":90,"start_character":69,"end_line":90,"end_character":70},"in_reply_to":"9754e8b0_fb7cd517","updated":"2022-02-11 13:16:03.000000000","message":"Done","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            stores \u003d self.client.info_stores()[\u0027stores\u0027]"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"}],"source_content_type":"text/x-python","patch_set":11,"id":"35c6f6c1_f534af54","line":90,"range":{"start_line":90,"start_character":69,"end_line":90,"end_character":70},"in_reply_to":"9754e8b0_fb7cd517","updated":"2022-02-08 09:14:39.000000000","message":"Done","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"93b34a8743bd07e8956650a231d13716409de2d3","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"0c422beb_304282bb","line":91,"range":{"start_line":91,"start_character":23,"end_line":91,"end_character":24},"updated":"2022-01-25 10:14:13.000000000","message":"\u0027to the stores information\u0027)","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b2493fae2ef8ca0572ec8da71a89987d975e295f","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"8f95cdd5_42aa5fe3","line":91,"updated":"2022-01-24 08:39:05.000000000","message":"same comment as v3 [1] (I think you addressed it at some point) - please also add the actual exception text in the log? \n\n\n[1] https://review.opendev.org/c/openinfra/python-tempestconf/+/820169/3..11/config_tempest/services/image.py#90","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"4245c9b7_9d8a299d","line":91,"range":{"start_line":91,"start_character":23,"end_line":91,"end_character":24},"in_reply_to":"0c422beb_304282bb","updated":"2022-02-08 09:14:39.000000000","message":"Ack","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"36b6081f9570f9e23a07d1c8048e7ff725cc2e15","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"a6316b60_ff76a93e","line":91,"range":{"start_line":91,"start_character":23,"end_line":91,"end_character":24},"in_reply_to":"0c422beb_304282bb","updated":"2022-02-11 13:16:03.000000000","message":"Done","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"d3eb39c4f9f2568f3dcea7c4e5ab9945f3eed237","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            C.LOG.info(\u0027Can not retrieve stores, either multiple stores are\u0027"},{"line_number":90,"context_line":"                       \u0027not configured or user are not allowed access\u0027"},{"line_number":91,"context_line":"                       \u0027stores information\u0027)"},{"line_number":92,"context_line":"            return 0"},{"line_number":93,"context_line":"        return len(stores)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1e4d4149_0cc4e0c6","line":91,"in_reply_to":"8f95cdd5_42aa5fe3","updated":"2022-02-08 09:14:39.000000000","message":"Ack","commit_id":"42dffb9ca16ad99be67f46c53896a9e58732ae9b"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"5537ed1a6edc60f0c83d18b282b6835f18ff62ff","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"06b781dc_332896f3","line":61,"updated":"2022-02-14 14:43:25.000000000","message":"I\u0027m sorry, but I think I overlooked this.\nIf num_stores is 1, image-feature-enabled.import_image will be set to True.\nBut shouldn\u0027t this be enabled when the stores found are more than 1?","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7e2c86a1c5e80ffe399865d2c12af0cb26252d1a","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"77e4ad26_71bdd9e8","line":61,"in_reply_to":"06b781dc_332896f3","updated":"2022-02-14 14:59:57.000000000","message":"Luigi, the plan is to remove single store configuration support from glance and with multistore config I can define single store like;\n\nenabled_backends \u003d \u0027fast\u0027: \u0027rbd\u0027\n\nSo to avoid future regression, I have suggested that we should use \u003e 0 here.\n\n(You can see detail explanation in previous comments)","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"d8b116ccda05f1bb241a35d47d9ed29e78c4211e","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5e3f7e1d_6551b7a1","line":61,"in_reply_to":"09a137f8_14b36ed9","updated":"2022-02-16 15:56:15.000000000","message":"I think my confusion stems also from the fact that \"single store\" may either mean \"current way of configuring a store\" and \"a single store configured with multistore configuration\".\n\nCan you please clarify your previous sentence by distinguishing the two?\n\nI can read your sentence in two different ways:\n\n1) import image works a) if glance is configured through multistore configuration, regardless of the amount of storages (one or more)\n\n2) import image works if glance is configured to have multiple stores, which requires the new multistore way of configuring.\n\n\nIf this is 1), then the current condition based on the stores is not exactly clear, the function should be _is_multistore_configured rather than _get_number_of_stores\n\nif this is 2), the the condition should be \u003e1.\n\nOf course it\u0027s possible there is a condition 3) which I haven\u0027t considered.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"ebe466de462b784cb903d2f72537e7e361376a28","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"e764b1ae_808b7bb0","line":61,"in_reply_to":"331d5110_78eb83c2","updated":"2022-02-17 10:21:45.000000000","message":"Thanks, so \"1) import image works a) if glance is configured through multistore configuration, regardless of the amount of storages (one or more) \nThis is correct\"\n\nThen at least the commit message should be changed.\"\nThis is an attempt to populate tempestconf with\nmultistore feature enabled if and only if multiple\nstores are available.\"\n\nBut then, shouldn\u0027t the function be check whether the feature is enabled, and be called differently (_is_multistore_enabled) rather then checking the amount of stores?","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d791182731ca603e2e10573326e2c87098907317","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"331d5110_78eb83c2","line":61,"in_reply_to":"5e3f7e1d_6551b7a1","updated":"2022-02-16 17:22:28.000000000","message":"1) import image works a) if glance is configured through multistore configuration, regardless of the amount of storages (one or more) \n\nThis is correct\n\n2) import image works if glance is configured to have multiple stores, which requires the new multistore way of configuring.\n\nThis is totally wrong\n\n\nAs of now you can configure stores two ways;\n\n1. Old way\n[glance_store]\nstores \u003d file,swift,http\ndefault_store \u003d file\nfilesystem_store_datadir \u003d /path/to/file/system\n\n\n2. Multistore way\n2.1 more than one store\n[Default]\nenabled_backends \u003d fast:rbd,slow:file\n\n[glance_store]\ndefault_backend \u003d fast\n\n[fast]\n\u003crbd_specific_options\u003e\n\n[slow]\n\u003cfile_store_specific_options\u003e\n\n2.2 only one store\n[Default]\nenabled_backends \u003d fast:rbd\n\n[glance_store]\ndefault_backend \u003d fast\n\n[fast]\n\u003crbd_specific_options\u003e\n\nAFAIK, this option is required to run tests to import image in multiple stores and copy existing image in multiple stores. The first case will be possible to run even if single store is configured, but the later one i.e. copy image will not work if there is only single store configured.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f36e32e6aa4ebad7ca0b3699b858bcea318f2240","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"dca8a138_e3765105","line":61,"in_reply_to":"68be3dd3_224cacfd","updated":"2022-02-17 11:01:23.000000000","message":"\u003e \u003e Thanks, so \"1) import image works a) if glance is configured through multistore configuration, regardless of the amount of storages (one or more) \n\u003e \u003e This is correct\"\n\u003e \u003e \n\u003e \u003e Then at least the commit message should be changed.\"\n\u003e \u003e This is an attempt to populate tempestconf with\n\u003e \u003e multistore feature enabled if and only if multiple\n\u003e \u003e stores are available.\"\n\u003e \u003e \n\u003e \u003e But then, shouldn\u0027t the function be check whether the feature is enabled, and be called differently (_is_multistore_enabled) rather then checking the amount of stores?\n\u003e \n\u003e Agree, As per the commit message I thought the patch is to check if multistore is configured but internally it seems to run import workflow like import images in more than one store or copying existing images in more than one store. I think we should add a note here to explain why we need more than 1 store and set it here if num_stores \u003e 1.\n\n\nScratch my latest comment, I think we should rename this method to \u0027_is_multistore_enabled\u0027 and set the option in tempest.conf based on that.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"74fbc45fc67fb2218145d2b1c7b17b85e02da06b","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"e222bdb9_265c77fd","line":61,"in_reply_to":"77e4ad26_71bdd9e8","updated":"2022-02-16 15:24:57.000000000","message":"Sorry, it\u0027s not clear to me.\n\nDoes it mean that, when you have multistore enabled but you define a single store (as it will happen in the future when you remove the single store configuration support), the import_image feature still works? Does it mean that feature is really linked to the availability of \"multistore config\" and not the number of store?","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"a9f9b0dd3d1cd78fdd0adb7bfa643fe3bd19a28d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"43f8f942_1adf937e","line":61,"in_reply_to":"dca8a138_e3765105","updated":"2022-03-08 15:56:07.000000000","message":"Done","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"55929c2b0510fc0d8d07779e08588fd925739f02","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"09a137f8_14b36ed9","line":61,"in_reply_to":"e222bdb9_265c77fd","updated":"2022-02-16 15:38:12.000000000","message":"Right, I can define single store define using multistore config as shown in above comment.\n\nImport image is independent of store configuration, it will work whether you have single store or multiple stores. Only thing is if you have single store configured then you will not be able to use copy-image import plugin which requires more than one store configured.\n\nLet me know if you have any further queries around it.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c5303b88f7f7a908d8c3809facd75544d1f49cf2","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    def set_default_tempest_options(self, conf):"},{"line_number":59,"context_line":"        # set \u0027image-feature-enabled\u0027 only if multiple stores available"},{"line_number":60,"context_line":"        num_stores \u003d self._get_number_of_stores()"},{"line_number":61,"context_line":"        if num_stores \u003e 0:"},{"line_number":62,"context_line":"            conf.set(\u0027image-feature-enabled\u0027, \u0027import_image\u0027, \u0027True\u0027)"},{"line_number":63,"context_line":"        # When cirros is the image, set validation.image_ssh_user to cirros."},{"line_number":64,"context_line":"        # The option is heavily used in CI and it\u0027s also usefull for refstack,"}],"source_content_type":"text/x-python","patch_set":13,"id":"68be3dd3_224cacfd","line":61,"in_reply_to":"e764b1ae_808b7bb0","updated":"2022-02-17 10:58:22.000000000","message":"\u003e Thanks, so \"1) import image works a) if glance is configured through multistore configuration, regardless of the amount of storages (one or more) \n\u003e This is correct\"\n\u003e \n\u003e Then at least the commit message should be changed.\"\n\u003e This is an attempt to populate tempestconf with\n\u003e multistore feature enabled if and only if multiple\n\u003e stores are available.\"\n\u003e \n\u003e But then, shouldn\u0027t the function be check whether the feature is enabled, and be called differently (_is_multistore_enabled) rather then checking the amount of stores?\n\nAgree, As per the commit message I thought the patch is to check if multistore is configured but internally it seems to run import workflow like import images in more than one store or copying existing images in more than one store. I think we should add a note here to explain why we need more than 1 store and set it here if num_stores \u003e 1.","commit_id":"c72239914116fde2e4a90bedd1b14b2f263aae47"}]}
