)]}'
{"specs/ussuri/approved/glance_store/multiple-cinder-backend-support.rst":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"From Train onwards Glance is fully supporting configuring multiple glance"},{"line_number":14,"context_line":"stores. In case of cinder, it internally supports configuring multiple"},{"line_number":15,"context_line":"backends. If cinder driver is configured to use as glance backend then"},{"line_number":16,"context_line":"at the moment it is not possible to recognize which cinder backend is"},{"line_number":17,"context_line":"used by glance."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_f2199288","line":15,"range":{"start_line":15,"start_character":10,"end_line":15,"end_character":66},"updated":"2020-03-24 12:49:26.000000000","message":"If cinder has configured multiple backends and glance store is set as cinder","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"As of now cinder driver of glance_store generates location url using"},{"line_number":23,"context_line":"\u0027cinder://\u0027 prefix only. If operator configures multiple stores of cinder"},{"line_number":24,"context_line":"then it is difficult to analyse the image is stored in which of the"},{"line_number":25,"context_line":"cinder store as the location url for the image is \u0027cinder://\u003cimage_id\u003e\u0027. In"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_c9194089","line":22,"range":{"start_line":22,"start_character":17,"end_line":22,"end_character":23},"updated":"2020-03-24 12:49:26.000000000","message":"I\u0027m confused with the meaning of driver here?\nIn terms of glance_store we have cinder store\nin terms of cinder we have cinder backend(s)","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"As of now cinder driver of glance_store generates location url using"},{"line_number":23,"context_line":"\u0027cinder://\u0027 prefix only. If operator configures multiple stores of cinder"},{"line_number":24,"context_line":"then it is difficult to analyse the image is stored in which of the"},{"line_number":25,"context_line":"cinder store as the location url for the image is \u0027cinder://\u003cimage_id\u003e\u0027. In"},{"line_number":26,"context_line":"order to make cinder driver of glance compatible with multiple stores,"},{"line_number":27,"context_line":"glance needs to change the way of generating the location url and"},{"line_number":28,"context_line":"append something unique id to the URL so that it is easier to understand"},{"line_number":29,"context_line":"which image is stored in which cinder backend. For example, cinder internally"},{"line_number":30,"context_line":"configured lvm and nfs backend and glance is used cinder as a backend driver,"},{"line_number":31,"context_line":"then when any image is uploaded in glance it will always go to default backend"},{"line_number":32,"context_line":"of cinder. There is no way in cinder driver of glance_store to specify that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_c930200b","line":29,"range":{"start_line":23,"start_character":25,"end_line":29,"end_character":46},"updated":"2020-03-24 12:49:26.000000000","message":"I think this needs to be divided into two cases:\n1) when cinder configures multiple backends and glance configures single cinder store\n2) when cinder configures multiple backends and glance configures multiple cinder store\n\nIn case 2, given the config below, we can define which backends should be allowed for a particular store but incase of overlap (two stores using the same backend), i think we need some handling","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to make cinder driver of glance_store aware about backends configured"},{"line_number":40,"context_line":"in cinder, we propose to add new dictionary type (key:value) configuration"},{"line_number":41,"context_line":"option `cinder_backends` for cinder driver of glance_store which will"},{"line_number":42,"context_line":"specify the backends configured in cinder."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_9c03f80d","line":39,"range":{"start_line":39,"start_character":17,"end_line":39,"end_character":46},"updated":"2020-03-24 12:49:26.000000000","message":"same as above","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    [reliable]"},{"line_number":61,"context_line":"    cinder_state_transition_timeout \u003d 300"},{"line_number":62,"context_line":"    description \u003d Reliable access to cinder store"},{"line_number":63,"context_line":"    cinder_backends \u003d lvmdriver-1:lvm,nfsdriver-1:nfs"},{"line_number":64,"context_line":"    # etc.."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"As shown in the above example, `cinder_backends` is a comma delimited key,value"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_1cf528cc","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":53},"updated":"2020-03-24 12:49:26.000000000","message":"This seems too static and would need updating everytime we change the cinder backend configuration.\nIt would be great if cinder could expose \u0027enabled_backends\u0027 parameter in an API and glance could access it.\nI know we can query get-pools and extract backend info from that but i\u0027m not sure about that.\nAlso i can\u0027t think of any other cinder API currently to do the same on top of my head.","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    # etc.."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"As shown in the above example, `cinder_backends` is a comma delimited key,value"},{"line_number":67,"context_line":"pair of backneds configured in cinder, where key will represent the name of"},{"line_number":68,"context_line":"cinder backend and value will be considered as backend type or identifier of"},{"line_number":69,"context_line":"the cinder backend."},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_5c47b04c","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":16},"updated":"2020-03-24 12:49:26.000000000","message":"backends","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"is the example of modified output of stores discovery call::"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    {"},{"line_number":98,"context_line":"       \"stores\":["},{"line_number":99,"context_line":"          {"},{"line_number":100,"context_line":"             \"id\":\"lvmdriver-1\","},{"line_number":101,"context_line":"             \"description\": \"Reliable cinder store\""},{"line_number":102,"context_line":"          },"},{"line_number":103,"context_line":"          {"},{"line_number":104,"context_line":"             \"id\":\"fast\","},{"line_number":105,"context_line":"             \"description\": \"Fast access to rbd store\","},{"line_number":106,"context_line":"             \"default\": true"},{"line_number":107,"context_line":"          },"},{"line_number":108,"context_line":"          {"},{"line_number":109,"context_line":"             \"id\":\"nfsdriver-1\","},{"line_number":110,"context_line":"             \"description\": \"Reliable cinder store\""},{"line_number":111,"context_line":"          }"},{"line_number":112,"context_line":"       ]"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_7f3546da","line":111,"range":{"start_line":98,"start_character":7,"end_line":111,"end_character":11},"updated":"2020-03-24 12:49:26.000000000","message":"if two cinder stores have configured the same backend (say lvmdriver-1) in their cinder_backend config, what will be output?","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5996e65fd680148ecd3c7292e811455232da5fe8","unresolved":false,"context_lines":[{"line_number":181,"context_line":"Work Items"},{"line_number":182,"context_line":"----------"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* Add new `cinder_backends` config option in cider driver"},{"line_number":185,"context_line":"* Modify cinder driver initialization to include in scheme_map"},{"line_number":186,"context_line":"* Modify cinder location url"},{"line_number":187,"context_line":"* Modify stores info discovery call"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df33271e_5f3202f3","line":184,"range":{"start_line":184,"start_character":51,"end_line":184,"end_character":57},"updated":"2020-03-24 12:49:26.000000000","message":"store?","commit_id":"3c99268b0db7118d5960a3403b7cc2ef61155533"}],"specs/victoria/approved/glance_store/multiple-cinder-backend-support.rst":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":22,"context_line":"1. As of now cinder can configure multiple backends and user/operator can"},{"line_number":23,"context_line":"decide which backend to use using available volume types. If glance store is"},{"line_number":24,"context_line":"set to use cinder then every time new image is created it will always be"},{"line_number":25,"context_line":"uploaded to default backend of cinder as glance is not aware about different"},{"line_number":26,"context_line":"volume types available in cinder."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"2. If cinder store is configured to use in glance then while creating the"},{"line_number":29,"context_line":"image cinder store of glance creates location URL with `cinder://` prefix"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_df850f09","line":26,"range":{"start_line":25,"start_character":41,"end_line":26,"end_character":33},"updated":"2020-05-30 13:26:23.000000000","message":"this is not completely accurate as we\u0027ve an option in glance store to provide volume type while creating volumes[1]\nbut that\u0027s inefficient as we would have to change the volume type again and again and restart the service to use a different backend.\n\n[1] https://github.com/openstack/glance_store/blob/master/glance_store/_drivers/cinder.py#L290","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Cinder store of glance has one configuration option `cinder_volume_type` where"},{"line_number":40,"context_line":"user/operator can set the volume type and all newly created images will be"},{"line_number":41,"context_line":"stored in cinder backend associated with that volume type. We propose to"},{"line_number":42,"context_line":"deprecate this configuration option as it does not allows us to leverage"},{"line_number":43,"context_line":"other backends configured in cinder. Instead we proposing to add new API"},{"line_number":44,"context_line":"parameter `cinder_volume_type` for `upload` and `import` api which we can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_1f7b0728","line":41,"range":{"start_line":39,"start_character":0,"end_line":41,"end_character":58},"updated":"2020-05-30 13:26:23.000000000","message":"this can be a part of problem description.\nsee comment above.","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":43,"context_line":"other backends configured in cinder. Instead we proposing to add new API"},{"line_number":44,"context_line":"parameter `cinder_volume_type` for `upload` and `import` api which we can"},{"line_number":45,"context_line":"pass further to cinder while creating the image. User can decide which"},{"line_number":46,"context_line":"volume type he/she wants to use by using cinder\u0027s `type-list` command. In"},{"line_number":47,"context_line":"case wrong/invalid volume type is specified then operation will fail and"},{"line_number":48,"context_line":"image will remain in `queued` state."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_5f71ff43","line":46,"range":{"start_line":46,"start_character":12,"end_line":46,"end_character":24},"updated":"2020-05-30 13:26:23.000000000","message":"they want","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":53,"context_line":"location URL should looked like;"},{"line_number":54,"context_line":"`cinder://store-name/image-id`."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":57,"context_line":"mechanism of glance which will update the location URL of existing images"},{"line_number":58,"context_line":"as per new format."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_9f943739","line":58,"range":{"start_line":56,"start_character":0,"end_line":58,"end_character":18},"updated":"2020-05-30 13:26:23.000000000","message":"I\u0027m not familiar with the way proposed here.\ncan you elaborate on this?\nI think this can be solved with the help of a db migration?","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":83,"context_line":"assume /v2/\u003curl\u003e"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"**[Modified API] Upload image**"},{"line_number":86,"context_line":"We propose to add new request parameter `cinder_volume_type` to upload"},{"line_number":87,"context_line":"image API. In case if `cinder_volume_type` is not specified then the"},{"line_number":88,"context_line":"new image will be stored in default backend of cinder."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_ff957333","line":86,"range":{"start_line":86,"start_character":41,"end_line":86,"end_character":59},"updated":"2020-05-30 13:26:23.000000000","message":"i\u0027m not sure how much this reflects to the original parameter but if we\u0027re talking about the parameter to be passed in CLI, i think the actual parameter should be like --cinder-volume-type","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":106,"context_line":"Other end user impact"},{"line_number":107,"context_line":"---------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"End user should be aware of different volume types available in cinder. He/She"},{"line_number":110,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":111,"context_line":"cinder should be used to create/store new images."},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_df9a2f60","line":109,"range":{"start_line":109,"start_character":72,"end_line":109,"end_character":78},"updated":"2020-05-30 13:26:23.000000000","message":"They","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":107,"context_line":"---------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"End user should be aware of different volume types available in cinder. He/She"},{"line_number":110,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":111,"context_line":"cinder should be used to create/store new images."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Performance Impact"},{"line_number":114,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_5fa61fad","line":111,"range":{"start_line":110,"start_character":49,"end_line":111,"end_character":49},"updated":"2020-05-30 13:26:23.000000000","message":"one thing to note here is the type name can be anything and it can point to any backend.\nthe best way to confirm a particular backend is to check \u0027volume_backend_name\u0027 in \u0027extra_specs\u0027 of volume type.","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1c8d3ca22c6e4da7a3099c76ca524719fd210d78","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Deprecate `cinder_volume_type` configuration option"},{"line_number":154,"context_line":"* Introduce new API parameter for upload and import API"},{"line_number":155,"context_line":"* Modify cinder driver initialization"},{"line_number":156,"context_line":"* Modify cinder location url"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff570b3c_9fbd57b9","line":155,"range":{"start_line":155,"start_character":0,"end_line":155,"end_character":37},"updated":"2020-05-30 13:26:23.000000000","message":"where exactly and for which purpose do we need this change ?","commit_id":"55eb004ce638042258135d2ccfce70dee152ec0a"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6f182038c50fd0f857abe260e080741cfd86f243","unresolved":false,"context_lines":[{"line_number":40,"context_line":"We propose that while using cinder as a store for glance, operator should"},{"line_number":41,"context_line":"use all or expected volume types using `enabled_backends` configuration"},{"line_number":42,"context_line":"option. Then for each of the store defined in `enabled_backends`"},{"line_number":43,"context_line":"configuration option operator should set associated volume_type using"},{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"For example, if cinder has configured 2 volume types `lvm` and `nfs` then"},{"line_number":47,"context_line":"glance configuration should look like;::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_c32095af","line":44,"range":{"start_line":43,"start_character":41,"end_line":44,"end_character":69},"updated":"2020-06-22 12:08:26.000000000","message":"Just to be clear and keep the lazy loading simple as well. We should make the statement that we only support one store per volume type. Also we should make the stance that _IF_ cinder store is configured that has \"cinder_volume_type\" set, all configured cinder stores needs to have it set.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"71b111138bf5f95950df6f35a49f5356b3965c29","unresolved":false,"context_lines":[{"line_number":40,"context_line":"We propose that while using cinder as a store for glance, operator should"},{"line_number":41,"context_line":"use all or expected volume types using `enabled_backends` configuration"},{"line_number":42,"context_line":"option. Then for each of the store defined in `enabled_backends`"},{"line_number":43,"context_line":"configuration option operator should set associated volume_type using"},{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"For example, if cinder has configured 2 volume types `lvm` and `nfs` then"},{"line_number":47,"context_line":"glance configuration should look like;::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_145ac181","line":44,"range":{"start_line":43,"start_character":41,"end_line":44,"end_character":69},"in_reply_to":"bf51134e_c32095af","updated":"2020-06-22 14:14:47.000000000","message":"+1,\n\nwill add this in new revision","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b3cc423469b3dbf405112ac055bbf26bf851908a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"For example, if cinder has configured 2 volume types `lvm` and `nfs` then"},{"line_number":47,"context_line":"glance configuration should look like;::"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    [DEFAULT]"},{"line_number":50,"context_line":"    # list of enabled stores identified by their property group name"},{"line_number":51,"context_line":"    enabled_backends \u003d lvm:cinder, nfs:cinder"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_6b4414b8","line":49,"updated":"2020-06-19 20:06:54.000000000","message":"I really like the symmetry with how backends are configured in cinder.conf.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6f182038c50fd0f857abe260e080741cfd86f243","unresolved":false,"context_lines":[{"line_number":46,"context_line":"For example, if cinder has configured 2 volume types `lvm` and `nfs` then"},{"line_number":47,"context_line":"glance configuration should look like;::"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    [DEFAULT]"},{"line_number":50,"context_line":"    # list of enabled stores identified by their property group name"},{"line_number":51,"context_line":"    enabled_backends \u003d lvm:cinder, nfs:cinder"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_8354dd22","line":49,"in_reply_to":"bf51134e_6b4414b8","updated":"2020-06-22 12:08:26.000000000","message":"Just to remind this is only an example. There is no hard requirement for operator to expose what backend is driving the store and we definitely should not introduce such. Most of the time the end user will not need that info anyways.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"71b111138bf5f95950df6f35a49f5356b3965c29","unresolved":false,"context_lines":[{"line_number":46,"context_line":"For example, if cinder has configured 2 volume types `lvm` and `nfs` then"},{"line_number":47,"context_line":"glance configuration should look like;::"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    [DEFAULT]"},{"line_number":50,"context_line":"    # list of enabled stores identified by their property group name"},{"line_number":51,"context_line":"    enabled_backends \u003d lvm:cinder, nfs:cinder"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_34542553","line":49,"in_reply_to":"bf51134e_8354dd22","updated":"2020-06-22 14:14:47.000000000","message":"I will add this a note here.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6f182038c50fd0f857abe260e080741cfd86f243","unresolved":false,"context_lines":[{"line_number":73,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":74,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":77,"context_line":"mechanism of glance which will update the location URL of existing images"},{"line_number":78,"context_line":"as per new format. The lazy loading operation is a check before GET API"},{"line_number":79,"context_line":"call which traverse through image location and based on location URI"},{"line_number":80,"context_line":"it identifies in which glance store image data is stored and updates"},{"line_number":81,"context_line":"that information in location metadata. This mechanism is also useful"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_9e3392f6","line":78,"range":{"start_line":76,"start_character":0,"end_line":78,"end_character":18},"updated":"2020-06-22 12:08:26.000000000","message":"This needs a bit of sophistication. If there is only one store configured using Cinder _and_ it does not have \"cinder_volume_type\" set, we probably should leave the location untouched. When we update the location format, we need to do api call to Cinder to check which volume type that volume is to be able to match it accordingly.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e4a79eed09d5ff2d14625c65b0e3ea780b2517af","unresolved":false,"context_lines":[{"line_number":73,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":74,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":77,"context_line":"mechanism of glance which will update the location URL of existing images"},{"line_number":78,"context_line":"as per new format. The lazy loading operation is a check before GET API"},{"line_number":79,"context_line":"call which traverse through image location and based on location URI"},{"line_number":80,"context_line":"it identifies in which glance store image data is stored and updates"},{"line_number":81,"context_line":"that information in location metadata. This mechanism is also useful"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_fece0eb2","line":78,"range":{"start_line":76,"start_character":0,"end_line":78,"end_character":18},"in_reply_to":"bf51134e_9e3392f6","updated":"2020-06-22 12:17:13.000000000","message":"I assumed the reference to \"which cinder store\" referred to the names given to it from the above configuration. So names local to glance, not cinder.\n\nWe should definitely not try to rely on or duplicate information from the cinder side of things.\n\nWhich does lead me to think of a potential gotcha here. We can create a cinder volume from the glance side using the volume type specified in the glance config. But it is possible an administrator can go to cinder directly and retype that volume to something else. So there is a potential for a mismatch here between what glance thinks a volume type is and what that volume\u0027s current type actually is.\n\nSo we should only ever attempt to store the store name from the above config file example. And we would need to always use those config settings to associate store types with backend volume types. And it should probably be documented that the volume will only be the initial type defined by that store\u0027s configuration, but may differ over time for whatever reason.\n\nWhich also allows for the possibility that the administrator can update the glance store configuration to have the existing store name point to a different volume type.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"b45fc269e62271ec0a53ae0bd30c547223295f69","unresolved":false,"context_lines":[{"line_number":73,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":74,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":77,"context_line":"mechanism of glance which will update the location URL of existing images"},{"line_number":78,"context_line":"as per new format. The lazy loading operation is a check before GET API"},{"line_number":79,"context_line":"call which traverse through image location and based on location URI"},{"line_number":80,"context_line":"it identifies in which glance store image data is stored and updates"},{"line_number":81,"context_line":"that information in location metadata. This mechanism is also useful"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_c5dcafe5","line":78,"range":{"start_line":76,"start_character":0,"end_line":78,"end_character":18},"in_reply_to":"bf51134e_b4f67562","updated":"2020-06-29 13:53:23.000000000","message":"Erno,\n\nIf we avoid this and change the location URL for all the cinder store(s) even it is not using cinder_volume_type then there is no need to change lazy loading logic at glance side.\n\nAll changes will be managed at glance_store side only. So at the moment I am going forward with changing location url for all configured cinder stores.\n\nLet me know if you think otherwise and we should do changes at glance side lazy loading as well.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"71b111138bf5f95950df6f35a49f5356b3965c29","unresolved":false,"context_lines":[{"line_number":73,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":74,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":77,"context_line":"mechanism of glance which will update the location URL of existing images"},{"line_number":78,"context_line":"as per new format. The lazy loading operation is a check before GET API"},{"line_number":79,"context_line":"call which traverse through image location and based on location URI"},{"line_number":80,"context_line":"it identifies in which glance store image data is stored and updates"},{"line_number":81,"context_line":"that information in location metadata. This mechanism is also useful"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_b4f67562","line":78,"range":{"start_line":76,"start_character":0,"end_line":78,"end_character":18},"in_reply_to":"bf51134e_fece0eb2","updated":"2020-06-22 14:14:47.000000000","message":"I will think over this and put this in new revision accordingly.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6f182038c50fd0f857abe260e080741cfd86f243","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Other end user impact"},{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Operators should be aware of different volume types available in cinder. They"},{"line_number":115,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":116,"context_line":"cinder should be configured in glance-api.conf."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Performance Impact"},{"line_number":119,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_6378a9c3","line":116,"range":{"start_line":114,"start_character":0,"end_line":116,"end_character":47},"updated":"2020-06-22 12:08:26.000000000","message":"This should probably be under \"Other deployer impact\" topic.\n\nAll the end user should be concerned about is the store description and if it fits their needs. There is no hard requirement for the end user to even know it\u0027s cinder store they are going to be using.","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"71b111138bf5f95950df6f35a49f5356b3965c29","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Other end user impact"},{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Operators should be aware of different volume types available in cinder. They"},{"line_number":115,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":116,"context_line":"cinder should be configured in glance-api.conf."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Performance Impact"},{"line_number":119,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf51134e_74f85d48","line":116,"range":{"start_line":114,"start_character":0,"end_line":116,"end_character":47},"in_reply_to":"bf51134e_6378a9c3","updated":"2020-06-22 14:14:47.000000000","message":"Will correct this in new revision","commit_id":"e3dc9c72873f288089fb742193df387229f8cf65"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2c65bca767cc90a630075c237f43c2d5b3449b4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section. Even"},{"line_number":45,"context_line":"in cinder one cinder backend can be associated with multiple volume type(s)"},{"line_number":46,"context_line":"but glance will support only one store per cinder volume type. Also if"},{"line_number":47,"context_line":"cinder store is configured then operator needs to every cinder store which"},{"line_number":48,"context_line":"has `cinder_volume_type` configured."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"For example, if cinder has configured 2 volume types `fast` and `slow` then"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_d2fbd675","line":47,"range":{"start_line":47,"start_character":49,"end_line":47,"end_character":50},"updated":"2020-06-29 09:54:54.000000000","message":"define","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2c65bca767cc90a630075c237f43c2d5b3449b4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"configuration option operator should set associated volume_type using"},{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section. Even"},{"line_number":45,"context_line":"in cinder one cinder backend can be associated with multiple volume type(s)"},{"line_number":46,"context_line":"but glance will support only one store per cinder volume type. Also if"},{"line_number":47,"context_line":"cinder store is configured then operator needs to every cinder store which"},{"line_number":48,"context_line":"has `cinder_volume_type` configured."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"For example, if cinder has configured 2 volume types `fast` and `slow` then"},{"line_number":51,"context_line":"glance configuration should look like;::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_522d06fc","line":48,"range":{"start_line":46,"start_character":63,"end_line":48,"end_character":36},"updated":"2020-06-29 09:54:54.000000000","message":"Or\nOperator needs to configure `cinder_volume_type` for every cinder store defined.","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"b35b8b02ca03c6953019f8bbeb93e8ad1279e34d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"configuration option operator should set associated volume_type using"},{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section. Even"},{"line_number":45,"context_line":"in cinder one cinder backend can be associated with multiple volume type(s)"},{"line_number":46,"context_line":"but glance will support only one store per cinder volume type. Also if"},{"line_number":47,"context_line":"cinder store is configured then operator needs to every cinder store which"},{"line_number":48,"context_line":"has `cinder_volume_type` configured."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"For example, if cinder has configured 2 volume types `fast` and `slow` then"},{"line_number":51,"context_line":"glance configuration should look like;::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_88a92e91","line":48,"range":{"start_line":46,"start_character":63,"end_line":48,"end_character":36},"in_reply_to":"bf51134e_522d06fc","updated":"2020-06-29 14:26:15.000000000","message":"Done","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2c65bca767cc90a630075c237f43c2d5b3449b4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Security impact"},{"line_number":110,"context_line":"---------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Notifications impact"},{"line_number":115,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_f2489ab3","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":4},"updated":"2020-06-29 09:54:54.000000000","message":"we can reword this as a possible security impact\nhttps://review.opendev.org/#/c/182520/15/specs/liberty/image-volume-cache.rst@163","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"b35b8b02ca03c6953019f8bbeb93e8ad1279e34d","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Security impact"},{"line_number":110,"context_line":"---------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Notifications impact"},{"line_number":115,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_089d1e65","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":4},"in_reply_to":"bf51134e_d2611607","updated":"2020-06-29 14:26:15.000000000","message":"Done","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"4e9301f6b8c420c1df156f4beac5893a1cc592b5","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Security impact"},{"line_number":110,"context_line":"---------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Notifications impact"},{"line_number":115,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_d2611607","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":4},"in_reply_to":"bf51134e_f2489ab3","updated":"2020-06-29 10:03:17.000000000","message":"Something like this:\n\nThe image-volume is stored in the configured project `cinder_store_project_name` \nand can be accessed with configured user `cinder_store_user_name`.\n\nThere could be a potential risk if someone was able to get a hold of these credentials\nand access the image-volumes.\nWorst case is someone could alter the image-volumes if they had permission to \nperform any cinder operation on it such as retype, attach etc.\n\nCare will have to be taken to ensure it isn\u0027t accessible by normal users.","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b2c65bca767cc90a630075c237f43c2d5b3449b4","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Other deployer impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Operators should be aware of different volume types available in cinder. They"},{"line_number":133,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":134,"context_line":"cinder should be configured in glance-api.conf."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Developer impact"},{"line_number":137,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_1220aef6","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":47},"updated":"2020-06-29 09:54:54.000000000","message":"we are assuming here that the user has given appropriate names to the volume types. The main field is \u0027volume_backend_name\u0027 in the volume type extra specs which points towards the appropriate backend.","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"b35b8b02ca03c6953019f8bbeb93e8ad1279e34d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Other deployer impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Operators should be aware of different volume types available in cinder. They"},{"line_number":133,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":134,"context_line":"cinder should be configured in glance-api.conf."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Developer impact"},{"line_number":137,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_a87a3220","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":47},"in_reply_to":"bf51134e_1220aef6","updated":"2020-06-29 14:26:15.000000000","message":"This will be taken care at the initialization of glance-api service, we are going to validate that by querying to cinder from glance-store.","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2415a26c37af531a4a560184342a96402ef9a3f1","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Other deployer impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Operators should be aware of different volume types available in cinder. They"},{"line_number":133,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":134,"context_line":"cinder should be configured in glance-api.conf."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Developer impact"},{"line_number":137,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_7e9d6909","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":47},"in_reply_to":"bf51134e_3eee518b","updated":"2020-06-30 06:45:29.000000000","message":"If operator configures two cinder stores;\nenabled_backends \u003d cinder1:cinder,cinder2:cinder\n\nand sets cinder_volume_type for cinder1 store;\n[cinder1]\ncinder_volume_type \u003d xyz\n\nthen glance will query cinder to get available volume types and will  check if xyz is present or not. This validation is essential IMO.","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"192e16d4f8c2f9d736f35a5f43f1952d0cd965fe","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Other deployer impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Operators should be aware of different volume types available in cinder. They"},{"line_number":133,"context_line":"can use `type-list` command of cinder client and decide which backend of"},{"line_number":134,"context_line":"cinder should be configured in glance-api.conf."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Developer impact"},{"line_number":137,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_3eee518b","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":47},"in_reply_to":"bf51134e_a87a3220","updated":"2020-06-30 06:36:54.000000000","message":"We\u0027re going to query volume types?\nMy point is if we have a volume type with name `lvm_type` and has a volume_backend_name\u003d`nfs_backend` then user can set this type in glance cinder store thinking their volume will go in lvm backend but it would be pointing to nfs backend instead.","commit_id":"af8cb39753785dbf913edfebc19cd2ece4b9578e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c88313d4fbf5e4853fb594a92a5f921c5552dc17","unresolved":false,"context_lines":[{"line_number":133,"context_line":"operation on it such as retype, attach etc."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Care will have to be taken to ensure it isn\u0027t accessible by normal"},{"line_number":136,"context_line":"users."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Notifications impact"},{"line_number":139,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf51134e_d853e26b","line":136,"updated":"2020-06-30 15:57:43.000000000","message":"There\u0027s the \u0027cinder_endpoint_template\u0027 that allows you to not store credentials in the conf file, but instead store the image as a volume in the user\u0027s tenant in cinder.  Is there a reason why the cinder_endpoint_template is not an option with the multiple glance cinder stores?","commit_id":"ca2582aeb99617fb7e996521261e7ef8fa7d2ff1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"816c19b7a3270036aebe41489390294add6c9819","unresolved":false,"context_lines":[{"line_number":133,"context_line":"operation on it such as retype, attach etc."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Care will have to be taken to ensure it isn\u0027t accessible by normal"},{"line_number":136,"context_line":"users."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Notifications impact"},{"line_number":139,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf51134e_598d0d30","line":136,"in_reply_to":"bf51134e_d853e26b","updated":"2020-07-01 06:33:50.000000000","message":"When we don\u0027t specify the username and password in conf then glance_store uses the current context\u0027s user and tenant.\nI think it is still an option but creating the image-volume in the context user and tenant is the reason of this security impact.\nWe want to ensure that a normal user shouldn\u0027t be able to access the image-volume hence not able to perform any operation on it.","commit_id":"ca2582aeb99617fb7e996521261e7ef8fa7d2ff1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"bdb96f58de31c78a75aef92134962769ce9c9ed6","unresolved":false,"context_lines":[{"line_number":133,"context_line":"operation on it such as retype, attach etc."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Care will have to be taken to ensure it isn\u0027t accessible by normal"},{"line_number":136,"context_line":"users."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Notifications impact"},{"line_number":139,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf51134e_ea5b3084","line":136,"in_reply_to":"bf51134e_d853e26b","updated":"2020-07-06 05:20:55.000000000","message":"cinder_endpoint_template require context object which is not available when cinder store is initialized.","commit_id":"ca2582aeb99617fb7e996521261e7ef8fa7d2ff1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bf4d6477bbb8ccf7a629e6ae9fc079dcee0bdb05","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"Appropriate unit and functional tests to ensure the changes to glance function"},{"line_number":354,"context_line":"correctly."},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"Documentation Impact"},{"line_number":357,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_339f5160","line":355,"updated":"2020-07-30 15:09:45.000000000","message":"If I volunteer to help, can we put \"have a cinder-backed-glance job\" as a testing requirement here? I think it should be fairly straightforward -- just some config of glance to point at the proper cinder things.","commit_id":"2569aaedfb55d4635666db433f5df80e3e7fe885"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"66a18866c7af572d6f78966a4d2d9b9427fbf787","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"Appropriate unit and functional tests to ensure the changes to glance function"},{"line_number":354,"context_line":"correctly."},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"Documentation Impact"},{"line_number":357,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9f560f44_443afd97","line":355,"in_reply_to":"9f560f44_339f5160","updated":"2020-07-30 17:13:38.000000000","message":"Done","commit_id":"2569aaedfb55d4635666db433f5df80e3e7fe885"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/glance_store/+spec/multiple-cinder-backend-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"From Train onwards Glance is fully supporting configuring multiple glance"},{"line_number":14,"context_line":"stores. In case of cinder, it internally supports configuring multiple"},{"line_number":15,"context_line":"backends. If cinder has configured multiple backends and glance store is"},{"line_number":16,"context_line":"set as cinder then at the moment it is not possible to decide which"},{"line_number":17,"context_line":"cinder backend should be used by glance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_29497430","line":17,"range":{"start_line":14,"start_character":8,"end_line":17,"end_character":40},"updated":"2020-08-03 14:12:29.000000000","message":"And I understand this proposal correctly, it still will not be.\n\nAs I said on PS 6, this is not an accurate description of what is going on.  What you actually have is: Cinder makes available volume-types, which describe the characteristics of volumes.  Currently, the cinder glance_store can only use one volume-type.  The point of glance multi-store implemented in Train is to give operators the ability to expose glance stores of differing characteristics to end users.  Even though all images will wind up in a single cinder installation, it is possible for operators to expose different categories of storage in cinder by creating different volume-types.  So when a cinder installation exposes multiple volume-types of differing characteristics, what we want to do here is to be able to map different glance \u0027stores\u0027 to cinder volume-types.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/glance_store/+spec/multiple-cinder-backend-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"From Train onwards Glance is fully supporting configuring multiple glance"},{"line_number":14,"context_line":"stores. In case of cinder, it internally supports configuring multiple"},{"line_number":15,"context_line":"backends. If cinder has configured multiple backends and glance store is"},{"line_number":16,"context_line":"set as cinder then at the moment it is not possible to decide which"},{"line_number":17,"context_line":"cinder backend should be used by glance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_2e120d63","line":17,"range":{"start_line":14,"start_character":8,"end_line":17,"end_character":40},"in_reply_to":"9f560f44_29497430","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"1. As of now cinder can configure multiple backends and user/operator can"},{"line_number":23,"context_line":"decide which backend to use using available volume types. If glance store is"},{"line_number":24,"context_line":"set to use cinder then every time new image is created it will always be"},{"line_number":25,"context_line":"uploaded to default backend  unless operator has configured"},{"line_number":26,"context_line":"`cinder_volume_type` in glance-api.conf file. Even `cinder_volume_type`"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_49fae8bc","line":23,"range":{"start_line":22,"start_character":3,"end_line":23,"end_character":57},"updated":"2020-08-03 14:12:29.000000000","message":"This is really orthogonal to this Glance proposal.  The key point is that cinder can expose different volume-types, and we want Glance users to be able to take advantage of this.  Whether Cinder has one or multiple backends really doesn\u0027t matter.  Cinder end users cannot select backends, what they select is a volume-type.  (Don\u0027t forget that Glance is a cinder end-user when using the cinder glance_store.)","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"1. As of now cinder can configure multiple backends and user/operator can"},{"line_number":23,"context_line":"decide which backend to use using available volume types. If glance store is"},{"line_number":24,"context_line":"set to use cinder then every time new image is created it will always be"},{"line_number":25,"context_line":"uploaded to default backend  unless operator has configured"},{"line_number":26,"context_line":"`cinder_volume_type` in glance-api.conf file. Even `cinder_volume_type`"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_224fc16b","line":23,"range":{"start_line":22,"start_character":3,"end_line":23,"end_character":57},"in_reply_to":"9f560f44_49fae8bc","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"1. As of now cinder can configure multiple backends and user/operator can"},{"line_number":23,"context_line":"decide which backend to use using available volume types. If glance store is"},{"line_number":24,"context_line":"set to use cinder then every time new image is created it will always be"},{"line_number":25,"context_line":"uploaded to default backend  unless operator has configured"},{"line_number":26,"context_line":"`cinder_volume_type` in glance-api.conf file. Even `cinder_volume_type`"},{"line_number":27,"context_line":"configured glance can not use different volume types available in cinder."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_6916ccf3","line":25,"range":{"start_line":24,"start_character":55,"end_line":25,"end_character":27},"updated":"2020-08-03 14:12:29.000000000","message":"This is incorrect -- the image-volume will have the default volume-type.  It could be stored in any backend depending on how the volume-type is configured.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"1. As of now cinder can configure multiple backends and user/operator can"},{"line_number":23,"context_line":"decide which backend to use using available volume types. If glance store is"},{"line_number":24,"context_line":"set to use cinder then every time new image is created it will always be"},{"line_number":25,"context_line":"uploaded to default backend  unless operator has configured"},{"line_number":26,"context_line":"`cinder_volume_type` in glance-api.conf file. Even `cinder_volume_type`"},{"line_number":27,"context_line":"configured glance can not use different volume types available in cinder."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_c23085eb","line":25,"range":{"start_line":24,"start_character":55,"end_line":25,"end_character":27},"in_reply_to":"9f560f44_6916ccf3","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"We propose that while using cinder as a store for glance, operator should"},{"line_number":41,"context_line":"use all or expected volume types using `enabled_backends` configuration"},{"line_number":42,"context_line":"option. Then for each of the store defined in `enabled_backends`"},{"line_number":43,"context_line":"configuration option operator should set associated volume_type using"},{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section. Even"},{"line_number":45,"context_line":"in cinder one cinder backend can be associated with multiple volume type(s)"},{"line_number":46,"context_line":"but glance will support only one store per cinder volume type. Also Operator"},{"line_number":47,"context_line":"needs to configure `cinder_volume_type` for every cinder store defined in"},{"line_number":48,"context_line":"glance-api.conf configuration file."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"While initializing the store object, glance will validate that volume type"},{"line_number":51,"context_line":"set using `cinder_volume_type` is exist in cinder. If it\u0027s not then that"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_49fb0878","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":35},"updated":"2020-08-03 14:12:29.000000000","message":"I find this paragraph confusing. Maybe something like:\n\nWe propose that Glance be able to expose multiple cinder stores that differ by what volume-type each store uses.  These would be defined in the normal way in the glance configuration file using the ``enabled_backends`` option (see example below).  Further, when using multiple glance stores, each cinder store *must* have the ``cinder_volume_type`` option set.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"We propose that while using cinder as a store for glance, operator should"},{"line_number":41,"context_line":"use all or expected volume types using `enabled_backends` configuration"},{"line_number":42,"context_line":"option. Then for each of the store defined in `enabled_backends`"},{"line_number":43,"context_line":"configuration option operator should set associated volume_type using"},{"line_number":44,"context_line":"`cinder_volume_type` configuration option in it\u0027s own config section. Even"},{"line_number":45,"context_line":"in cinder one cinder backend can be associated with multiple volume type(s)"},{"line_number":46,"context_line":"but glance will support only one store per cinder volume type. Also Operator"},{"line_number":47,"context_line":"needs to configure `cinder_volume_type` for every cinder store defined in"},{"line_number":48,"context_line":"glance-api.conf configuration file."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"While initializing the store object, glance will validate that volume type"},{"line_number":51,"context_line":"set using `cinder_volume_type` is exist in cinder. If it\u0027s not then that"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_e23309f5","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":35},"in_reply_to":"9f560f44_49fb0878","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Example 1: Fresh deployment"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"For example, if cinder has configured 2 volume types `fast` and `slow` then"},{"line_number":62,"context_line":"glance configuration should look like;::"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    [DEFAULT]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_bf8ad266","line":61,"range":{"start_line":61,"start_character":53,"end_line":61,"end_character":70},"updated":"2020-08-03 14:12:29.000000000","message":"suggestion: name these ``glance-fast`` and ``glance-slow`` and then use those names instead of xxxxxx and yyyyyy below.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Example 1: Fresh deployment"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"For example, if cinder has configured 2 volume types `fast` and `slow` then"},{"line_number":62,"context_line":"glance configuration should look like;::"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    [DEFAULT]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_02543dfe","line":61,"range":{"start_line":61,"start_character":53,"end_line":61,"end_character":70},"in_reply_to":"9f560f44_bf8ad266","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    [fast]"},{"line_number":74,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":75,"context_line":"    cinder_volume_type \u003d xxxxxx"},{"line_number":76,"context_line":"    description \u003d LVM based cinder store"},{"line_number":77,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":78,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"},{"line_number":79,"context_line":"    cinder_store_user_name \u003d glance"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_89f1a098","line":76,"range":{"start_line":76,"start_character":18,"end_line":76,"end_character":40},"updated":"2020-08-03 14:12:29.000000000","message":"It\u0027s not good practice to expose the technology.  So just say something like \"Really fast and expensive storage\".  (I\u0027m not just saying this about the LVM part, the glance operator is also exposing that this store uses cinder.)","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    [fast]"},{"line_number":74,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":75,"context_line":"    cinder_volume_type \u003d xxxxxx"},{"line_number":76,"context_line":"    description \u003d LVM based cinder store"},{"line_number":77,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":78,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"},{"line_number":79,"context_line":"    cinder_store_user_name \u003d glance"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_c2452545","line":76,"range":{"start_line":76,"start_character":18,"end_line":76,"end_character":40},"in_reply_to":"9f560f44_89f1a098","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    [slow]"},{"line_number":86,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":87,"context_line":"    cinder_volume_type \u003d yyyyyy"},{"line_number":88,"context_line":"    description \u003d NFS based cinder store"},{"line_number":89,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":90,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"},{"line_number":91,"context_line":"    cinder_store_user_name \u003d glance"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_c92c3804","line":88,"range":{"start_line":88,"start_character":18,"end_line":88,"end_character":40},"updated":"2020-08-03 14:12:29.000000000","message":"how about, \"Slower but less expensive storage\"","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    [slow]"},{"line_number":86,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":87,"context_line":"    cinder_volume_type \u003d yyyyyy"},{"line_number":88,"context_line":"    description \u003d NFS based cinder store"},{"line_number":89,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":90,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"},{"line_number":91,"context_line":"    cinder_store_user_name \u003d glance"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_2278618e","line":88,"range":{"start_line":88,"start_character":18,"end_line":88,"end_character":40},"in_reply_to":"9f560f44_c92c3804","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"glance-api.conf then administrator needs to create one store in glance where"},{"line_number":99,"context_line":"cinder_volume_type same as old glance configuration::"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # cinder.conf"},{"line_number":102,"context_line":"    [DEFAULT]"},{"line_number":103,"context_line":"    default_volume_type \u003d xxxxxx"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # old configuration in glance"},{"line_number":106,"context_line":"    [glance_store]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_5f42963f","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":32},"updated":"2020-08-03 14:12:29.000000000","message":"The Glance admin may not have permission to access this.  I think just say, \"The glance administrator has to find out what the default volume type is in the cinder installation, and then explicitly configure that as the value of cinder_volume_type\"","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":98,"context_line":"glance-api.conf then administrator needs to create one store in glance where"},{"line_number":99,"context_line":"cinder_volume_type same as old glance configuration::"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # cinder.conf"},{"line_number":102,"context_line":"    [DEFAULT]"},{"line_number":103,"context_line":"    default_volume_type \u003d xxxxxx"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # old configuration in glance"},{"line_number":106,"context_line":"    [glance_store]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_62a37901","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":32},"in_reply_to":"9f560f44_5f42963f","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    # new configuration in glance"},{"line_number":115,"context_line":"    [DEFAULT]"},{"line_number":116,"context_line":"    enabled_backends \u003d fast:cinder, slow:cinder"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    [glance_store]"},{"line_number":119,"context_line":"    default_backend \u003d fast"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_3f6882b7","line":116,"range":{"start_line":116,"start_character":23,"end_line":116,"end_character":47},"updated":"2020-08-03 14:12:29.000000000","message":"this example would be easier to follow if you use:\n\nold:cinder, new:cinder\n\nand then in the description, you can have \"Previously existing (cinder) store\" and \"Newly defined second (cinder) store\"","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    # new configuration in glance"},{"line_number":115,"context_line":"    [DEFAULT]"},{"line_number":116,"context_line":"    enabled_backends \u003d fast:cinder, slow:cinder"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    [glance_store]"},{"line_number":119,"context_line":"    default_backend \u003d fast"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_82adedea","line":116,"range":{"start_line":116,"start_character":23,"end_line":116,"end_character":47},"in_reply_to":"9f560f44_3f6882b7","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    cinder_store_project_name \u003d service"},{"line_number":141,"context_line":"    # etc.."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Example 3: Upgrade from single cinder store to multiple cinder stores, if"},{"line_number":144,"context_line":"default_volume_type is not set in cinder.conf neither cinder_volume_type set in"},{"line_number":145,"context_line":"glance-api.conf then administrator needs to create one store in glance where"},{"line_number":146,"context_line":"to replicate exact old configuration::"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    # cinder.conf"},{"line_number":149,"context_line":"    [DEFAULT]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_bf0c92a5","line":146,"range":{"start_line":143,"start_character":0,"end_line":146,"end_character":38},"updated":"2020-08-03 14:12:29.000000000","message":"If you take my suggestion above (i.e., to ask the cinder admin what the default volume type is), then you don\u0027t need this example.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    cinder_store_project_name \u003d service"},{"line_number":141,"context_line":"    # etc.."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Example 3: Upgrade from single cinder store to multiple cinder stores, if"},{"line_number":144,"context_line":"default_volume_type is not set in cinder.conf neither cinder_volume_type set in"},{"line_number":145,"context_line":"glance-api.conf then administrator needs to create one store in glance where"},{"line_number":146,"context_line":"to replicate exact old configuration::"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    # cinder.conf"},{"line_number":149,"context_line":"    [DEFAULT]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_627c1972","line":146,"range":{"start_line":143,"start_character":0,"end_line":146,"end_character":38},"in_reply_to":"9f560f44_bf0c92a5","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    cinder_store_project_name \u003d service"},{"line_number":187,"context_line":"    # etc.."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Example 4: Upgrade from single cinder store to multiple cinder stores, if"},{"line_number":190,"context_line":"default_volume_type is set in cinder.conf but cinder_volume_type is not set in"},{"line_number":191,"context_line":"glance-api.conf then administrator needs to set cinder_volume_type same as"},{"line_number":192,"context_line":"a default_backend set in cinder.conf to one of the store::"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    # cinder.conf"},{"line_number":195,"context_line":"    [DEFAULT]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_5ffbb677","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":58},"updated":"2020-08-03 14:12:29.000000000","message":"Again, I think this will be covered if you revise example 2.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    cinder_store_project_name \u003d service"},{"line_number":187,"context_line":"    # etc.."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Example 4: Upgrade from single cinder store to multiple cinder stores, if"},{"line_number":190,"context_line":"default_volume_type is set in cinder.conf but cinder_volume_type is not set in"},{"line_number":191,"context_line":"glance-api.conf then administrator needs to set cinder_volume_type same as"},{"line_number":192,"context_line":"a default_backend set in cinder.conf to one of the store::"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    # cinder.conf"},{"line_number":195,"context_line":"    [DEFAULT]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_82968d92","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":58},"in_reply_to":"9f560f44_5ffbb677","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    # etc.."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Operator can decide on the basis of deployment strategy which volume type"},{"line_number":236,"context_line":"they wants to use by using cinder\u0027s `type-list` command."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"We also propose to modify location url for cinder and use"},{"line_number":239,"context_line":"`store identifier` in location url so that user or operator will"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_dfc86623","line":236,"range":{"start_line":236,"start_character":21,"end_line":236,"end_character":56},"updated":"2020-08-03 14:12:29.000000000","message":"I think in actual practice, the glance admin should coordinate with the cinder admin about appropriate types, the cinder admin may even want to create private types specifically for the glance user.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    # etc.."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Operator can decide on the basis of deployment strategy which volume type"},{"line_number":236,"context_line":"they wants to use by using cinder\u0027s `type-list` command."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"We also propose to modify location url for cinder and use"},{"line_number":239,"context_line":"`store identifier` in location url so that user or operator will"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_a2fab1b9","line":236,"range":{"start_line":236,"start_character":21,"end_line":236,"end_character":56},"in_reply_to":"9f560f44_dfc86623","updated":"2020-08-04 06:59:26.000000000","message":"Done","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":238,"context_line":"We also propose to modify location url for cinder and use"},{"line_number":239,"context_line":"`store identifier` in location url so that user or operator will"},{"line_number":240,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":241,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":244,"context_line":"mechanism of glance which will update the location URL of existing images"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_ff5e0a74","line":241,"updated":"2020-08-03 14:12:29.000000000","message":"Is this better than keeping the store name in the location metadata, which I believe is done for other stores?  (Just asking.)","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e4f9e474dbfe0a9505eaf7ab6aabb7f0cdb14498","unresolved":false,"context_lines":[{"line_number":238,"context_line":"We also propose to modify location url for cinder and use"},{"line_number":239,"context_line":"`store identifier` in location url so that user or operator will"},{"line_number":240,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":241,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":244,"context_line":"mechanism of glance which will update the location URL of existing images"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_12aabe6f","line":241,"in_reply_to":"9f560f44_c2688588","updated":"2020-08-04 20:38:44.000000000","message":"I missed that, thanks.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":238,"context_line":"We also propose to modify location url for cinder and use"},{"line_number":239,"context_line":"`store identifier` in location url so that user or operator will"},{"line_number":240,"context_line":"identify in which cinder store of glance image is stored. The new"},{"line_number":241,"context_line":"location URL should looked like `cinder://store-name/image-id`."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"For legacy images stored in cinder backend we will modify the lazy loading"},{"line_number":244,"context_line":"mechanism of glance which will update the location URL of existing images"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_c2688588","line":241,"in_reply_to":"9f560f44_ff5e0a74","updated":"2020-08-04 06:59:26.000000000","message":"Yes, we need this change as while upgrading from single stores to multiple stores we want to flag old images are directed to old stores only. This is not possible to identify if we keep location url as cinder://\u003cid\u003e only. Belwo para explains that.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":268,"context_line":"Security impact"},{"line_number":269,"context_line":"---------------"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"The image-volume is stored in the configured project"},{"line_number":272,"context_line":"`cinder_store_project_name` and can be accessed with configured"},{"line_number":273,"context_line":"user `cinder_store_user_name`."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"There could be a potential risk if someone was able to get a hold of"},{"line_number":276,"context_line":"these credentials and access the image-volumes. Worst case is someone"},{"line_number":277,"context_line":"could alter the image-volumes if they had permission to perform any cinder"},{"line_number":278,"context_line":"operation on it such as retype, attach etc."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"Care will have to be taken to ensure it isn\u0027t accessible by normal"},{"line_number":281,"context_line":"users."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_3f87e2b7","line":278,"range":{"start_line":271,"start_character":0,"end_line":278,"end_character":43},"updated":"2020-08-03 14:12:29.000000000","message":"How exactly is this different from the current situation, or the situation with other stores?  It\u0027s good to point this out, but it would also be good to indicate whether this has a negative security impact on Glance\u0027s overall security, or whether it\u0027s the same risk, and you\u0027re just pointing that out.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":268,"context_line":"Security impact"},{"line_number":269,"context_line":"---------------"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"The image-volume is stored in the configured project"},{"line_number":272,"context_line":"`cinder_store_project_name` and can be accessed with configured"},{"line_number":273,"context_line":"user `cinder_store_user_name`."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"There could be a potential risk if someone was able to get a hold of"},{"line_number":276,"context_line":"these credentials and access the image-volumes. Worst case is someone"},{"line_number":277,"context_line":"could alter the image-volumes if they had permission to perform any cinder"},{"line_number":278,"context_line":"operation on it such as retype, attach etc."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"Care will have to be taken to ensure it isn\u0027t accessible by normal"},{"line_number":281,"context_line":"users."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_6297f93b","line":278,"range":{"start_line":271,"start_character":0,"end_line":278,"end_character":43},"in_reply_to":"9f560f44_3f87e2b7","updated":"2020-08-04 06:59:26.000000000","message":"The security impact is the same as it was with single store and we\u0027re just pointing it out here.\n\nThe main thing is, glance cinder store was never properly documented so at least this part clears out some things that users shouldn\u0027t do.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0ae19d3125f0ba49476a57bc49a0dcfcf23969cd","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"* Usage of cinder volume types as cinder stores of glance."},{"line_number":363,"context_line":"* We should also document that, if cinder store is used as glance"},{"line_number":364,"context_line":"  backend, then we should not perform any special operation such as"},{"line_number":365,"context_line":"  retype, delete etc. on the volumes which are created for storing"},{"line_number":366,"context_line":"  glance images."},{"line_number":367,"context_line":"* How to upgrade from single cinder store to multiple cinder stores"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_5f2616d0","line":366,"range":{"start_line":364,"start_character":11,"end_line":366,"end_character":16},"updated":"2020-08-03 14:12:29.000000000","message":"I think what you\u0027re getting at here is:\n\nOnly the Image Service API should be used to manipulate images.  Manipulating image data directly via the Block Storage Service API is not supported and may lead to adverse consequences, including data loss.","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3e0ffde53bf1c2f8567a9c5aa44d0162f2c07adb","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"* Usage of cinder volume types as cinder stores of glance."},{"line_number":363,"context_line":"* We should also document that, if cinder store is used as glance"},{"line_number":364,"context_line":"  backend, then we should not perform any special operation such as"},{"line_number":365,"context_line":"  retype, delete etc. on the volumes which are created for storing"},{"line_number":366,"context_line":"  glance images."},{"line_number":367,"context_line":"* How to upgrade from single cinder store to multiple cinder stores"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9f560f44_62b419f3","line":366,"range":{"start_line":364,"start_character":11,"end_line":366,"end_character":16},"in_reply_to":"9f560f44_5f2616d0","updated":"2020-08-04 06:59:26.000000000","message":"Correct","commit_id":"5ec951ce9beb8fad49a0673ef2554b370a56a852"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e4f9e474dbfe0a9505eaf7ab6aabb7f0cdb14498","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    [DEFAULT]"},{"line_number":67,"context_line":"    # list of enabled stores identified by their property group name"},{"line_number":68,"context_line":"    enabled_backends \u003d glance-fast:cinder, glance-slow:cinder"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # the default store, if not set glance-api service will not start"},{"line_number":71,"context_line":"    [glance_store]"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_d295e641","line":68,"range":{"start_line":68,"start_character":23,"end_line":68,"end_character":30},"updated":"2020-08-04 20:38:44.000000000","message":"This is a nit, so you don\u0027t have to change it, but you could have kept the glance *store* names as \u0027fast\u0027 and \u0027slow\u0027.  We\u0027ve got 3 things going on here:\n1. glance store name (\u0027fast\u0027 or \u0027slow\u0027)\n2. glance store type (\u0027cinder\u0027)\n3. cinder volume-types (\u0027glance-fast\u0027, \u0027glance-slow\u0027)\n\n(I\u0027m only pointing this out because people tend to make inferences based on the examples, so for instance, they may infer (incorrectly) that the name of the store and the name of the volume-type must be the same.)","commit_id":"f3d2b68b0dfaa0dcebc53be069bd0883d65bea33"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"126db2b9d66b8e77368c47f8c24459b1c9bbff13","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    [DEFAULT]"},{"line_number":67,"context_line":"    # list of enabled stores identified by their property group name"},{"line_number":68,"context_line":"    enabled_backends \u003d glance-fast:cinder, glance-slow:cinder"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # the default store, if not set glance-api service will not start"},{"line_number":71,"context_line":"    [glance_store]"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_a5e74912","line":68,"range":{"start_line":68,"start_character":23,"end_line":68,"end_character":30},"in_reply_to":"9f560f44_d295e641","updated":"2020-08-05 06:16:48.000000000","message":"Done","commit_id":"f3d2b68b0dfaa0dcebc53be069bd0883d65bea33"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e4f9e474dbfe0a9505eaf7ab6aabb7f0cdb14498","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    # conf props for glance-fast store instance"},{"line_number":75,"context_line":"    [glance-fast]"},{"line_number":76,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":77,"context_line":"    cinder_volume_type \u003d xxxxxx"},{"line_number":78,"context_line":"    description \u003d Really fast and expensive storage"},{"line_number":79,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":80,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_f298ea75","line":77,"range":{"start_line":77,"start_character":25,"end_line":77,"end_character":31},"updated":"2020-08-04 20:38:44.000000000","message":"from line 63, this would be \u0027glance-fast\u0027","commit_id":"f3d2b68b0dfaa0dcebc53be069bd0883d65bea33"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"126db2b9d66b8e77368c47f8c24459b1c9bbff13","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    # conf props for glance-fast store instance"},{"line_number":75,"context_line":"    [glance-fast]"},{"line_number":76,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":77,"context_line":"    cinder_volume_type \u003d xxxxxx"},{"line_number":78,"context_line":"    description \u003d Really fast and expensive storage"},{"line_number":79,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":80,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_e5edc1f0","line":77,"range":{"start_line":77,"start_character":25,"end_line":77,"end_character":31},"in_reply_to":"9f560f44_f298ea75","updated":"2020-08-05 06:16:48.000000000","message":"Done","commit_id":"f3d2b68b0dfaa0dcebc53be069bd0883d65bea33"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e4f9e474dbfe0a9505eaf7ab6aabb7f0cdb14498","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    # conf props for glance-slow store instance"},{"line_number":87,"context_line":"    [glance-slow]"},{"line_number":88,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":89,"context_line":"    cinder_volume_type \u003d yyyyyy"},{"line_number":90,"context_line":"    description \u003d Slower but less expensive storage"},{"line_number":91,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":92,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_72869a15","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":31},"updated":"2020-08-04 20:38:44.000000000","message":"from line 64, this would be \u0027glance-slow\u0027","commit_id":"f3d2b68b0dfaa0dcebc53be069bd0883d65bea33"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"126db2b9d66b8e77368c47f8c24459b1c9bbff13","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    # conf props for glance-slow store instance"},{"line_number":87,"context_line":"    [glance-slow]"},{"line_number":88,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":89,"context_line":"    cinder_volume_type \u003d yyyyyy"},{"line_number":90,"context_line":"    description \u003d Slower but less expensive storage"},{"line_number":91,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":92,"context_line":"    cinder_store_auth_address \u003d http://localhost/identity/v3"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f560f44_c5ea3dd6","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":31},"in_reply_to":"9f560f44_72869a15","updated":"2020-08-05 06:16:48.000000000","message":"Done","commit_id":"f3d2b68b0dfaa0dcebc53be069bd0883d65bea33"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d94e9e50f8ed8b608993963f33bf5570fdee8679","unresolved":false,"context_lines":[{"line_number":46,"context_line":"We propose that Glance be able to expose multiple cinder stores that differ"},{"line_number":47,"context_line":"by what volume-type each store uses. These would be defined in the normal way"},{"line_number":48,"context_line":"in the glance configuration file using the ``enabled_backends`` option"},{"line_number":49,"context_line":"(see example below). Further, when using multiple glance stores, each cinder"},{"line_number":50,"context_line":"store *must* have the ``cinder_volume_type`` option set."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"While initializing the store object, glance will validate that volume type"},{"line_number":53,"context_line":"set using `cinder_volume_type` is exist in cinder. If it\u0027s not then that"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_8295b789","line":50,"range":{"start_line":49,"start_character":21,"end_line":50,"end_character":56},"updated":"2020-08-06 18:29:21.000000000","message":"This made me stop and think. Cinder allows the default volume type to be set in cinder.conf, so for ease of use, it isn\u0027t a requirement that a volume type be explicitly provided.\n\nBut that said, and looking at the upgrade path description below, I don\u0027t think it\u0027s unreasonable for an admin to have to configure glance stores with that type explicitly. So just noting the thought process here in comments, but all this to say, I don\u0027t think this needs to change.","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"13deef5c9c342160f902452bc023b737a4346c9d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"set using `cinder_volume_type` is exist in cinder. If it\u0027s not then that"},{"line_number":54,"context_line":"store will be excluded by disabling `add` and `delete` operations. To"},{"line_number":55,"context_line":"connect to cinder from glance operator needs to specify"},{"line_number":56,"context_line":"`cinder_store_auth_address`, `cinder_store_user_name`, `cinder_store_password`"},{"line_number":57,"context_line":"and `cinder_catalog_info` for each of the store in glance-api.conf file."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Below are some multiple cinder store configuration examples."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_ef959388","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":27},"updated":"2020-08-05 15:52:36.000000000","message":"You don\u0027t need to change this unless you have other changes to make.  The single backtick (`cinder`) turns this into italics; you need to use double-backticks (``cinder``) to get the \"code\" font.  (It doesn\u0027t affect the content, I only noticed this when I looked at the generated docs.  Just something to keep in mind for next time.)","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"905b05c2c3df006e75fba815d2d8b52b101d838a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"set using `cinder_volume_type` is exist in cinder. If it\u0027s not then that"},{"line_number":54,"context_line":"store will be excluded by disabling `add` and `delete` operations. To"},{"line_number":55,"context_line":"connect to cinder from glance operator needs to specify"},{"line_number":56,"context_line":"`cinder_store_auth_address`, `cinder_store_user_name`, `cinder_store_password`"},{"line_number":57,"context_line":"and `cinder_catalog_info` for each of the store in glance-api.conf file."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Below are some multiple cinder store configuration examples."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_cf8ce637","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":27},"in_reply_to":"9f560f44_ef959388","updated":"2020-08-07 15:15:34.000000000","message":"ack","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f475cbcf105d160e3ac6fa6724584e80aac33312","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":115,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":116,"context_line":"    cinder_volume_type \u003d glance-old"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # new configuration in glance"},{"line_number":119,"context_line":"    [DEFAULT]"},{"line_number":120,"context_line":"    enabled_backends \u003d old:cinder, new:cinder"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_2f48022b","line":117,"updated":"2020-08-07 15:09:07.000000000","message":"Above this line is \"original ussuri config\" and below this line is \"new victoria config\" right? It would help to break the block into two pieces so that is clear. The comment isn\u0027t super obvious and as rendered it looks like one file.","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"905b05c2c3df006e75fba815d2d8b52b101d838a","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    rootwrap_config \u003d /etc/glance/rootwrap.conf"},{"line_number":115,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":116,"context_line":"    cinder_volume_type \u003d glance-old"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # new configuration in glance"},{"line_number":119,"context_line":"    [DEFAULT]"},{"line_number":120,"context_line":"    enabled_backends \u003d old:cinder, new:cinder"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_2fe4820c","line":117,"in_reply_to":"9f560f44_2f48022b","updated":"2020-08-07 15:15:34.000000000","message":"Sounds good to break it to two different sections","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f475cbcf105d160e3ac6fa6724584e80aac33312","unresolved":false,"context_lines":[{"line_number":279,"context_line":"  backend, Only the Image Service API should be used to manipulate images."},{"line_number":280,"context_line":"  Manipulating image data directly via the Block Storage Service API is not"},{"line_number":281,"context_line":"  supported and may lead to adverse consequences, including data loss."},{"line_number":282,"context_line":"* How to upgrade from single cinder store to multiple cinder stores"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"References"},{"line_number":285,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_8f6cae9c","line":282,"updated":"2020-08-07 15:09:07.000000000","message":"Just to be clear, a single-cinder-store ussuri config will still work with victoria, and the operator can move the cinder_volume_type config into the store definition itself *after* the upgrade right? I _think_ that\u0027s what you\u0027re saying but I don\u0027t see it called out specifically, but maybe I missed it.","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"905b05c2c3df006e75fba815d2d8b52b101d838a","unresolved":false,"context_lines":[{"line_number":279,"context_line":"  backend, Only the Image Service API should be used to manipulate images."},{"line_number":280,"context_line":"  Manipulating image data directly via the Block Storage Service API is not"},{"line_number":281,"context_line":"  supported and may lead to adverse consequences, including data loss."},{"line_number":282,"context_line":"* How to upgrade from single cinder store to multiple cinder stores"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"References"},{"line_number":285,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9f560f44_cfa346b1","line":282,"in_reply_to":"9f560f44_8f6cae9c","updated":"2020-08-07 15:15:34.000000000","message":"Yes, you understood it correctly. There are various scenarios around how default_volume_type is defined in cinder. This upgrade section in doc will describe all those cases with examples.","commit_id":"77a606c98103f3badc3b5f511aea44ba2806cdf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3ea3180108cfc164e2df1e3dc77ad4c7202b4ef3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    cinder_catalog_info \u003d volumev2::publicURL"},{"line_number":118,"context_line":"    cinder_volume_type \u003d glance-old"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Example config after upgrade::"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    [DEFAULT]"},{"line_number":123,"context_line":"    enabled_backends \u003d old:cinder, new:cinder"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9f560f44_4fdd76de","line":120,"updated":"2020-08-07 15:27:11.000000000","message":"Much better!","commit_id":"5e5ad09b19041f7d527646b2b8b219cd42f22139"}]}
