)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e1f5a76090bf2cd32292fccf611a60e1d057a69b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Greg Waines \u003cgreg.waines@windriver.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-11-28 15:14:16 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Image Caching Enhancements for Edge Cloud"},{"line_number":8,"context_line":"In a distributed edge cloud environment, with a central cloud and"},{"line_number":9,"context_line":"multiple geographically-distributed edge clouds, the OpenStack Edge-Computing"},{"line_number":10,"context_line":"Group has defined a \"pull \u0026 cache\"-type architecture for image management"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_8f011b05","line":7,"updated":"2018-12-20 14:59:18.000000000","message":"You need a blank line after the summary line. Otherwise git pulls this entire body into one long summary.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Greg Waines \u003cgreg.waines@windriver.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-11-28 15:14:16 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Image Caching Enhancements for Edge Cloud"},{"line_number":8,"context_line":"In a distributed edge cloud environment, with a central cloud and"},{"line_number":9,"context_line":"multiple geographically-distributed edge clouds, the OpenStack Edge-Computing"},{"line_number":10,"context_line":"Group has defined a \"pull \u0026 cache\"-type architecture for image management"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1f769fc5_ea77cf39","line":7,"in_reply_to":"3f79a3b5_8f011b05","updated":"2019-01-02 15:16:10.000000000","message":"Thanks ... I will fix in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"}],"specs/stein/approved/glance/glance-caching-for-edge.rst":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"bf476de67de2290e53fc1316065a01bf1d17d598","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Other Key Behaviours"},{"line_number":91,"context_line":"--------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* The edge cloud Glance API will ONLY have read access to images and image"},{"line_number":94,"context_line":"  metadata on the remote Glance at central cloud;"},{"line_number":95,"context_line":"* The edge cloud Glance API will have full read/write/modify access to"},{"line_number":96,"context_line":"  images and image metadata in the local image record DB and local"},{"line_number":97,"context_line":"  storage backends,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_3e2c9492","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":49},"updated":"2018-11-27 14:45:06.000000000","message":"How is this enforced?","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"cb33cdc250831d2c2a21b69c00e190a04aefca84","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Other Key Behaviours"},{"line_number":91,"context_line":"--------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* The edge cloud Glance API will ONLY have read access to images and image"},{"line_number":94,"context_line":"  metadata on the remote Glance at central cloud;"},{"line_number":95,"context_line":"* The edge cloud Glance API will have full read/write/modify access to"},{"line_number":96,"context_line":"  images and image metadata in the local image record DB and local"},{"line_number":97,"context_line":"  storage backends,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_68ca3d18","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":49},"in_reply_to":"3f79a3b5_3e2c9492","updated":"2018-11-28 13:50:14.000000000","message":"The new code being proposed, i.e. for handling this new \u0027data access\u0027 solution for Glance where image and image-metadata can be retrieved (and cached) from a remote Glance, will only issue GET calls to the remote Glance.","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"bf476de67de2290e53fc1316065a01bf1d17d598","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* The edge cloud Glance API will ONLY have read access to images and image"},{"line_number":94,"context_line":"  metadata on the remote Glance at central cloud;"},{"line_number":95,"context_line":"* The edge cloud Glance API will have full read/write/modify access to"},{"line_number":96,"context_line":"  images and image metadata in the local image record DB and local"},{"line_number":97,"context_line":"  storage backends,"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  * locally created images and metadata on the edge clouds will NOT be"},{"line_number":100,"context_line":"    synchronized up to the central cloud,"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* When requesting an image list from the edge cloud\u0027s Glance API,"},{"line_number":103,"context_line":"  a merged list of images in the local edge cloud\u0027s Glance and images in the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_9e3608df","line":100,"range":{"start_line":95,"start_character":0,"end_line":100,"end_character":41},"updated":"2018-11-27 14:45:06.000000000","message":"So the proposal is to introduce intentional continuous split brain situation?","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"cb33cdc250831d2c2a21b69c00e190a04aefca84","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* The edge cloud Glance API will ONLY have read access to images and image"},{"line_number":94,"context_line":"  metadata on the remote Glance at central cloud;"},{"line_number":95,"context_line":"* The edge cloud Glance API will have full read/write/modify access to"},{"line_number":96,"context_line":"  images and image metadata in the local image record DB and local"},{"line_number":97,"context_line":"  storage backends,"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  * locally created images and metadata on the edge clouds will NOT be"},{"line_number":100,"context_line":"    synchronized up to the central cloud,"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* When requesting an image list from the edge cloud\u0027s Glance API,"},{"line_number":103,"context_line":"  a merged list of images in the local edge cloud\u0027s Glance and images in the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_a8bb7571","line":100,"range":{"start_line":95,"start_character":0,"end_line":100,"end_character":41},"in_reply_to":"3f79a3b5_9e3608df","updated":"2018-11-28 13:50:14.000000000","message":"The idea is that the only way to create an image in the central cloud will be to specifically issue a request against the central cloud glance.\n\nThe edge cloud glance will pull the image from the central cloud if someone asks for it, in effect acting as a local cache for the central glance images; ... as well as allowing the creation of additional local-only images.","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"bf476de67de2290e53fc1316065a01bf1d17d598","unresolved":false,"context_lines":[{"line_number":132,"context_line":"NOTE Only one configured remote Glance API will be supported at a local edge"},{"line_number":133,"context_line":"cloud Glance."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"NOTE There will be no attempt to resolve conflicting Image UUIDs between"},{"line_number":136,"context_line":"images created on central cloud and images created locally on edge clouds."},{"line_number":137,"context_line":"Current thinking is that unique naming conventions and support for"},{"line_number":138,"context_line":"\u0027name or id\u0027 image searches for all APIs are a workaround for conflicting"},{"line_number":139,"context_line":"Image UUIDs when they occur."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Detailed Work Items"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_7bcbfe49","line":139,"range":{"start_line":135,"start_character":0,"end_line":139,"end_character":28},"updated":"2018-11-27 14:45:06.000000000","message":"As the UUID is the only supported identification in glance I don\u0027t think this is acceptable intentional behavior. Image search won\u0027t solve the issue of UUID collision when it\u0027s matter of 2 different images.","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"cb33cdc250831d2c2a21b69c00e190a04aefca84","unresolved":false,"context_lines":[{"line_number":132,"context_line":"NOTE Only one configured remote Glance API will be supported at a local edge"},{"line_number":133,"context_line":"cloud Glance."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"NOTE There will be no attempt to resolve conflicting Image UUIDs between"},{"line_number":136,"context_line":"images created on central cloud and images created locally on edge clouds."},{"line_number":137,"context_line":"Current thinking is that unique naming conventions and support for"},{"line_number":138,"context_line":"\u0027name or id\u0027 image searches for all APIs are a workaround for conflicting"},{"line_number":139,"context_line":"Image UUIDs when they occur."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Detailed Work Items"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_8bf9d31c","line":139,"range":{"start_line":135,"start_character":0,"end_line":139,"end_character":28},"in_reply_to":"3f79a3b5_7bcbfe49","updated":"2018-11-28 13:50:14.000000000","message":"Agree this is ugly.\n\nI am debating whether to allow the creation of additional local-only images at the Edge Cloud.  It is not absolutely required. And, in fact, our pre-upstreaming code, did not allow this.\n\nThe only way to possibly resolve this would be to disallow creation of images at the edge with the same UUID as an image in the Central Cloud ... but even that has issues as that check can not be done when edge cloud is disconnected from central cloud and don\u0027t want to have to change central cloud glance to have to do a UUID check of edge clouds when creating images.   Maybe assign unique UUID-prefixes for the creation of UUIDs on individual clouds ... ugh, seems like a lot of effort for a \u0027nice to have\u0027 type functionality.\n\nok ... seriously thinking of removing the capability of creating local-only images at the Edge Cloud.","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"bf476de67de2290e53fc1316065a01bf1d17d598","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"  * Only support downloading images as creating images will only be done"},{"line_number":188,"context_line":"    locally."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Alternatives"},{"line_number":191,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_db0d723f","line":189,"updated":"2018-11-27 14:45:06.000000000","message":"I might be missing something here.\n\nWhere/how is the metadata cached for these newly cached images from the remote glance?\n\nWhat is taking care of the cache invalidation and cleanup?\n\nIf malicious image is cached to the edge site and connection is cut how can one deal with it when no modifications are allowed?\n\nSame with the image membership. Is it just assumed that user which is not anymore allowed access to an image is ok to boot such in the disconnected edge site?","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"cb33cdc250831d2c2a21b69c00e190a04aefca84","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"  * Only support downloading images as creating images will only be done"},{"line_number":188,"context_line":"    locally."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Alternatives"},{"line_number":191,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_eb5407f3","line":189,"in_reply_to":"3f79a3b5_db0d723f","updated":"2018-11-28 13:50:14.000000000","message":"Will add text that indicates that any time the edge cloud goes to use an image from the remote glance (i.e. get (and cache), use from cache, etc. ), the edge cloud will try to pull the image-metadata from the remote glance and update the cached copy of the image-metadata if it has changed.\n\nWrt Cache invalidation and cleanup mechanisms ... will update text to\nindicate that Edge Cloud always validates that Image still exists on\nCentral Cloud before checking if Image itself is already cached locally,\nin order to avoid the expensive image download.  If the Image does not\nexist in the Central Cloud, then the cached image and its metadata, if\nthey exist, are removed from cache.\n\nWrt dealing with malicious image that is cached, this can not be dealt\nwith until central connection is restored, and malicious image is\nremoved from Central Cloud and cache invalidation/cleanup mechanisms\nremove the image from the Edge Clouds’ caches.\n\nYes ... same issue with image membership ... can not be resolved until\nre-connected.","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"522576af3e6580af50fc43497b4d8d3164ba8e1d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"Data model impact"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"There are no DB Model changes required to any Services."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"REST API impact"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_1563d5df","line":208,"range":{"start_line":208,"start_character":0,"end_line":208,"end_character":55},"updated":"2018-11-26 10:24:44.000000000","message":"you are talking about local DB and Remote DB in your proposed solution, so are you going to write any utility to sync these db\u0027s? Or there will be no db on the local/edge/far edge nodes?","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"c9a35ba15d14ec9cf1d2c1ac24022492b830a58d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"Data model impact"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"There are no DB Model changes required to any Services."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"REST API impact"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_ac173bef","line":208,"range":{"start_line":208,"start_character":0,"end_line":208,"end_character":55},"in_reply_to":"3f79a3b5_1563d5df","updated":"2018-11-26 13:54:13.000000000","message":"There will be a Glance DB on the local/edge/far-edge nodes, however this will ONLY contain images which are “locally’ created.\nSo there will be no synching of Glance DBs between Central Cloud and Edge Clouds.\n \nThe local/edge/far-edge Glance API will be enhanced to optionally read/access images defined in both the Local Glance DB and the Remote Central Glance DB ... and support local caching for both scenarios. ( Also note that this spec will enhance the caching to include both the image itself and the metadata. )","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"bf476de67de2290e53fc1316065a01bf1d17d598","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Security impact"},{"line_number":216,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"The central cloud Glance server\u0027s credentials are required in the"},{"line_number":219,"context_line":"local edge cloud\u0027s Glance .conf file.  As always, OpenStack services\u0027"},{"line_number":220,"context_line":".conf files should be properly protected through appropriately permissioned"},{"line_number":221,"context_line":"directories and files."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Other end user impact"},{"line_number":224,"context_line":"\u003d\u003d\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":1,"id":"3f79a3b5_7b39be3d","line":221,"range":{"start_line":218,"start_character":0,"end_line":221,"end_character":22},"updated":"2018-11-27 14:45:06.000000000","message":"Hmm-m I don\u0027t think I quite understand this. Is the plan to use the central clouds admin credentials (issuing only read calls) and bypass all RBAC to achieve this with single credentials?","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"cb33cdc250831d2c2a21b69c00e190a04aefca84","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Security impact"},{"line_number":216,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"The central cloud Glance server\u0027s credentials are required in the"},{"line_number":219,"context_line":"local edge cloud\u0027s Glance .conf file.  As always, OpenStack services\u0027"},{"line_number":220,"context_line":".conf files should be properly protected through appropriately permissioned"},{"line_number":221,"context_line":"directories and files."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Other end user impact"},{"line_number":224,"context_line":"\u003d\u003d\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":1,"id":"3f79a3b5_2b98bf64","line":221,"range":{"start_line":218,"start_character":0,"end_line":221,"end_character":22},"in_reply_to":"3f79a3b5_7b39be3d","updated":"2018-11-28 13:50:14.000000000","message":"Yeah ... I need to expand on this.\nThe solution actually depends on Keystone/Identity solution being used between the edge and central clouds.\n\nIdeally, I would like to make this work in a variety of scenarios.\n\nThe keystone options that I need to cover are:\n- multi-region shared keystone,\n- completely independent keystones,\n- federated keystones,\n- synchronized keystones (w/synchronized Fernet Keys) ... (StarlingX Feature)\n\nIn all scenarios, glance requests to the edge glance will first be authenticated and authorized (RBAC) using the specific userids, credentials, and keystone solution at the edge.   \n\nThe authentication \u0026 authorization for messaging between the edge glance and remote glance is dependent on the Keystone solution between the edge and the central clouds.  In some cases, yeah the remote \u0027glance\u0027 service userid and credentials will be used here, with the reasoning that the specific userid and credentials will have been used prior to this in the overall processing of the edge glance request.","commit_id":"217c6aed270db91b4abdf78c115966f25b7a21a1"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":30,"context_line":"service across the central cloud and all edge cloud sites."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For the image service, in a distributed edge cloud environment, it is"},{"line_number":33,"context_line":"desired for users to be able to manage images (i.e. add/modify/delete)"},{"line_number":34,"context_line":"at a single point (the central cloud), and use images (i.e. nova boot,"},{"line_number":35,"context_line":"create volumes) anywhere (at any of the edge clouds).  It is also"},{"line_number":36,"context_line":"required to avoid the latency in transferring images between the central"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_0c88af17","line":33,"range":{"start_line":33,"start_character":47,"end_line":33,"end_character":51},"updated":"2018-12-21 00:28:55.000000000","message":"If you have to put up a new revision, the OpenStack documentation style is to write out \"i.e.\" as \"that is,\" and \"e.g.\" as \"for example,\".  I\u0027m only mentioning it because you use \"i.e.\" a lot!","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"service across the central cloud and all edge cloud sites."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For the image service, in a distributed edge cloud environment, it is"},{"line_number":33,"context_line":"desired for users to be able to manage images (i.e. add/modify/delete)"},{"line_number":34,"context_line":"at a single point (the central cloud), and use images (i.e. nova boot,"},{"line_number":35,"context_line":"create volumes) anywhere (at any of the edge clouds).  It is also"},{"line_number":36,"context_line":"required to avoid the latency in transferring images between the central"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_0ad6cbf2","line":33,"range":{"start_line":33,"start_character":47,"end_line":33,"end_character":51},"in_reply_to":"3f79a3b5_0c88af17","updated":"2019-01-02 15:16:10.000000000","message":"Will make doc style changes in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":38,"context_line":"on edge clouds, it is also desirable to minimize the resources used on"},{"line_number":39,"context_line":"each edge cloud; i.e. avoid transferring images to an edge cloud if the"},{"line_number":40,"context_line":"image is not required at that edge cloud.  And finally, the edge cloud\u0027s"},{"line_number":41,"context_line":"image service should be autonomous, in the case of connection loss to the"},{"line_number":42,"context_line":"central cloud; i.e. any images already transferred to the edge cloud"},{"line_number":43,"context_line":"should still be available for local use."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_2c100baa","line":41,"range":{"start_line":41,"start_character":24,"end_line":41,"end_character":34},"updated":"2018-12-21 00:28:55.000000000","message":"I\u0027m not sure we want to say \u0027autonomous\u0027 here.  Maybe \u0027partition-tolerant with eventual consistency\u0027?  If an administrator deactivates an image at the central location [0], we\u0027d like the edge clouds to respect that if they can, but we\u0027re going to value partition tolerance over safety.  Might as well be explicit about the tradeoff. \n\n[0] https://developer.openstack.org/api-ref/image/v2/index.html?expanded\u003ddeactivate-image-detail#deactivate-image","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"on edge clouds, it is also desirable to minimize the resources used on"},{"line_number":39,"context_line":"each edge cloud; i.e. avoid transferring images to an edge cloud if the"},{"line_number":40,"context_line":"image is not required at that edge cloud.  And finally, the edge cloud\u0027s"},{"line_number":41,"context_line":"image service should be autonomous, in the case of connection loss to the"},{"line_number":42,"context_line":"central cloud; i.e. any images already transferred to the edge cloud"},{"line_number":43,"context_line":"should still be available for local use."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_0a4b2bb0","line":41,"range":{"start_line":41,"start_character":24,"end_line":41,"end_character":34},"in_reply_to":"3f79a3b5_2c100baa","updated":"2019-01-02 15:16:10.000000000","message":"I don\u0027t mind using the term \u0027partition tolerant\u0027 rather than \u0027autonomous\u0027.\n\nAnd will provide more description on what this means and tradeoffs of partition tolerance vs safety.\n\n... again, will make these changes in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":40,"context_line":"image is not required at that edge cloud.  And finally, the edge cloud\u0027s"},{"line_number":41,"context_line":"image service should be autonomous, in the case of connection loss to the"},{"line_number":42,"context_line":"central cloud; i.e. any images already transferred to the edge cloud"},{"line_number":43,"context_line":"should still be available for local use."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Existing multi-cloud solutions such as edge clouds sharing the central"},{"line_number":46,"context_line":"cloud\u0027s Image Service in a multi-region type environment, or edge cloud\u0027s"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_ec053368","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":6},"updated":"2018-12-21 00:28:55.000000000","message":"s/should/will/ (see previous comment)","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"image is not required at that edge cloud.  And finally, the edge cloud\u0027s"},{"line_number":41,"context_line":"image service should be autonomous, in the case of connection loss to the"},{"line_number":42,"context_line":"central cloud; i.e. any images already transferred to the edge cloud"},{"line_number":43,"context_line":"should still be available for local use."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Existing multi-cloud solutions such as edge clouds sharing the central"},{"line_number":46,"context_line":"cloud\u0027s Image Service in a multi-region type environment, or edge cloud\u0027s"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_6ad17fcd","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":6},"in_reply_to":"3f79a3b5_ec053368","updated":"2019-01-02 15:16:10.000000000","message":"agree ... will fix in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Existing multi-cloud solutions such as edge clouds sharing the central"},{"line_number":46,"context_line":"cloud\u0027s Image Service in a multi-region type environment, or edge cloud\u0027s"},{"line_number":47,"context_line":"image service supporting multiple remote backends, does not"},{"line_number":48,"context_line":"meet these requirements."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_2c756bff","line":47,"range":{"start_line":47,"start_character":51,"end_line":47,"end_character":55},"updated":"2018-12-21 00:28:55.000000000","message":"s/does/do/\n\nTwo questions:\n(a) are you talking about existing *openstack* multi-cloud solutions here?\n(b) is the problem with both of these partition tolerance?\n\n(Sorry to keep harping on this, but I\u0027d like to be really clear about what problem we need to focus on to address the edge use case.)","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Existing multi-cloud solutions such as edge clouds sharing the central"},{"line_number":46,"context_line":"cloud\u0027s Image Service in a multi-region type environment, or edge cloud\u0027s"},{"line_number":47,"context_line":"image service supporting multiple remote backends, does not"},{"line_number":48,"context_line":"meet these requirements."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_2a7707d7","line":47,"range":{"start_line":47,"start_character":51,"end_line":47,"end_character":55},"in_reply_to":"3f79a3b5_2c756bff","updated":"2019-01-02 15:16:10.000000000","message":"Agree will fix s/does/do/ in next update.\n\n(a) Multi-Region is an \u0027existing\u0027 OpenStack technique.\n     Multiple Remote Backends for Glance ... not 100% sure if this is existing or a proposal ... it\u0027s at least a proposal.  I\u0027ll refer to this as a proposal in next update.\n\n(b) With Multi-Region approach, both latency impact and partition-tolerance are the problem.\nWith Multiple Remote Backends for Glance, it is partition tolerance.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  pull the centrally managed images from the central cloud\u0027s Glance,"},{"line_number":67,"context_line":"  and cache both the image and image-metadata locally at the edge. This"},{"line_number":68,"context_line":"  will provide improved image download times on subsequent use of images"},{"line_number":69,"context_line":"  at this edge site and for autonomous edge cloud Glance functionality"},{"line_number":70,"context_line":"  if disconnected from central cloud glance,"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in glance,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_8c4effc0","line":69,"range":{"start_line":69,"start_character":28,"end_line":69,"end_character":38},"updated":"2018-12-21 00:28:55.000000000","message":"partition-tolerant?","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  pull the centrally managed images from the central cloud\u0027s Glance,"},{"line_number":67,"context_line":"  and cache both the image and image-metadata locally at the edge. This"},{"line_number":68,"context_line":"  will provide improved image download times on subsequent use of images"},{"line_number":69,"context_line":"  at this edge site and for autonomous edge cloud Glance functionality"},{"line_number":70,"context_line":"  if disconnected from central cloud glance,"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in glance,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_ea802f8e","line":69,"range":{"start_line":69,"start_character":28,"end_line":69,"end_character":38},"in_reply_to":"3f79a3b5_8c4effc0","updated":"2019-01-02 15:16:10.000000000","message":"Agree ... will change throughout document in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  if disconnected from central cloud glance,"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in glance,"},{"line_number":73,"context_line":"    to allow the edge cloud glance to be configured to interwork in this"},{"line_number":74,"context_line":"    way with a remote Glance,"},{"line_number":75,"context_line":"  * in this new mode,"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_ac497bb9","line":73,"range":{"start_line":73,"start_character":55,"end_line":73,"end_character":64},"updated":"2018-12-21 00:28:55.000000000","message":"interact?","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  if disconnected from central cloud glance,"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in glance,"},{"line_number":73,"context_line":"    to allow the edge cloud glance to be configured to interwork in this"},{"line_number":74,"context_line":"    way with a remote Glance,"},{"line_number":75,"context_line":"  * in this new mode,"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_ca4f7390","line":73,"range":{"start_line":73,"start_character":55,"end_line":73,"end_character":64},"in_reply_to":"3f79a3b5_ac497bb9","updated":"2019-01-02 15:16:10.000000000","message":"Sure ... ok with this change.  Will change in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in glance,"},{"line_number":73,"context_line":"    to allow the edge cloud glance to be configured to interwork in this"},{"line_number":74,"context_line":"    way with a remote Glance,"},{"line_number":75,"context_line":"  * in this new mode,"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    * the edge cloud Glance will only provide read access to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_4cd9c7ef","line":74,"range":{"start_line":74,"start_character":15,"end_line":74,"end_character":28},"updated":"2018-12-21 00:28:55.000000000","message":"maybe \"centrally-located Glance\"?  (I\u0027m thinking that the \u0027data access mode\u0027 will apply only to the edge Glance, whereas the central one will be a normal Glance.  Or does having an edge Glance in \u0027data access mode\u0027 also entail changes in the central Glance?)  Using \"remote\" is ambiguous, because the edge glances are remote from the central glance, and the central glance is remote from the edge glances.  At line 15, you make the distinction between the \"central cloud\" and \"multiple geographically-distributed edge clouds\".  I suggest using that \"central\" vs. \"edge\" language everywhere in this document so that it\u0027s clear what we\u0027re talking about.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in glance,"},{"line_number":73,"context_line":"    to allow the edge cloud glance to be configured to interwork in this"},{"line_number":74,"context_line":"    way with a remote Glance,"},{"line_number":75,"context_line":"  * in this new mode,"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    * the edge cloud Glance will only provide read access to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_2a0e273b","line":74,"range":{"start_line":74,"start_character":15,"end_line":74,"end_character":28},"in_reply_to":"3f79a3b5_4cd9c7ef","updated":"2019-01-02 15:16:10.000000000","message":"Correct, no changes are required to Central Glance ... it is a normal glance ... see line 61; i\u0027ll try to make that more clear.\n\nAgree, will use central and edge whenever referring to a glance instance.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    way with a remote Glance,"},{"line_number":75,"context_line":"  * in this new mode,"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    * the edge cloud Glance will only provide read access to the"},{"line_number":78,"context_line":"      remote Glance; i.e. the new \u0027data access\u0027 mode will only"},{"line_number":79,"context_line":"      issue GET REST APIs to the remote Glance for displays, lists"},{"line_number":80,"context_line":"      or downloads of images and/or image-metadata,"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_cc615711","line":78,"range":{"start_line":77,"start_character":6,"end_line":78,"end_character":20},"updated":"2018-12-21 00:28:55.000000000","message":"I\u0027m confused now.  I thought this was going to work the in the other direction, that is, the edge glance will only have read access to the central glance (which is actually what the rest of the sentence says).","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    way with a remote Glance,"},{"line_number":75,"context_line":"  * in this new mode,"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    * the edge cloud Glance will only provide read access to the"},{"line_number":78,"context_line":"      remote Glance; i.e. the new \u0027data access\u0027 mode will only"},{"line_number":79,"context_line":"      issue GET REST APIs to the remote Glance for displays, lists"},{"line_number":80,"context_line":"      or downloads of images and/or image-metadata,"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_3513e85e","line":78,"range":{"start_line":77,"start_character":6,"end_line":78,"end_character":20},"in_reply_to":"3f79a3b5_cc615711","updated":"2019-01-02 15:16:10.000000000","message":"sorry ... your thinking is correct, the edge glance will only have read access to the central glance ...  my wording is poor.\nI will correct wording in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      * effectively entire glance image object will be cached; e.g. min_disk,"},{"line_number":90,"context_line":"        min_ram, all metadata, all image member data, etc. ."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    * the edge cloud Glance must be autonomous in case network connectivity"},{"line_number":93,"context_line":"      is lost to the remote central cloud Glance; images and associated image"},{"line_number":94,"context_line":"      metadata already cached should still be available and support local"},{"line_number":95,"context_line":"      nova boots or volume creates."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_0c13cf69","line":92,"range":{"start_line":92,"start_character":36,"end_line":92,"end_character":46},"updated":"2018-12-21 00:28:55.000000000","message":"you know what I\u0027m going to say!","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      * effectively entire glance image object will be cached; e.g. min_disk,"},{"line_number":90,"context_line":"        min_ram, all metadata, all image member data, etc. ."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    * the edge cloud Glance must be autonomous in case network connectivity"},{"line_number":93,"context_line":"      is lost to the remote central cloud Glance; images and associated image"},{"line_number":94,"context_line":"      metadata already cached should still be available and support local"},{"line_number":95,"context_line":"      nova boots or volume creates."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_550ea432","line":92,"range":{"start_line":92,"start_character":36,"end_line":92,"end_character":46},"in_reply_to":"3f79a3b5_0c13cf69","updated":"2019-01-02 15:16:10.000000000","message":"Agree, will change throughout doc in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Other Key Behaviours / Work Items"},{"line_number":100,"context_line":"---------------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* In order to ensure image-metadata is always up-to-date in the edge cloud"},{"line_number":103,"context_line":"  cache, any time the edge cloud glance uses an image or image-metadata"},{"line_number":104,"context_line":"  from the remote glance, the edge cloud will always try to pull the"},{"line_number":105,"context_line":"  image-metadata from the remote glance and update the cached copy of the"},{"line_number":106,"context_line":"  image-metadata if changed,"},{"line_number":107,"context_line":"* For cache invalidation and cleanup mechanisms, whenever the edge cloud"},{"line_number":108,"context_line":"  goes to use an image or image-metadata from the cache, it will always"},{"line_number":109,"context_line":"  first validate that the image still exists on the remote glance. If the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_8f34b1e1","line":106,"range":{"start_line":102,"start_character":2,"end_line":106,"end_character":28},"updated":"2018-12-21 00:28:55.000000000","message":"I wonder whether we also need to get a list of all images that have had status changes while we are connected (instead of doing it on demand).  What I mean is, if we know that images A and B have been deleted and C has been deactivated, when the edge asks about image D, we should also tell it about images A, B, C.  Otherwise, if the edge glance is asked for image B during a partition, it will try to contact the central glance and fail, and will go ahead and use B even though B is \"really\" deleted.  (At one point, glance supported a \"changes-since\" functionality on the image-list call; I don\u0027t remember if it got ripped out along with the rest of the v1 API or not.  But that seems to be the kind of thing we could use here.)","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Other Key Behaviours / Work Items"},{"line_number":100,"context_line":"---------------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* In order to ensure image-metadata is always up-to-date in the edge cloud"},{"line_number":103,"context_line":"  cache, any time the edge cloud glance uses an image or image-metadata"},{"line_number":104,"context_line":"  from the remote glance, the edge cloud will always try to pull the"},{"line_number":105,"context_line":"  image-metadata from the remote glance and update the cached copy of the"},{"line_number":106,"context_line":"  image-metadata if changed,"},{"line_number":107,"context_line":"* For cache invalidation and cleanup mechanisms, whenever the edge cloud"},{"line_number":108,"context_line":"  goes to use an image or image-metadata from the cache, it will always"},{"line_number":109,"context_line":"  first validate that the image still exists on the remote glance. If the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_b54db873","line":106,"range":{"start_line":102,"start_character":2,"end_line":106,"end_character":28},"in_reply_to":"3f79a3b5_8f34b1e1","updated":"2019-01-02 15:16:10.000000000","message":"I like this idea ... provides more safety.\nWill change this in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  goes to use an image or image-metadata from the cache, it will always"},{"line_number":109,"context_line":"  first validate that the image still exists on the remote glance. If the"},{"line_number":110,"context_line":"  image no longer exists in the remote glance, then the cached image and"},{"line_number":111,"context_line":"  its image-metadata are removed from the edge glance\u0027s cache."},{"line_number":112,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":113,"context_line":"  with until central connection is restored, and malicious image is"},{"line_number":114,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_6f2595a6","line":111,"updated":"2018-12-21 00:28:55.000000000","message":"Which is good, but maybe we should be more proactive about this (see previous comment).","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  goes to use an image or image-metadata from the cache, it will always"},{"line_number":109,"context_line":"  first validate that the image still exists on the remote glance. If the"},{"line_number":110,"context_line":"  image no longer exists in the remote glance, then the cached image and"},{"line_number":111,"context_line":"  its image-metadata are removed from the edge glance\u0027s cache."},{"line_number":112,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":113,"context_line":"  with until central connection is restored, and malicious image is"},{"line_number":114,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_d5795493","line":111,"in_reply_to":"3f79a3b5_6f2595a6","updated":"2019-01-02 15:16:10.000000000","message":"Agree.  Will change in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":112,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":113,"context_line":"  with until central connection is restored, and malicious image is"},{"line_number":114,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"},{"line_number":115,"context_line":"  remove the image from the Edge Clouds’ caches,"},{"line_number":116,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":117,"context_line":"  resolved when the edge glance is (re-)connected with the remote glance,"},{"line_number":118,"context_line":"* Only one configured remote Glance API will be supported at a local edge"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_0f466157","line":115,"updated":"2018-12-21 00:28:55.000000000","message":"This worries me, I\u0027d prefer to be more proactive.  I mean, we want to be partition-tolerant, but not foolish.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":113,"context_line":"  with until central connection is restored, and malicious image is"},{"line_number":114,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"},{"line_number":115,"context_line":"  remove the image from the Edge Clouds’ caches,"},{"line_number":116,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":117,"context_line":"  resolved when the edge glance is (re-)connected with the remote glance,"},{"line_number":118,"context_line":"* Only one configured remote Glance API will be supported at a local edge"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_35dd2870","line":115,"in_reply_to":"3f79a3b5_0f466157","updated":"2019-01-02 15:16:10.000000000","message":"Agree.  This improves with your suggestion to \u0027always get list of all images that have had image status changes\u0027 whenever contacting the Central Glance.  Perhaps even adding an audit.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":114,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"},{"line_number":115,"context_line":"  remove the image from the Edge Clouds’ caches,"},{"line_number":116,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":117,"context_line":"  resolved when the edge glance is (re-)connected with the remote glance,"},{"line_number":118,"context_line":"* Only one configured remote Glance API will be supported at a local edge"},{"line_number":119,"context_line":"  cloud Glance,"},{"line_number":120,"context_line":"* Wrt authentication and authorization, there are three scenarios that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_6f3a75c2","line":117,"updated":"2018-12-21 00:28:55.000000000","message":"A delay in image membership changes doesn\u0027t bother me as much as using a deleted/deactivated image.  There was a patch up at some point for a change in image membership to trigger a notification that the image itself had changed (was wanted by searchlight), I\u0027m not sure whether that ever merged (it was kind of controversial).","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":114,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"},{"line_number":115,"context_line":"  remove the image from the Edge Clouds’ caches,"},{"line_number":116,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":117,"context_line":"  resolved when the edge glance is (re-)connected with the remote glance,"},{"line_number":118,"context_line":"* Only one configured remote Glance API will be supported at a local edge"},{"line_number":119,"context_line":"  cloud Glance,"},{"line_number":120,"context_line":"* Wrt authentication and authorization, there are three scenarios that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_d53ab496","line":117,"in_reply_to":"3f79a3b5_6f3a75c2","updated":"2019-01-02 15:16:10.000000000","message":"Again, this improves with the suggestion to \u0027always get list of all images that have had image status changes\u0027 whenever contacting the Central Glance.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":116,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":117,"context_line":"  resolved when the edge glance is (re-)connected with the remote glance,"},{"line_number":118,"context_line":"* Only one configured remote Glance API will be supported at a local edge"},{"line_number":119,"context_line":"  cloud Glance,"},{"line_number":120,"context_line":"* Wrt authentication and authorization, there are three scenarios that"},{"line_number":121,"context_line":"  will be considered"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_8f6271d9","line":119,"updated":"2018-12-21 00:28:55.000000000","message":"Do you mean that each edge glance will have exactly one source of truth?","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":117,"context_line":"  resolved when the edge glance is (re-)connected with the remote glance,"},{"line_number":118,"context_line":"* Only one configured remote Glance API will be supported at a local edge"},{"line_number":119,"context_line":"  cloud Glance,"},{"line_number":120,"context_line":"* Wrt authentication and authorization, there are three scenarios that"},{"line_number":121,"context_line":"  will be considered"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_95443c1d","line":119,"in_reply_to":"3f79a3b5_8f6271d9","updated":"2019-01-02 15:16:10.000000000","message":"Yes.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad142a6672152ccb4c2e070c54f05ad5ed9adb25","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  * Keystone identity resources such as Users, Projects, Roles, etc."},{"line_number":139,"context_line":"    are being DB-synch\u0027d from central cloud to all edge clouds,"},{"line_number":140,"context_line":"  * Along with Fernet Keys being syncrhonized from central cloud to all"},{"line_number":141,"context_line":"    edge clouds,"},{"line_number":142,"context_line":"  * The result is that a Token created on \u0027any\u0027 cloud can be used or"},{"line_number":143,"context_line":"    validated on \u0027any\u0027 cloud,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_c1b847e8","line":140,"range":{"start_line":140,"start_character":33,"end_line":140,"end_character":45},"updated":"2018-12-20 16:08:46.000000000","message":"synchronized","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  * Keystone identity resources such as Users, Projects, Roles, etc."},{"line_number":139,"context_line":"    are being DB-synch\u0027d from central cloud to all edge clouds,"},{"line_number":140,"context_line":"  * Along with Fernet Keys being syncrhonized from central cloud to all"},{"line_number":141,"context_line":"    edge clouds,"},{"line_number":142,"context_line":"  * The result is that a Token created on \u0027any\u0027 cloud can be used or"},{"line_number":143,"context_line":"    validated on \u0027any\u0027 cloud,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_354be82b","line":140,"range":{"start_line":140,"start_character":33,"end_line":140,"end_character":45},"in_reply_to":"3f79a3b5_c1b847e8","updated":"2019-01-02 15:16:10.000000000","message":"Will correct in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    the Token can only be validated on the edge cloud,"},{"line_number":156,"context_line":"  * In this case, the edge cloud will use new configurable parameters"},{"line_number":157,"context_line":"    to authenticate with the remote central cloud\u0027s keystone URL using"},{"line_number":158,"context_line":"    the remote central cloud\u0027s admin user and credentials,"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    * assumption is that the admin user at central cloud will NOT be an"},{"line_number":161,"context_line":"      IDP user; it will be a local keystone user,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_cfe70944","line":158,"updated":"2018-12-21 00:28:55.000000000","message":"For safety, we can configure the central glance so that it can recognize a read-only admin user, and then the edge cloud will only be given read-only admin user credentials for the central glance.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    the Token can only be validated on the edge cloud,"},{"line_number":156,"context_line":"  * In this case, the edge cloud will use new configurable parameters"},{"line_number":157,"context_line":"    to authenticate with the remote central cloud\u0027s keystone URL using"},{"line_number":158,"context_line":"    the remote central cloud\u0027s admin user and credentials,"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    * assumption is that the admin user at central cloud will NOT be an"},{"line_number":161,"context_line":"      IDP user; it will be a local keystone user,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_15690c8a","line":158,"in_reply_to":"3f79a3b5_cfe70944","updated":"2019-01-02 15:16:10.000000000","message":"Agreed, I will add this point in next update.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":173,"context_line":"      solution where image and image-metadata is retrieved from a remote"},{"line_number":174,"context_line":"      Glance server,"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"      * however, \u0027data_api\u0027 is deprecated,"},{"line_number":177,"context_line":"      * alternative approach would be to use the \u0027flavor\u0027 configuration"},{"line_number":178,"context_line":"        parameter where this new \u0027data access\u0027 solution is defined as"},{"line_number":179,"context_line":"        another pipeline option."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        * I.e. Similar to the way the cache and cache management are defined"},{"line_number":182,"context_line":"          as another pipeline option by setting"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_afd08d57","line":179,"range":{"start_line":176,"start_character":0,"end_line":179,"end_character":32},"updated":"2018-12-21 00:28:55.000000000","message":"Yeah, this requires some thought.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"      solution where image and image-metadata is retrieved from a remote"},{"line_number":174,"context_line":"      Glance server,"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"      * however, \u0027data_api\u0027 is deprecated,"},{"line_number":177,"context_line":"      * alternative approach would be to use the \u0027flavor\u0027 configuration"},{"line_number":178,"context_line":"        parameter where this new \u0027data access\u0027 solution is defined as"},{"line_number":179,"context_line":"        another pipeline option."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        * I.e. Similar to the way the cache and cache management are defined"},{"line_number":182,"context_line":"          as another pipeline option by setting"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_d53154a4","line":179,"range":{"start_line":176,"start_character":0,"end_line":179,"end_character":32},"in_reply_to":"3f79a3b5_afd08d57","updated":"2019-01-02 15:16:10.000000000","message":"I\u0027ll change in next update to just indicate use of \u0027flavour\u0027 configuration, rather than refer to deprecated attribute.\nAlthough open to any suggestions for how this new \u0027data access\u0027 solution should be configured.","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1cfdf5908b4a4e9fa6d5b083402ceda62501f937","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    * remote_glance_server_username"},{"line_number":193,"context_line":"    * remote_glance_server_password"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Alternatives"},{"line_number":198,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_af672db9","line":195,"updated":"2018-12-21 00:28:55.000000000","message":"OK, at this point I have to stop.  What\u0027s the scenario for populating the edge glance?  Is it purely on-demand, that is, the edge glance is \"empty\", an edge user says GET v2/images/1234 and the edge glance does GET v2/images/1234 on the central glance?  There isn\u0027t code that does that in the current glance.  Maybe what we want is some kind of intelligent DB sync?  The edge glance definitely needs its own DB, since that\u0027s where all the metadata is stored.  Maybe I\u0027m thinking about this the wrong way.  But currently, when you have \u003e1 glance, they share the same DB (either directly or via the registry, which is being removed), so they all know about exactly the same images.  That won\u0027t be the case for the edge glances, which will be partition tolerant, but how exactly is this going to work?","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"2f4d8c554d84d11072593157c86a6e89b045248b","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    * remote_glance_server_username"},{"line_number":193,"context_line":"    * remote_glance_server_password"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Alternatives"},{"line_number":198,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f769fc5_15a82c75","line":195,"in_reply_to":"3f79a3b5_af672db9","updated":"2019-01-02 15:16:10.000000000","message":"Yes purely on demand.\n\nThe edge user does a command like \u0027nova boot ... A-image ... \u0027, \n- edge nova requests image from edge glance, \n- edge glance forwards nova\u0027s message to central glance, \n- central glance responds to edge glance,\n- edge glance caches and forwards response on to nova.\n\n( generally this is how it works in the off-stream version we have of this @ PIKE )  ","commit_id":"54f47b22bc4bfc0b58aa846c712245c8f7021a84"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"bf162e9429ba666b03bb799038e520b09aff5958","unresolved":false,"context_lines":[{"line_number":36,"context_line":"cloud and the edge clouds as much as possible.  Due to limited resources"},{"line_number":37,"context_line":"on edge clouds, it is also desirable to minimize the resources used on"},{"line_number":38,"context_line":"each edge cloud; that is to avoid transferring images to an edge cloud if"},{"line_number":39,"context_line":"the image is not required at that edge cloud.  And finally, the edge"},{"line_number":40,"context_line":"cloud\u0027s image service should be tolerant to connection loss with the"},{"line_number":41,"context_line":"central cloud.  That is, any images already transferred to the edge cloud"},{"line_number":42,"context_line":"will still be usable by that edge cloud while disconnected from the"},{"line_number":43,"context_line":"central cloud."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_a9655547","line":41,"range":{"start_line":39,"start_character":47,"end_line":41,"end_character":13},"updated":"2019-01-09 09:36:40.000000000","message":"I\u0027m not sure that is a requirement for MVP as there is no local control plane expectations set, right? If glance cannot be reached at the central site, we cannot do any CRUD locally, so what is the \"tolerant\" then?","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f4fdc528f3d7a6b163bb969a87457163e9514db0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"cloud and the edge clouds as much as possible.  Due to limited resources"},{"line_number":37,"context_line":"on edge clouds, it is also desirable to minimize the resources used on"},{"line_number":38,"context_line":"each edge cloud; that is to avoid transferring images to an edge cloud if"},{"line_number":39,"context_line":"the image is not required at that edge cloud.  And finally, the edge"},{"line_number":40,"context_line":"cloud\u0027s image service should be tolerant to connection loss with the"},{"line_number":41,"context_line":"central cloud.  That is, any images already transferred to the edge cloud"},{"line_number":42,"context_line":"will still be usable by that edge cloud while disconnected from the"},{"line_number":43,"context_line":"central cloud."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_43ffe233","line":41,"range":{"start_line":39,"start_character":47,"end_line":41,"end_character":13},"in_reply_to":"dfd5e7cf_12560a5e","updated":"2019-01-09 14:32:08.000000000","message":"Yeah, I definitely think glance is one of the places where it should be pretty easy and effective to be a full read cache of the master, fully functional (within the scope set here) when disconnected. Let\u0027s not limit this work to the minimal overall target, but rather the most realistic and useful first step, otherwise it\u0027s going to take forever to move forward if we\u0027re only taking tiny sequential steps. Like Greg says, multiple control planes (i.e. nova and neutron) with some shared services (i.e. keystone and glance) is definitely an important usage scenario.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"0bab27f9ecfc0a75de818ac15d44658003d4d447","unresolved":false,"context_lines":[{"line_number":36,"context_line":"cloud and the edge clouds as much as possible.  Due to limited resources"},{"line_number":37,"context_line":"on edge clouds, it is also desirable to minimize the resources used on"},{"line_number":38,"context_line":"each edge cloud; that is to avoid transferring images to an edge cloud if"},{"line_number":39,"context_line":"the image is not required at that edge cloud.  And finally, the edge"},{"line_number":40,"context_line":"cloud\u0027s image service should be tolerant to connection loss with the"},{"line_number":41,"context_line":"central cloud.  That is, any images already transferred to the edge cloud"},{"line_number":42,"context_line":"will still be usable by that edge cloud while disconnected from the"},{"line_number":43,"context_line":"central cloud."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_ef24a2c8","line":41,"range":{"start_line":39,"start_character":47,"end_line":41,"end_character":13},"in_reply_to":"dfd5e7cf_43ffe233","updated":"2019-01-10 14:36:44.000000000","message":"Thank you for clarification folks. That was me getting the \"Registering for synchronisation\" https://wiki.openstack.org/wiki/MappingOfUseCasesFeaturesRequirementsAndUserStories#Registering_for_synchronisation wrong and extending that into the wrong assumptions of that the Distributed Control Plane didn\u0027t make it into MVP as there going to be no tooling for advanced data replication with conflicts resolving. So even though the latter statement happened to be true, that still allows us to proceed with DCP at least for Glance and Keystone!","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"b094df9efcfd02983805e55fec740a97cb6f4319","unresolved":false,"context_lines":[{"line_number":36,"context_line":"cloud and the edge clouds as much as possible.  Due to limited resources"},{"line_number":37,"context_line":"on edge clouds, it is also desirable to minimize the resources used on"},{"line_number":38,"context_line":"each edge cloud; that is to avoid transferring images to an edge cloud if"},{"line_number":39,"context_line":"the image is not required at that edge cloud.  And finally, the edge"},{"line_number":40,"context_line":"cloud\u0027s image service should be tolerant to connection loss with the"},{"line_number":41,"context_line":"central cloud.  That is, any images already transferred to the edge cloud"},{"line_number":42,"context_line":"will still be usable by that edge cloud while disconnected from the"},{"line_number":43,"context_line":"central cloud."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_12560a5e","line":41,"range":{"start_line":39,"start_character":47,"end_line":41,"end_character":13},"in_reply_to":"dfd5e7cf_a9655547","updated":"2019-01-09 12:23:45.000000000","message":"There are two deployment scenarios identified by the edge-computing group.  See https://wiki.openstack.org/wiki/Edge_Computing_Group/Edge_Reference_Architectures#Distributed_Control_Plane_Scenario .\n\nOne scenario with a distributed control plane and one scenario with a centralized control plane.  The requirement to be tolerant to connection loss with the central cloud is related to the distributed control plane scenario where there is a full control plane at the edge cloud.\n\nWhen disconnected from the central cloud, the edge cloud glance in the distributed control plane scenario will be able to support GETs on its cached image and image meta-data.\n\nThis general requirement for tolerance to connection loss to the central cloud has been explicitly discussed in the edge-computing group and is why we have included both the distributed and central scenarios in the MVP.  We have identified Use Cases where this is required ... e.g. Distributed Cloud solutions where the edge clouds provide compute power for complex hospital equipment such as MRIs.  The Distributed Cloud solution is being used to provide centralized management of the various edge cloud deployments across a geographically disperse hospital campus.  Loss of connectivity to the Central Cloud can not prevent the edge cloud -based hospital equipment from being able to start new applications, scale applications or recover failed applications.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"bf162e9429ba666b03bb799038e520b09aff5958","unresolved":false,"context_lines":[{"line_number":39,"context_line":"the image is not required at that edge cloud.  And finally, the edge"},{"line_number":40,"context_line":"cloud\u0027s image service should be tolerant to connection loss with the"},{"line_number":41,"context_line":"central cloud.  That is, any images already transferred to the edge cloud"},{"line_number":42,"context_line":"will still be usable by that edge cloud while disconnected from the"},{"line_number":43,"context_line":"central cloud."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Other multi-cloud solutions such as edge clouds sharing the central"},{"line_number":46,"context_line":"cloud\u0027s Image Service in a multi-region type environment, do not meet"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_a9f31573","line":43,"range":{"start_line":42,"start_character":14,"end_line":43,"end_character":13},"updated":"2019-01-09 09:36:40.000000000","message":"ditto, a single central control plane have no autonomy supported, which is no CRUDs allowed for isolated edge sites, for MVP. How can this be achieved then? Let\u0027s please adapt this spec for real MVP requirements for the control plane.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"b094df9efcfd02983805e55fec740a97cb6f4319","unresolved":false,"context_lines":[{"line_number":39,"context_line":"the image is not required at that edge cloud.  And finally, the edge"},{"line_number":40,"context_line":"cloud\u0027s image service should be tolerant to connection loss with the"},{"line_number":41,"context_line":"central cloud.  That is, any images already transferred to the edge cloud"},{"line_number":42,"context_line":"will still be usable by that edge cloud while disconnected from the"},{"line_number":43,"context_line":"central cloud."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Other multi-cloud solutions such as edge clouds sharing the central"},{"line_number":46,"context_line":"cloud\u0027s Image Service in a multi-region type environment, do not meet"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_f254a623","line":43,"range":{"start_line":42,"start_character":14,"end_line":43,"end_character":13},"in_reply_to":"dfd5e7cf_a9f31573","updated":"2019-01-09 12:23:45.000000000","message":"This specification is in alignment with the MVP architecture defined by the OpenStack edge-computing group, see https://wiki.openstack.org/wiki/Edge_Computing_Group/Edge_Reference_Architectures#Distributed_Control_Plane_Scenario","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fff8857b519fc350506854c293133379ab3dc0","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  will provide improved image download times on subsequent uses of cached"},{"line_number":74,"context_line":"  images at this edge site.  And will provide the ability for the edge"},{"line_number":75,"context_line":"  cloud\u0027s Glance to service requests against cached images, even when"},{"line_number":76,"context_line":"  connectivity is lost to the central cloud."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in Glance,"},{"line_number":79,"context_line":"    to allow the edge cloud\u0027s Glance to be configured to interact in this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_a0ffbb65","line":76,"updated":"2019-01-08 16:21:20.000000000","message":"So, the edge glance uses a glance database in the normal way, and the periodic task populates the local images and data after it runs, is that right?\n\nOn day zero, does the periodic pull all images and their metadata? Or does it just pull information about them, and only pull the actual image if/when asked locally? The former sounds like a startup storm problem. The latter probably makes the most sense, but it also requires a well-performing pipeline that streams the image from the remote central glance to the local disk for caching as well as to the synchronously-waiting requestor. Might be worth calling that out somewhere so it\u0027s clear. Downloading the image to disk, then serving it to the waiting requestor is not likely to work for anything other than trivial images (and/or without substantial changes to things like Nova, AFAIK).","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9466f85d1874d707fe4f8070ec3bf9318d870912","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  will provide improved image download times on subsequent uses of cached"},{"line_number":74,"context_line":"  images at this edge site.  And will provide the ability for the edge"},{"line_number":75,"context_line":"  cloud\u0027s Glance to service requests against cached images, even when"},{"line_number":76,"context_line":"  connectivity is lost to the central cloud."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in Glance,"},{"line_number":79,"context_line":"    to allow the edge cloud\u0027s Glance to be configured to interact in this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_6abe6066","line":76,"in_reply_to":"dfd5e7cf_6ad2e05e","updated":"2019-01-10 15:13:41.000000000","message":"Definitely no DB replication. It says below that edge glance will only communicate with central glance via REST. That\u0027s why it should be totally doable to make the edge glance quite self-sufficient from the start.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  will provide improved image download times on subsequent uses of cached"},{"line_number":74,"context_line":"  images at this edge site.  And will provide the ability for the edge"},{"line_number":75,"context_line":"  cloud\u0027s Glance to service requests against cached images, even when"},{"line_number":76,"context_line":"  connectivity is lost to the central cloud."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in Glance,"},{"line_number":79,"context_line":"    to allow the edge cloud\u0027s Glance to be configured to interact in this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_e1cce48a","line":76,"in_reply_to":"dfd5e7cf_a0ffbb65","updated":"2019-01-08 19:59:03.000000000","message":"The Edge Glance will use the glance database for caching of image metadata.  The \u0027source of truth\u0027 for the Edge Glance API is the central Glance DB.  When disconnected from the central Glance, the Edge Glance will use the glance database in the normal way.\n\nThe Edge Glance will cache the image and image-metadata from the central Glance, when an image is asked for via the Edge Glance API.\n\nThe purpose of the periodic task is to simply capture any changes to image-metadata at the Central Glance, for ONLY images/metadata that have \"already\" been locally cached at the Edge Glance. \n\nThe existing upstream Glance Caching already implements a well-performing pipeline where the image stream is split/replicated with one stream goes to the image cache and the other stream goes to the entity that requested the image.  ( I will highlight that this is the case in my next update to the document )","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"f05564206ff35ef701c7d0faa6187edce0a9022c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  will provide improved image download times on subsequent uses of cached"},{"line_number":74,"context_line":"  images at this edge site.  And will provide the ability for the edge"},{"line_number":75,"context_line":"  cloud\u0027s Glance to service requests against cached images, even when"},{"line_number":76,"context_line":"  connectivity is lost to the central cloud."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in Glance,"},{"line_number":79,"context_line":"    to allow the edge cloud\u0027s Glance to be configured to interact in this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_6ad2e05e","line":76,"in_reply_to":"dfd5e7cf_e1cce48a","updated":"2019-01-10 14:46:21.000000000","message":"So this implies no database replication for the central and edge glance instances, right?","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bdea170627f42e746c935e2bb4394136737d0e17","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in Glance,"},{"line_number":79,"context_line":"    to allow the edge cloud\u0027s Glance to be configured to interact in this"},{"line_number":80,"context_line":"    way with a remote central cloud\u0027s Glance,"},{"line_number":81,"context_line":"  * in this new mode,"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    * the edge cloud\u0027s Glance will only have read access to the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_be883bc6","line":80,"updated":"2019-01-08 18:02:13.000000000","message":"Maybe it\u0027s just me, or maybe I\u0027m glance-ignorant, but this configuration option name doesn\u0027t make much sense to me. I would think something like \"parent_glance\" or \"master\" or something would be more meaningful. Presumably this is a boolean (or two-state choice) element, which controls whether or not we look at the \"remote_central_*\" options, right? Why not just enable this mode if those are set instead of having this other flag?","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  * this will be a new optional/configurable \u0027data access\u0027 mode in Glance,"},{"line_number":79,"context_line":"    to allow the edge cloud\u0027s Glance to be configured to interact in this"},{"line_number":80,"context_line":"    way with a remote central cloud\u0027s Glance,"},{"line_number":81,"context_line":"  * in this new mode,"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    * the edge cloud\u0027s Glance will only have read access to the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_6130f457","line":80,"in_reply_to":"dfd5e7cf_be883bc6","updated":"2019-01-08 19:59:03.000000000","message":"My bad ... just confusing text.\n\n\u0027data access\u0027 is not the name of the new mode ... I will remove the quotes.  I am using the term to generally refer to the way Glance retrieves its image data info.  There are a few options for how this is done today, and we are adding an additional option.\n\nLater in the SPEC, I indicate that the \u0027flavor\u0027 configuration parameter requires a new pipeline option to describe the new data access mode that we will add.\ne.g.\nflavor\u003dkeystone+centralGlanceCached\n\n( ... naming TBD with Glance Team ... )","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bdea170627f42e746c935e2bb4394136737d0e17","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      * NOTE all messaging with remote central cloud\u0027s Glance API will"},{"line_number":89,"context_line":"        be via existing Glance REST APIs,"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    * the edge cloud\u0027s Glance will NOT support creation of local images,"},{"line_number":92,"context_line":"    * the edge cloud\u0027s Glance will locally cache both image and"},{"line_number":93,"context_line":"      image-metadata retrieved from the remote central cloud\u0027s Glance,"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_5e1fcf6b","line":91,"updated":"2019-01-08 18:02:13.000000000","message":"This makes sense to me, but... what about snapshots? Nova won\u0027t be able to create images in what it knows to be the glance endpoint, and thus can\u0027t do any snapshots?","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"ec6f475981877310832cd6c91dafead69099850e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      * NOTE all messaging with remote central cloud\u0027s Glance API will"},{"line_number":89,"context_line":"        be via existing Glance REST APIs,"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    * the edge cloud\u0027s Glance will NOT support creation of local images,"},{"line_number":92,"context_line":"    * the edge cloud\u0027s Glance will locally cache both image and"},{"line_number":93,"context_line":"      image-metadata retrieved from the remote central cloud\u0027s Glance,"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_6aa180a9","line":91,"in_reply_to":"dfd5e7cf_0f610f37","updated":"2019-01-10 14:54:20.000000000","message":"\u003e Okay that seems like a really big deal to me, just FYI.\n \u003e \n \u003e Why not just make POST pass through like a proxy to the parent\n \u003e glance? Then you can grab the image as it streams through and not\n \u003e have to pull it down again (assuming you proxy a 200 back from the\n \u003e parent).\n\nWhat if the parent glance is not available? Shall the image be created in the local DB then? If so, that pulls in back the topic with data replication and conflicts resolving and violates MVP I believe.\n\nnote: we should clarify the \"tolerant\" for supported CRUD operations when disconnected off the central glance. That is also nice to have for features to requirements mappings.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"5adac7211f01cdec2309fb850349be6a34997c2c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      * NOTE all messaging with remote central cloud\u0027s Glance API will"},{"line_number":89,"context_line":"        be via existing Glance REST APIs,"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    * the edge cloud\u0027s Glance will NOT support creation of local images,"},{"line_number":92,"context_line":"    * the edge cloud\u0027s Glance will locally cache both image and"},{"line_number":93,"context_line":"      image-metadata retrieved from the remote central cloud\u0027s Glance,"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_aa7d511d","line":91,"in_reply_to":"dfd5e7cf_0f610f37","updated":"2019-01-08 21:06:56.000000000","message":"I will document your suggestion in the SPEC as a future approach to address this initial limitation.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      * NOTE all messaging with remote central cloud\u0027s Glance API will"},{"line_number":89,"context_line":"        be via existing Glance REST APIs,"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    * the edge cloud\u0027s Glance will NOT support creation of local images,"},{"line_number":92,"context_line":"    * the edge cloud\u0027s Glance will locally cache both image and"},{"line_number":93,"context_line":"      image-metadata retrieved from the remote central cloud\u0027s Glance,"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_a48eea75","line":91,"in_reply_to":"dfd5e7cf_5e1fcf6b","updated":"2019-01-08 19:59:03.000000000","message":"In this initial implementation, you will not be able to create snapshots at the edge.\n\nI will specify this in next update of document.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9466f85d1874d707fe4f8070ec3bf9318d870912","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      * NOTE all messaging with remote central cloud\u0027s Glance API will"},{"line_number":89,"context_line":"        be via existing Glance REST APIs,"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    * the edge cloud\u0027s Glance will NOT support creation of local images,"},{"line_number":92,"context_line":"    * the edge cloud\u0027s Glance will locally cache both image and"},{"line_number":93,"context_line":"      image-metadata retrieved from the remote central cloud\u0027s Glance,"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_4a491c89","line":91,"in_reply_to":"dfd5e7cf_6aa180a9","updated":"2019-01-10 15:13:41.000000000","message":"I\u0027m okay with snapshots not being possible while the parent is unavailable for the first cut. However, if everything is working, it seems rather unfortunate to not be able to do snapshots.\n\nEven if everything in the edge is fully ephemeral, snapshots can be important for forensics. Consider this case: something fails, so you shoot it in the head and re-deploy. However, the same problem keeps happening, so the next time it occurs, you snapshot it before you redeploy so you can grab the snapshot and examine offline.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      * NOTE all messaging with remote central cloud\u0027s Glance API will"},{"line_number":89,"context_line":"        be via existing Glance REST APIs,"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    * the edge cloud\u0027s Glance will NOT support creation of local images,"},{"line_number":92,"context_line":"    * the edge cloud\u0027s Glance will locally cache both image and"},{"line_number":93,"context_line":"      image-metadata retrieved from the remote central cloud\u0027s Glance,"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_0f610f37","line":91,"in_reply_to":"dfd5e7cf_a48eea75","updated":"2019-01-08 20:38:08.000000000","message":"Okay that seems like a really big deal to me, just FYI.\n\nWhy not just make POST pass through like a proxy to the parent glance? Then you can grab the image as it streams through and not have to pull it down again (assuming you proxy a 200 back from the parent).","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fff8857b519fc350506854c293133379ab3dc0","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  Glance uses an image or image-meta data from the remote central cloud\u0027s"},{"line_number":114,"context_line":"  Glance, whether the image is cached or not, the edge cloud\u0027s Glance"},{"line_number":115,"context_line":"  will pull the image-metadata from the remote central cloud\u0027s Glance and"},{"line_number":116,"context_line":"  update the cached copy of the image-metadata if changed,"},{"line_number":117,"context_line":"* In order to improve the synchronization of image-metadata at the edge"},{"line_number":118,"context_line":"  cloud\u0027s Glance in preparation for a potential connectivity loss with"},{"line_number":119,"context_line":"  the central cloud\u0027s Glance, a periodic audit will be done by the edge"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_6069d3bc","line":116,"updated":"2019-01-08 16:21:20.000000000","message":"Does this mean that every time I do a nova boot in the edge cloud, that nova hits the edge glance, which makes a blocking call to the central glance before it can reply to nova? That seems like it will not be great for performance, as well as potentially have the problem of cascading timeouts (where nova has a 60s timeout against its glance, which has a 60s timeout against the central glance, etc). It also impacts the \"works while disconnected\" statement. Even if you have a short timeout between edge glance and central glance, and gracefully fall back to the cached data, you introduce a $timeout delay into all that stuff.\n\nIf you\u0027re going to do a periodic audit, why not just refresh the image metadata then?","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  Glance uses an image or image-meta data from the remote central cloud\u0027s"},{"line_number":114,"context_line":"  Glance, whether the image is cached or not, the edge cloud\u0027s Glance"},{"line_number":115,"context_line":"  will pull the image-metadata from the remote central cloud\u0027s Glance and"},{"line_number":116,"context_line":"  update the cached copy of the image-metadata if changed,"},{"line_number":117,"context_line":"* In order to improve the synchronization of image-metadata at the edge"},{"line_number":118,"context_line":"  cloud\u0027s Glance in preparation for a potential connectivity loss with"},{"line_number":119,"context_line":"  the central cloud\u0027s Glance, a periodic audit will be done by the edge"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_e4ccf28a","line":116,"in_reply_to":"dfd5e7cf_6069d3bc","updated":"2019-01-08 19:59:03.000000000","message":"Agree, I like the idea of just using the periodic audit to refresh the image metadata, makes sense.\n\nWrt the issue that while disconnected, you will always be impacted by the edge glance --\u003e central glance timeout, ... a possible solution is to use the periodic audit to manage a central-glance-connectivity status which is used by the edge glance API to immediately determine whether communication with central glance should be attempted or not.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  Glance uses an image or image-meta data from the remote central cloud\u0027s"},{"line_number":114,"context_line":"  Glance, whether the image is cached or not, the edge cloud\u0027s Glance"},{"line_number":115,"context_line":"  will pull the image-metadata from the remote central cloud\u0027s Glance and"},{"line_number":116,"context_line":"  update the cached copy of the image-metadata if changed,"},{"line_number":117,"context_line":"* In order to improve the synchronization of image-metadata at the edge"},{"line_number":118,"context_line":"  cloud\u0027s Glance in preparation for a potential connectivity loss with"},{"line_number":119,"context_line":"  the central cloud\u0027s Glance, a periodic audit will be done by the edge"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_efd04bcc","line":116,"in_reply_to":"dfd5e7cf_e4ccf28a","updated":"2019-01-08 20:38:08.000000000","message":"Or use a short connection timeout and a long lifetime timeout so that you notice a failure to connect quickly, but still have long-term protection over the connection stalling. Also, if you do the TTL thing, then you don\u0027t have to hit the parent in a lot of cases.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fff8857b519fc350506854c293133379ab3dc0","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  the central cloud\u0027s Glance, a periodic audit will be done by the edge"},{"line_number":120,"context_line":"  cloud\u0027s Glance to pull the image-metadata for ALL locally cached images"},{"line_number":121,"context_line":"  from the remote central cloud\u0027s Glance and update the edge cloud\u0027s"},{"line_number":122,"context_line":"  Glance cache accordingly,"},{"line_number":123,"context_line":"* Cache invalidation and cleanup mechanisms will occur as a result of"},{"line_number":124,"context_line":"  the above two bullets.  Whenever an updated copy of image-metadata"},{"line_number":125,"context_line":"  is retrieved from the remote central cloud\u0027s Glance, either due to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_80ab97d4","line":122,"updated":"2019-01-08 16:21:20.000000000","message":"Presumably a list with a changes-since filter to make this efficient? Every edge glance doing a GET of each image periodically is a lot of traffic.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  the central cloud\u0027s Glance, a periodic audit will be done by the edge"},{"line_number":120,"context_line":"  cloud\u0027s Glance to pull the image-metadata for ALL locally cached images"},{"line_number":121,"context_line":"  from the remote central cloud\u0027s Glance and update the edge cloud\u0027s"},{"line_number":122,"context_line":"  Glance cache accordingly,"},{"line_number":123,"context_line":"* Cache invalidation and cleanup mechanisms will occur as a result of"},{"line_number":124,"context_line":"  the above two bullets.  Whenever an updated copy of image-metadata"},{"line_number":125,"context_line":"  is retrieved from the remote central cloud\u0027s Glance, either due to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_6fe45bad","line":122,"in_reply_to":"dfd5e7cf_44a13ea9","updated":"2019-01-08 20:38:08.000000000","message":"Seems like any real cloud is going to need that for baseline decent performance. Hundreds of edge sites all hitting the central glance for hundreds of images is.. a lot of traffic.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  the central cloud\u0027s Glance, a periodic audit will be done by the edge"},{"line_number":120,"context_line":"  cloud\u0027s Glance to pull the image-metadata for ALL locally cached images"},{"line_number":121,"context_line":"  from the remote central cloud\u0027s Glance and update the edge cloud\u0027s"},{"line_number":122,"context_line":"  Glance cache accordingly,"},{"line_number":123,"context_line":"* Cache invalidation and cleanup mechanisms will occur as a result of"},{"line_number":124,"context_line":"  the above two bullets.  Whenever an updated copy of image-metadata"},{"line_number":125,"context_line":"  is retrieved from the remote central cloud\u0027s Glance, either due to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_44a13ea9","line":122,"in_reply_to":"dfd5e7cf_80ab97d4","updated":"2019-01-08 19:59:03.000000000","message":"Agree, the GLANCE Reviewer suggested the same thing ... I was leaving it as an option to explore in our implementation, but will explicitly indicate it here in next update of SPEC.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fff8857b519fc350506854c293133379ab3dc0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  a request against a cached image or an audit, if the image no longer"},{"line_number":127,"context_line":"  exists in the remote central cloud\u0027s Glance, then the cached image"},{"line_number":128,"context_line":"  and its image-metadata are removed from the edge cloud\u0027s Glance"},{"line_number":129,"context_line":"  cache,"},{"line_number":130,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":131,"context_line":"  with until central connection is restored, and the malicious image is"},{"line_number":132,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_c0af5f92","line":129,"updated":"2019-01-08 16:21:20.000000000","message":"How about a TTL in the image metadata which instructs the edge glance how long an image can be considered good without refreshing? That way we could only hit the central repo that often to refresh stuff. Wide-access images which are unlikely to see substantial change could have long TTL values. Images for which metadata should be refreshed on each boot (potentially even denying handing out the cached image if the metadata cannot be confirmed with central) could have a TTL of zero.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  a request against a cached image or an audit, if the image no longer"},{"line_number":127,"context_line":"  exists in the remote central cloud\u0027s Glance, then the cached image"},{"line_number":128,"context_line":"  and its image-metadata are removed from the edge cloud\u0027s Glance"},{"line_number":129,"context_line":"  cache,"},{"line_number":130,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":131,"context_line":"  with until central connection is restored, and the malicious image is"},{"line_number":132,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_24899a22","line":129,"in_reply_to":"dfd5e7cf_c0af5f92","updated":"2019-01-08 19:59:03.000000000","message":"Interesting idea.\nLet me discuss with Glance Team.\n\nI will at the very least document it as an optional additional cache invalidation scheme.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  exists in the remote central cloud\u0027s Glance, then the cached image"},{"line_number":128,"context_line":"  and its image-metadata are removed from the edge cloud\u0027s Glance"},{"line_number":129,"context_line":"  cache,"},{"line_number":130,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":131,"context_line":"  with until central connection is restored, and the malicious image is"},{"line_number":132,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"},{"line_number":133,"context_line":"  remove the image from the Edge Clouds’ caches,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_4a7b858b","line":130,"range":{"start_line":130,"start_character":2,"end_line":130,"end_character":5},"updated":"2019-01-08 20:38:08.000000000","message":"IMHO, spell this out for our not-native English speaking friends.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"5adac7211f01cdec2309fb850349be6a34997c2c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  exists in the remote central cloud\u0027s Glance, then the cached image"},{"line_number":128,"context_line":"  and its image-metadata are removed from the edge cloud\u0027s Glance"},{"line_number":129,"context_line":"  cache,"},{"line_number":130,"context_line":"* Wrt dealing with a malicious image that is cached, this can not be dealt"},{"line_number":131,"context_line":"  with until central connection is restored, and the malicious image is"},{"line_number":132,"context_line":"  removed from Central Cloud and cache invalidation/cleanup mechanisms"},{"line_number":133,"context_line":"  remove the image from the Edge Clouds’ caches,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_0a9edd55","line":130,"range":{"start_line":130,"start_character":2,"end_line":130,"end_character":5},"in_reply_to":"dfd5e7cf_4a7b858b","updated":"2019-01-08 21:06:56.000000000","message":"Agree","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fff8857b519fc350506854c293133379ab3dc0","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  * that is, the ability to provide edge cloud Glance support during loss"},{"line_number":136,"context_line":"    of connectivity with the remote central cloud\u0027s Glance will be done"},{"line_number":137,"context_line":"    at the risk that a malicious image may be detected and identified"},{"line_number":138,"context_line":"    while connectivity is lost,"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":141,"context_line":"  resolved when the edge Glance is (re-)connected with the remote central"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_00c1e754","line":138,"updated":"2019-01-08 16:21:20.000000000","message":"You might consider allowing a DELETE against the edge glance which merely invalidates the cache of that image. That way in an emergency mitigation scenario, just running ansible against all your edges could invalidate cache of a potentially problematic image.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  * that is, the ability to provide edge cloud Glance support during loss"},{"line_number":136,"context_line":"    of connectivity with the remote central cloud\u0027s Glance will be done"},{"line_number":137,"context_line":"    at the risk that a malicious image may be detected and identified"},{"line_number":138,"context_line":"    while connectivity is lost,"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":141,"context_line":"  resolved when the edge Glance is (re-)connected with the remote central"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_64948238","line":138,"in_reply_to":"dfd5e7cf_00c1e754","updated":"2019-01-08 19:59:03.000000000","message":"I like this idea too ... might be a little tricky to implement based on our current thinking ... but will document in SPEC that we will explore this in the implementation.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  * that is, the ability to provide edge cloud Glance support during loss"},{"line_number":136,"context_line":"    of connectivity with the remote central cloud\u0027s Glance will be done"},{"line_number":137,"context_line":"    at the risk that a malicious image may be detected and identified"},{"line_number":138,"context_line":"    while connectivity is lost,"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":141,"context_line":"  resolved when the edge Glance is (re-)connected with the remote central"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_ef136b65","line":138,"in_reply_to":"dfd5e7cf_64948238","updated":"2019-01-08 20:38:08.000000000","message":"Okay, unless there\u0027s some residue in the local glance DB that would be left from a soft delete or something, I would think this would be pretty easy.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"5adac7211f01cdec2309fb850349be6a34997c2c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  * that is, the ability to provide edge cloud Glance support during loss"},{"line_number":136,"context_line":"    of connectivity with the remote central cloud\u0027s Glance will be done"},{"line_number":137,"context_line":"    at the risk that a malicious image may be detected and identified"},{"line_number":138,"context_line":"    while connectivity is lost,"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* Changes to image membership (and image-data in general) can also only be"},{"line_number":141,"context_line":"  resolved when the edge Glance is (re-)connected with the remote central"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_ca9f754e","line":138,"in_reply_to":"dfd5e7cf_ef136b65","updated":"2019-01-08 21:06:56.000000000","message":"Will definitely document in spec and explore this in implementation.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bdea170627f42e746c935e2bb4394136737d0e17","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  * New Configuration Parameters:"},{"line_number":215,"context_line":"    for example,"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    * remote_central_cloud_glance_server_keystone_url"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"      * to retrieve remote glance server public endpoint from,"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_be5fdb3f","line":217,"updated":"2019-01-08 18:02:13.000000000","message":"This is kindof a nit, but...these are super long config names and they are overly wordy, IMHO. Why not just \"master_url\" and the like? Or, go for a section:\n\n [master_repository]\n url \u003d ...\n username \u003d ...\n password \u003d ...","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  * New Configuration Parameters:"},{"line_number":215,"context_line":"    for example,"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    * remote_central_cloud_glance_server_keystone_url"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"      * to retrieve remote glance server public endpoint from,"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_04b256e7","line":217,"in_reply_to":"dfd5e7cf_be5fdb3f","updated":"2019-01-08 19:59:03.000000000","message":"Agree ... i will update.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":246,"context_line":"REST API impact"},{"line_number":247,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"There are no REST API changes required to any Services."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Security impact"},{"line_number":252,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_ef3a8be5","line":249,"updated":"2019-01-08 20:38:08.000000000","message":"IMHO, it would be good to define all the API calls that will be do-able at an edge glance, and what the return codes are in various situations. Like, if nova tries to boot from image $foo, we don\u0027t have that cached, and we can\u0027t contact the central glance, what do we do?\n\nReturn 500? It\u0027s not *really* a total service failure; other requests may work fine.\n\nReturn 404? It may or may not be a valid image and what a downstream service does with a 404 might be different than what it really means.\n\nReturn 503? The service is available, just that one resource isn\u0027t.\n\nAnyway, personally, I\u0027d like to see those called out.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"5adac7211f01cdec2309fb850349be6a34997c2c","unresolved":false,"context_lines":[{"line_number":246,"context_line":"REST API impact"},{"line_number":247,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"There are no REST API changes required to any Services."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Security impact"},{"line_number":252,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_eaffd964","line":249,"in_reply_to":"dfd5e7cf_ef3a8be5","updated":"2019-01-08 21:06:56.000000000","message":"I\u0027ll add at least the major APIs ... so reader has a view of generally how we will handle the typical error scenarios.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fff8857b519fc350506854c293133379ab3dc0","unresolved":false,"context_lines":[{"line_number":264,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Accessing of an image in a configured remote central cloud\u0027s Glance server,"},{"line_number":267,"context_line":"will incur a latency due to downloading the image from the remote central"},{"line_number":268,"context_line":"cloud\u0027s Glance server.  If local edge cloud\u0027s Glance caching is enabled,"},{"line_number":269,"context_line":"then all subsequent image accesses will fetch the image from the cache,"},{"line_number":270,"context_line":"and NOT incur this latency."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_40a84f1e","line":267,"range":{"start_line":267,"start_character":28,"end_line":267,"end_character":73},"updated":"2019-01-08 16:21:20.000000000","message":"This seems to imply that you\u0027re going to do the download first, and then serve the waiting requestor. I definitely think that should be avoided if possible. I think the \"all nova boots fail until the first download finishes\" behavior won\u0027t be very nice. Also consider the *second* nova boot at day zero. Consider:\n\n 1. Compute node A requests image foo\n 2. Edge Glance starts downloading foo, Compute node A waits synchronously\n 3. Compute node B requests image foo ....\n\nAt #3, you want to not start requesting the image again, and ideally not return \"500, Sorry not ready yet\". You could start streaming the image that is showing up on disk to the remote (tail-f style) as long as you can know when to EOF. Worth calling out what the plan for that is here I think.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":264,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Accessing of an image in a configured remote central cloud\u0027s Glance server,"},{"line_number":267,"context_line":"will incur a latency due to downloading the image from the remote central"},{"line_number":268,"context_line":"cloud\u0027s Glance server.  If local edge cloud\u0027s Glance caching is enabled,"},{"line_number":269,"context_line":"then all subsequent image accesses will fetch the image from the cache,"},{"line_number":270,"context_line":"and NOT incur this latency."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_afb1e391","line":267,"range":{"start_line":267,"start_character":28,"end_line":267,"end_character":73},"in_reply_to":"dfd5e7cf_2f05f3c2","updated":"2019-01-08 20:38:08.000000000","message":"Cool, glad to hear that\u0027s already something we can lean on. Calling that out specifically to avoid the impression (which I got several times here) that it\u0027ll be a sequential dance.\n\nSo that brings a small amount of additional latency in the happy path, but hopefully not too much in the grand scheme of downloading a many-GB image.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"6d51df890c99960e22e3443c5f7b6466a4fa7aac","unresolved":false,"context_lines":[{"line_number":264,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Accessing of an image in a configured remote central cloud\u0027s Glance server,"},{"line_number":267,"context_line":"will incur a latency due to downloading the image from the remote central"},{"line_number":268,"context_line":"cloud\u0027s Glance server.  If local edge cloud\u0027s Glance caching is enabled,"},{"line_number":269,"context_line":"then all subsequent image accesses will fetch the image from the cache,"},{"line_number":270,"context_line":"and NOT incur this latency."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_2f05f3c2","line":267,"range":{"start_line":267,"start_character":28,"end_line":267,"end_character":73},"in_reply_to":"dfd5e7cf_40a84f1e","updated":"2019-01-08 19:59:03.000000000","message":"As mentioned previously, the existing upstream Glance Caching already implements a well-performing pipeline where the image stream is split/replicated with one stream goes to the image cache and the other stream goes to the entity that requested the image.  \n\nWill at least update document to say that this border case will be tested.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eeb61eee0dac879524a551b8db3c19112f0fb40d","unresolved":false,"context_lines":[{"line_number":357,"context_line":"  that non-cached operation of Glance is not impacted,"},{"line_number":358,"context_line":"* Configure a Glance API server that does NOT use a central cloud\u0027s Glance"},{"line_number":359,"context_line":"  server as a remote source and verify standard Glance operations with"},{"line_number":360,"context_line":"  and without caching,"},{"line_number":361,"context_line":"* Unit tests will be added to cover the new Glance functionality."},{"line_number":362,"context_line":""},{"line_number":363,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_8a32cdf0","line":360,"updated":"2019-01-08 20:38:08.000000000","message":"I don\u0027t know about the glance team, but in a nova spec we would want these to be tempest or functional tests. I would hope that this work would yield a job (either new, or modification of an existing one) that runs an edge glance against a real one and ensures the behaviors you expect to work actually do. Is that planned?\n\nAlso, this arrangement should totally work in a situation where you have an edge glance pointed at another edge glance, which in turn points at the real one. It\u0027d be nice to validate that such an arrangement works, and doesn\u0027t regress as we move from the initial implementation to one that works for more cases. I would think that sort of daisy-chained arrangement would be rather common, so we might as well make sure it\u0027s tested from the get-go, IMHO.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"5adac7211f01cdec2309fb850349be6a34997c2c","unresolved":false,"context_lines":[{"line_number":357,"context_line":"  that non-cached operation of Glance is not impacted,"},{"line_number":358,"context_line":"* Configure a Glance API server that does NOT use a central cloud\u0027s Glance"},{"line_number":359,"context_line":"  server as a remote source and verify standard Glance operations with"},{"line_number":360,"context_line":"  and without caching,"},{"line_number":361,"context_line":"* Unit tests will be added to cover the new Glance functionality."},{"line_number":362,"context_line":""},{"line_number":363,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfd5e7cf_8a4c0dc8","line":360,"in_reply_to":"dfd5e7cf_8a32cdf0","updated":"2019-01-08 21:06:56.000000000","message":"I\u0027ll discuss with Glance Team what they typically expect in this test section.\n\nI\u0027ll document the notion that this should work in the daisy-chained scenario ... as at least a future capability.","commit_id":"86ee6c83b6abbe96e3134b9dc0b4940082e25120"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"3554c81a1e4a0d8271118cfbea8325b02fd29969","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  image metadata.  The source-of-truth for the edge cloud Glance"},{"line_number":147,"context_line":"  API is the central Glance DB.  Only when disconnected from the central"},{"line_number":148,"context_line":"  Glance, will the edge Glance use the local glance database as the"},{"line_number":149,"context_line":"  source-of-truth."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Although a Glance image is immutable, Glance\u0027s image-metadata is"},{"line_number":152,"context_line":"  mutable.  Therefore, after the initial caching of image-metadata,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_4121559f","line":149,"range":{"start_line":149,"start_character":2,"end_line":149,"end_character":17},"updated":"2019-01-11 10:36:03.000000000","message":"so it worths noting that database are supposed only to be switched and never replicated (shared-nothing)","commit_id":"cc4b2caceefe2ba539ea20bd9bf8d7f398e995bd"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"3b37ea15563128b98179fe9966b022b8336d34ba","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  image metadata.  The source-of-truth for the edge cloud Glance"},{"line_number":147,"context_line":"  API is the central Glance DB.  Only when disconnected from the central"},{"line_number":148,"context_line":"  Glance, will the edge Glance use the local glance database as the"},{"line_number":149,"context_line":"  source-of-truth."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Although a Glance image is immutable, Glance\u0027s image-metadata is"},{"line_number":152,"context_line":"  mutable.  Therefore, after the initial caching of image-metadata,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_e5cb8ba2","line":149,"range":{"start_line":149,"start_character":2,"end_line":149,"end_character":17},"in_reply_to":"bfdaf3ff_4121559f","updated":"2019-01-14 15:13:37.000000000","message":"Yes, the Edge Cloud Glance DB is simply a Read Only Cache of a subset of the Central Cloud Glance DB; a subset based on what images have been pulled by the Edge Cloud Glance.\n\nI\u0027ll clarify in next update of SPEC.","commit_id":"cc4b2caceefe2ba539ea20bd9bf8d7f398e995bd"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"3554c81a1e4a0d8271118cfbea8325b02fd29969","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  * A future consideration for dealing with malicious images is to"},{"line_number":199,"context_line":"    support image DELETE at the edge cloud Glance API which would remove"},{"line_number":200,"context_line":"    the image and image-metadata from the local edge cloud\u0027s Glance."},{"line_number":201,"context_line":"    That way malicious images could be dealt with if the user has"},{"line_number":202,"context_line":"    an alternate access to the local edge cloud APIs, for example"},{"line_number":203,"context_line":"    remote terminal access to consoles."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_e655ff1e","line":200,"updated":"2019-01-11 10:36:03.000000000","message":"As the edge cloud\u0027s Glance will NOT support creation of local images, how would we propagate the image deletion event to the central cloud, including its temporary unavailability cases, so it follows up with that, like via eventual synchronization, and removes that image in its DB?\n\nNote, DELETE\u0027ing at the edge cloud glance contradicts the statement below: \"POST, PUT and DELETE APIs at the edge cloud Glance, the error will be 405 (Method Not Allowed)\"","commit_id":"cc4b2caceefe2ba539ea20bd9bf8d7f398e995bd"},{"author":{"_account_id":26026,"name":"Greg Waines","email":"greg.waines@windriver.com","username":"gwaines"},"change_message_id":"3b37ea15563128b98179fe9966b022b8336d34ba","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  * A future consideration for dealing with malicious images is to"},{"line_number":199,"context_line":"    support image DELETE at the edge cloud Glance API which would remove"},{"line_number":200,"context_line":"    the image and image-metadata from the local edge cloud\u0027s Glance."},{"line_number":201,"context_line":"    That way malicious images could be dealt with if the user has"},{"line_number":202,"context_line":"    an alternate access to the local edge cloud APIs, for example"},{"line_number":203,"context_line":"    remote terminal access to consoles."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_a54a6324","line":200,"in_reply_to":"bfdaf3ff_76a9b6dd","updated":"2019-01-14 15:13:37.000000000","message":"Agree, the local Edge Cloud DELETE operation would semantically just be flushing that image \u0026 image-metadata from the Local Edge Cloud\u0027s cache.","commit_id":"cc4b2caceefe2ba539ea20bd9bf8d7f398e995bd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"49b8b1d962e965f6b7a1f7fdd37ee09e046462b7","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  * A future consideration for dealing with malicious images is to"},{"line_number":199,"context_line":"    support image DELETE at the edge cloud Glance API which would remove"},{"line_number":200,"context_line":"    the image and image-metadata from the local edge cloud\u0027s Glance."},{"line_number":201,"context_line":"    That way malicious images could be dealt with if the user has"},{"line_number":202,"context_line":"    an alternate access to the local edge cloud APIs, for example"},{"line_number":203,"context_line":"    remote terminal access to consoles."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bfdaf3ff_76a9b6dd","line":200,"in_reply_to":"bfdaf3ff_e655ff1e","updated":"2019-01-11 14:39:48.000000000","message":"\u003e As the edge cloud\u0027s Glance will NOT support creation of local\n \u003e images, how would we propagate the image deletion event to the\n \u003e central cloud, including its temporary unavailability cases, so it\n \u003e follows up with that, like via eventual synchronization, and\n \u003e removes that image in its DB?\n\nWe wouldn\u0027t. A DELETE at a caching-only glance would be a deletion of the cached information, not the image. It\u0027s a quick way to invalidate the cache at a certain level. If that\u0027s because we\u0027ve already deleted the actual image in the parent glance, then an attempt to boot will fail to re-populate the cache here. If the cache delete was just to refresh (or something) then a new boot will re-cache the image.","commit_id":"cc4b2caceefe2ba539ea20bd9bf8d7f398e995bd"}]}
