)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d07cc0710f9bf346d203789bf1070025d5a6b6d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8123169b_1dd5a78b","updated":"2022-02-02 15:47:36.000000000","message":"I think functional test is not possible here but we should have unit test to cover all possible scenarios.","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2219285db30c4913c1059b98d6c67165efb9a08b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6abe2488_34a5d583","updated":"2022-02-03 09:50:13.000000000","message":"I think with each addition of new API we increase the minor version of image API, same thing is needed to done here;\nfor example;\nhttps://review.opendev.org/c/openstack/glance/+/775860","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"2a76f3d9e669840c77ee0335595f118c1fdb2b5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a0b697fa_03c10bbc","updated":"2022-02-03 05:34:27.000000000","message":"Still working on unit tests.","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"425dd6d130fb31b8e3ca99d7a90e2c20c4c7f471","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6bf54af5_03b8346e","updated":"2022-02-09 14:05:01.000000000","message":"Some nits and one suggestion inline.\nI think we are getting close now.\n\nThank you for your patience Mridula!","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4dacc2bf38d60dd30bfbdb9ff30d5e49a18e0c2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8a60a955_c31aae51","updated":"2022-02-09 13:53:18.000000000","message":"recheck cinder failure","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"45c406cb486ea47ad8a97fbef09c63f47c24ace4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8f6c4eab_0a7b5f9e","updated":"2022-02-11 14:05:24.000000000","message":"Minor change, other than that it is good to go.\n","commit_id":"a814cbc4335ab993e690c6fb8271a6525ad08ad1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"adbe50e5f0f70c4ef413e0939a48d335505a3ee4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f42fbf4e_28f3c076","updated":"2022-02-16 05:56:05.000000000","message":"I have just rebased the patch and made changes related to image version.","commit_id":"a34764ecac0ab0c3dc8ecd2d923e05ee2275b72b"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"c981d2a81c6021cc9f3a61d5dc50b7aeaa81f26f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2f7213c3_c837ede8","updated":"2022-02-16 13:47:42.000000000","message":"Thanks!","commit_id":"a34764ecac0ab0c3dc8ecd2d923e05ee2275b72b"}],"api-ref/source/v2/discovery.inc":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"45c406cb486ea47ad8a97fbef09c63f47c24ace4","unresolved":true,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":".. rest_method::  GET /v2/info/stores/detail"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Lists all the backend stores, with detail, accessible to admins, "},{"line_number":136,"context_line":"for non-admin user API will return bad request."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Normal response codes: 200"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"af85e358_e53a952a","line":135,"range":{"start_line":135,"start_character":64,"end_line":135,"end_character":65},"updated":"2022-02-11 14:05:24.000000000","message":"nit:remove trailing backspace","commit_id":"a814cbc4335ab993e690c6fb8271a6525ad08ad1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"8f7a8491595c5fb7012ce32becb0b4a56d9bb630","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":".. rest_method::  GET /v2/info/stores/detail"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Lists all the backend stores, with detail, accessible to admins, "},{"line_number":136,"context_line":"for non-admin user API will return bad request."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Normal response codes: 200"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"97a64cdb_8f051645","line":135,"range":{"start_line":135,"start_character":64,"end_line":135,"end_character":65},"in_reply_to":"af85e358_e53a952a","updated":"2022-02-14 08:59:00.000000000","message":"Done","commit_id":"a814cbc4335ab993e690c6fb8271a6525ad08ad1"}],"glance/api/v2/discovery.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"31b9e544ea10377b549b12657d950c22a11bcfa6","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get_stores_detail(self, req):"},{"line_number":68,"context_line":"        enabled_backends \u003d CONF.enabled_backends"},{"line_number":69,"context_line":"        if not enabled_backends:"},{"line_number":70,"context_line":"            msg \u003d _(\"Multi backend is not supported at this site.\")"},{"line_number":71,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        backends \u003d []"},{"line_number":74,"context_line":"        for backend in enabled_backends.copy():"},{"line_number":75,"context_line":"            if backend.startswith(\"os_glance_\"):"},{"line_number":76,"context_line":"                continue"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            stores \u003d {}"},{"line_number":79,"context_line":"            stores[\u0027id\u0027] \u003d backend"},{"line_number":80,"context_line":"            stores[\u0027type\u0027] \u003d enabled_backends[backend]"},{"line_number":81,"context_line":"            description \u003d getattr(CONF, backend).store_description"},{"line_number":82,"context_line":"            if description:"},{"line_number":83,"context_line":"                stores[\u0027description\u0027] \u003d description"},{"line_number":84,"context_line":"            if backend \u003d\u003d CONF.glance_store.default_backend:"},{"line_number":85,"context_line":"                stores[\u0027default\u0027] \u003d \"true\""},{"line_number":86,"context_line":"            # Check if http store is configured then mark it as read-only"},{"line_number":87,"context_line":"            if enabled_backends[backend] \u003d\u003d \u0027http\u0027:"},{"line_number":88,"context_line":"                stores[\u0027read-only\u0027] \u003d \"true\""},{"line_number":89,"context_line":"            store \u003d glance_store.get_store_from_store_identifier(backend)"},{"line_number":90,"context_line":"            stores[\u0027properties\u0027] \u003d {}"},{"line_number":91,"context_line":"            if enabled_backends[backend] \u003d\u003d \u0027rbd\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"eb88f0af_5dbeb9e6","line":88,"range":{"start_line":69,"start_character":8,"end_line":88,"end_character":44},"updated":"2022-01-13 07:58:39.000000000","message":"You can simply replace this with;\nstores \u003d self.get_stores(req)\nand then;\nyou can iterate on the stores to add store properties for rbd store.","commit_id":"60cc3346e534e2daeb9e2aea178a9c940b457440"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6876c14baf784a929fb4a8e296aed2c4e2702ae1","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get_stores_detail(self, req):"},{"line_number":68,"context_line":"        enabled_backends \u003d CONF.enabled_backends"},{"line_number":69,"context_line":"        if not enabled_backends:"},{"line_number":70,"context_line":"            msg \u003d _(\"Multi backend is not supported at this site.\")"},{"line_number":71,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        backends \u003d []"},{"line_number":74,"context_line":"        for backend in enabled_backends.copy():"},{"line_number":75,"context_line":"            if backend.startswith(\"os_glance_\"):"},{"line_number":76,"context_line":"                continue"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            stores \u003d {}"},{"line_number":79,"context_line":"            stores[\u0027id\u0027] \u003d backend"},{"line_number":80,"context_line":"            stores[\u0027type\u0027] \u003d enabled_backends[backend]"},{"line_number":81,"context_line":"            description \u003d getattr(CONF, backend).store_description"},{"line_number":82,"context_line":"            if description:"},{"line_number":83,"context_line":"                stores[\u0027description\u0027] \u003d description"},{"line_number":84,"context_line":"            if backend \u003d\u003d CONF.glance_store.default_backend:"},{"line_number":85,"context_line":"                stores[\u0027default\u0027] \u003d \"true\""},{"line_number":86,"context_line":"            # Check if http store is configured then mark it as read-only"},{"line_number":87,"context_line":"            if enabled_backends[backend] \u003d\u003d \u0027http\u0027:"},{"line_number":88,"context_line":"                stores[\u0027read-only\u0027] \u003d \"true\""},{"line_number":89,"context_line":"            store \u003d glance_store.get_store_from_store_identifier(backend)"},{"line_number":90,"context_line":"            stores[\u0027properties\u0027] \u003d {}"},{"line_number":91,"context_line":"            if enabled_backends[backend] \u003d\u003d \u0027rbd\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"cc76ac4f_9c713318","line":88,"range":{"start_line":69,"start_character":8,"end_line":88,"end_character":44},"in_reply_to":"eb88f0af_5dbeb9e6","updated":"2022-02-02 14:39:05.000000000","message":"Ack","commit_id":"60cc3346e534e2daeb9e2aea178a9c940b457440"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d07cc0710f9bf346d203789bf1070025d5a6b6d1","unresolved":true,"context_lines":[{"line_number":94,"context_line":"                                           \u0027thin_provisioning\u0027:"},{"line_number":95,"context_line":"                                           store_detail.thin_provisioning}"},{"line_number":96,"context_line":"        except exception.Forbidden as e:"},{"line_number":97,"context_line":"            LOG.debug(\"User not permitted to view details \")"},{"line_number":98,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        return {\u0027stores\u0027: stores}"}],"source_content_type":"text/x-python","patch_set":2,"id":"15e36dcb_f7f98e05","line":97,"range":{"start_line":97,"start_character":57,"end_line":97,"end_character":58},"updated":"2022-02-02 15:47:36.000000000","message":"nit:whitespace","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6dde6ee77a7fc01b5b29322d727916b7e59ecdec","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                           \u0027thin_provisioning\u0027:"},{"line_number":95,"context_line":"                                           store_detail.thin_provisioning}"},{"line_number":96,"context_line":"        except exception.Forbidden as e:"},{"line_number":97,"context_line":"            LOG.debug(\"User not permitted to view details \")"},{"line_number":98,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.msg)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        return {\u0027stores\u0027: stores}"}],"source_content_type":"text/x-python","patch_set":2,"id":"9bc1e15b_431f36b2","line":97,"range":{"start_line":97,"start_character":57,"end_line":97,"end_character":58},"in_reply_to":"15e36dcb_f7f98e05","updated":"2022-02-09 10:49:30.000000000","message":"Done","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"425dd6d130fb31b8e3ca99d7a90e2c20c4c7f471","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        enabled_backends \u003d CONF.enabled_backends"},{"line_number":82,"context_line":"        stores \u003d self.get_stores(req).get(\u0027stores\u0027)"},{"line_number":83,"context_line":"        try:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            api_policy.DiscoveryAPIPolicy("},{"line_number":86,"context_line":"                req.context,"},{"line_number":87,"context_line":"                enforcer\u003dself.policy).stores_info_detail()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9cf87476_f8267676","line":84,"updated":"2022-02-09 14:05:01.000000000","message":"remove this blank line","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"926fe3f2f43f47dd3d302412d9e31d5442f7a177","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        enabled_backends \u003d CONF.enabled_backends"},{"line_number":82,"context_line":"        stores \u003d self.get_stores(req).get(\u0027stores\u0027)"},{"line_number":83,"context_line":"        try:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            api_policy.DiscoveryAPIPolicy("},{"line_number":86,"context_line":"                req.context,"},{"line_number":87,"context_line":"                enforcer\u003dself.policy).stores_info_detail()"}],"source_content_type":"text/x-python","patch_set":3,"id":"75d7475a_dbc37b1c","line":84,"in_reply_to":"9cf87476_f8267676","updated":"2022-02-10 06:21:01.000000000","message":"Done","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"425dd6d130fb31b8e3ca99d7a90e2c20c4c7f471","unresolved":true,"context_lines":[{"line_number":87,"context_line":"                enforcer\u003dself.policy).stores_info_detail()"},{"line_number":88,"context_line":"            for store in stores:"},{"line_number":89,"context_line":"                store[\u0027type\u0027] \u003d enabled_backends[store[\u0027id\u0027]]"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"                store_detail \u003d glance_store.get_store_from_store_identifier("},{"line_number":92,"context_line":"                    store[\u0027id\u0027])"},{"line_number":93,"context_line":"                store[\u0027properties\u0027] \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"d18abe2a_8d21448a","line":90,"updated":"2022-02-09 14:05:01.000000000","message":"remove blank line","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"926fe3f2f43f47dd3d302412d9e31d5442f7a177","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                enforcer\u003dself.policy).stores_info_detail()"},{"line_number":88,"context_line":"            for store in stores:"},{"line_number":89,"context_line":"                store[\u0027type\u0027] \u003d enabled_backends[store[\u0027id\u0027]]"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"                store_detail \u003d glance_store.get_store_from_store_identifier("},{"line_number":92,"context_line":"                    store[\u0027id\u0027])"},{"line_number":93,"context_line":"                store[\u0027properties\u0027] \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"82283834_1de822c1","line":90,"in_reply_to":"d18abe2a_8d21448a","updated":"2022-02-10 06:21:01.000000000","message":"Done","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"425dd6d130fb31b8e3ca99d7a90e2c20c4c7f471","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                store_detail \u003d glance_store.get_store_from_store_identifier("},{"line_number":92,"context_line":"                    store[\u0027id\u0027])"},{"line_number":93,"context_line":"                store[\u0027properties\u0027] \u003d {}"},{"line_number":94,"context_line":"                if store[\u0027type\u0027] \u003d\u003d \u0027rbd\u0027:"},{"line_number":95,"context_line":"                    store[\u0027properties\u0027] \u003d {\u0027chunk_size\u0027:"},{"line_number":96,"context_line":"                                           store_detail.chunk_size,"},{"line_number":97,"context_line":"                                           \u0027pool\u0027: store_detail.pool,"}],"source_content_type":"text/x-python","patch_set":3,"id":"87729777_df36373e","line":94,"updated":"2022-02-09 14:05:01.000000000","message":"What if we move line no 91 inside this loop.\nThat way we don\u0027t need to call store side function for all the stores and if store is rbd then only we will fetch the required details.\n\nIn future if we decided to add properties for other stores then we can move this call outside.","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"926fe3f2f43f47dd3d302412d9e31d5442f7a177","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                store_detail \u003d glance_store.get_store_from_store_identifier("},{"line_number":92,"context_line":"                    store[\u0027id\u0027])"},{"line_number":93,"context_line":"                store[\u0027properties\u0027] \u003d {}"},{"line_number":94,"context_line":"                if store[\u0027type\u0027] \u003d\u003d \u0027rbd\u0027:"},{"line_number":95,"context_line":"                    store[\u0027properties\u0027] \u003d {\u0027chunk_size\u0027:"},{"line_number":96,"context_line":"                                           store_detail.chunk_size,"},{"line_number":97,"context_line":"                                           \u0027pool\u0027: store_detail.pool,"}],"source_content_type":"text/x-python","patch_set":3,"id":"a18321b5_444bf85e","line":94,"in_reply_to":"87729777_df36373e","updated":"2022-02-10 06:21:01.000000000","message":"Ack","commit_id":"bbb168767cb695b1e6407f3d331d86ff474413f5"}],"glance/policies/discovery.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d07cc0710f9bf346d203789bf1070025d5a6b6d1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"853bde4b_6ac3ea05","updated":"2022-02-02 15:47:36.000000000","message":"Missing copywrite statement","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6dde6ee77a7fc01b5b29322d727916b7e59ecdec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9caa4bd2_08ca5acb","in_reply_to":"853bde4b_6ac3ea05","updated":"2022-02-09 10:49:30.000000000","message":"Done","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"}],"glance/tests/unit/v2/test_discovery_stores.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d07cc0710f9bf346d203789bf1070025d5a6b6d1","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        for stores in output[\"stores\"]:"},{"line_number":76,"context_line":"            self.assertFalse(stores[\"id\"].startswith(\"os_glance_\"))"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_get_stores_detail(self):"},{"line_number":79,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":80,"context_line":"                            \u0027fast-rbd\u0027]"},{"line_number":81,"context_line":"        available_store_type \u003d [\u0027file\u0027, \u0027file\u0027, \u0027http\u0027, \u0027cinder\u0027, \u0027rbd\u0027]"},{"line_number":82,"context_line":"        req \u003d unit_test_utils.get_fake_request(roles\u003d[\u0027admin\u0027])"},{"line_number":83,"context_line":"        output \u003d self.controller.get_stores_detail(req)"},{"line_number":84,"context_line":"        self.assertIn(\u0027stores\u0027, output)"},{"line_number":85,"context_line":"        for stores in output[\u0027stores\u0027]:"},{"line_number":86,"context_line":"            self.assertIn(\u0027id\u0027, stores)"},{"line_number":87,"context_line":"            self.assertIn(stores[\u0027id\u0027], available_stores)"},{"line_number":88,"context_line":"            self.assertIn(stores[\u0027type\u0027], available_store_type)"},{"line_number":89,"context_line":"            self.assertIsNotNone(stores[\u0027properties\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_stores_detail_rbd_store(self):"},{"line_number":92,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":93,"context_line":"                            \u0027fast-rbd\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"0536c359_285a7e0e","line":90,"range":{"start_line":78,"start_character":4,"end_line":90,"end_character":0},"updated":"2022-02-02 15:47:36.000000000","message":"what is the difference between these two tests?\n\nAlso we need one test to check Forbidden if role is not admin","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6dde6ee77a7fc01b5b29322d727916b7e59ecdec","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        for stores in output[\"stores\"]:"},{"line_number":76,"context_line":"            self.assertFalse(stores[\"id\"].startswith(\"os_glance_\"))"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_get_stores_detail(self):"},{"line_number":79,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":80,"context_line":"                            \u0027fast-rbd\u0027]"},{"line_number":81,"context_line":"        available_store_type \u003d [\u0027file\u0027, \u0027file\u0027, \u0027http\u0027, \u0027cinder\u0027, \u0027rbd\u0027]"},{"line_number":82,"context_line":"        req \u003d unit_test_utils.get_fake_request(roles\u003d[\u0027admin\u0027])"},{"line_number":83,"context_line":"        output \u003d self.controller.get_stores_detail(req)"},{"line_number":84,"context_line":"        self.assertIn(\u0027stores\u0027, output)"},{"line_number":85,"context_line":"        for stores in output[\u0027stores\u0027]:"},{"line_number":86,"context_line":"            self.assertIn(\u0027id\u0027, stores)"},{"line_number":87,"context_line":"            self.assertIn(stores[\u0027id\u0027], available_stores)"},{"line_number":88,"context_line":"            self.assertIn(stores[\u0027type\u0027], available_store_type)"},{"line_number":89,"context_line":"            self.assertIsNotNone(stores[\u0027properties\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_stores_detail_rbd_store(self):"},{"line_number":92,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":93,"context_line":"                            \u0027fast-rbd\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"303a04ca_b59ea320","line":90,"range":{"start_line":78,"start_character":4,"end_line":90,"end_character":0},"in_reply_to":"0536c359_285a7e0e","updated":"2022-02-09 10:49:30.000000000","message":"The test_get_stores_detail is a general check for the api to check the fields returned and the other tests is for checking the properties of particular store.","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"425dd6d130fb31b8e3ca99d7a90e2c20c4c7f471","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        for stores in output[\"stores\"]:"},{"line_number":76,"context_line":"            self.assertFalse(stores[\"id\"].startswith(\"os_glance_\"))"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_get_stores_detail(self):"},{"line_number":79,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":80,"context_line":"                            \u0027fast-rbd\u0027]"},{"line_number":81,"context_line":"        available_store_type \u003d [\u0027file\u0027, \u0027file\u0027, \u0027http\u0027, \u0027cinder\u0027, \u0027rbd\u0027]"},{"line_number":82,"context_line":"        req \u003d unit_test_utils.get_fake_request(roles\u003d[\u0027admin\u0027])"},{"line_number":83,"context_line":"        output \u003d self.controller.get_stores_detail(req)"},{"line_number":84,"context_line":"        self.assertIn(\u0027stores\u0027, output)"},{"line_number":85,"context_line":"        for stores in output[\u0027stores\u0027]:"},{"line_number":86,"context_line":"            self.assertIn(\u0027id\u0027, stores)"},{"line_number":87,"context_line":"            self.assertIn(stores[\u0027id\u0027], available_stores)"},{"line_number":88,"context_line":"            self.assertIn(stores[\u0027type\u0027], available_store_type)"},{"line_number":89,"context_line":"            self.assertIsNotNone(stores[\u0027properties\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_stores_detail_rbd_store(self):"},{"line_number":92,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":93,"context_line":"                            \u0027fast-rbd\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"beeb23b9_5c7b6a58","line":90,"range":{"start_line":78,"start_character":4,"end_line":90,"end_character":0},"in_reply_to":"303a04ca_b59ea320","updated":"2022-02-09 14:05:01.000000000","message":"I am saying is you can have line #97 to #102 in this test also, there is no need to have two tests.","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"926fe3f2f43f47dd3d302412d9e31d5442f7a177","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        for stores in output[\"stores\"]:"},{"line_number":76,"context_line":"            self.assertFalse(stores[\"id\"].startswith(\"os_glance_\"))"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def test_get_stores_detail(self):"},{"line_number":79,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":80,"context_line":"                            \u0027fast-rbd\u0027]"},{"line_number":81,"context_line":"        available_store_type \u003d [\u0027file\u0027, \u0027file\u0027, \u0027http\u0027, \u0027cinder\u0027, \u0027rbd\u0027]"},{"line_number":82,"context_line":"        req \u003d unit_test_utils.get_fake_request(roles\u003d[\u0027admin\u0027])"},{"line_number":83,"context_line":"        output \u003d self.controller.get_stores_detail(req)"},{"line_number":84,"context_line":"        self.assertIn(\u0027stores\u0027, output)"},{"line_number":85,"context_line":"        for stores in output[\u0027stores\u0027]:"},{"line_number":86,"context_line":"            self.assertIn(\u0027id\u0027, stores)"},{"line_number":87,"context_line":"            self.assertIn(stores[\u0027id\u0027], available_stores)"},{"line_number":88,"context_line":"            self.assertIn(stores[\u0027type\u0027], available_store_type)"},{"line_number":89,"context_line":"            self.assertIsNotNone(stores[\u0027properties\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_stores_detail_rbd_store(self):"},{"line_number":92,"context_line":"        available_stores \u003d [\u0027cheap\u0027, \u0027fast\u0027, \u0027readonly_store\u0027, \u0027fast-cinder\u0027,"},{"line_number":93,"context_line":"                            \u0027fast-rbd\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"58293c93_2f1b1975","line":90,"range":{"start_line":78,"start_character":4,"end_line":90,"end_character":0},"in_reply_to":"beeb23b9_5c7b6a58","updated":"2022-02-10 06:21:01.000000000","message":"Ack","commit_id":"abcdfb9f33e6d2572786703934e2e04f344ecfd8"}]}
