)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"1d5263dbdb315e1be799927aeb84203a62959c16","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"02233b6c_69bf37d7","updated":"2022-04-11 15:43:57.000000000","message":"Adding my understanding first.\n\nWe are going to create new API /export or modify /file (download api) which will create a new gzip file containing image data, image metadata and some footer (magic number) to indicate that metadata is included in file.\nThe newly created file will be stored on client machine so that it can be moved by air gapped systems (like usb) or used as an input to another import for image creation request in another deployment.\n\nBased on above understanding, I have few questions;\n \n1. This spec only talks about how the export (.gzip) file is created but it does not include how it will be read by the glance as it is mentioned that these efforts will be tracked separately (as discussed in PTG).\n\n2. IMO all should be part of the same spec as if we don\u0027t have provision to read this new file and act on it then it will be just a file sitting on local machine and of no use.\n\n3. Even though this is a draft and not the final design I think we should basically have a primary solution and others could be alternative, like adding new /export endpoint should be primary solution.\n\n4. If we considering to modify /file endpoint (download API) then how it will know that it has to include the metadata should be included in the spec.\n\n5. Property protection, what if user has a permission to read/view the property at one deployment but he is forbidden from creating it using property protection. As defined in spec as he is able to see the property the property will be included in the .gzip file as a metadata and will be created on target glance as well (does this violates property protection here).\n\n6. There are certain read only and reserved properties (starting with os_glance_) which user might be able to see but not able to create those, so are we going to copy/store those properties as well?\n\n7. I think we should have a potential/important list of metadata property defined in the spec that should be included in the output.\n\n8. What if decompression plugin is not enabled at the target glance?\n\n9. Can\u0027t we use the file generated by this proposal using /data (upload) api?","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6fab5c231e3d628da0399cf95fbb6d20d520191a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1f9bedad_56055b3e","updated":"2022-04-11 15:45:36.000000000","message":"Even it is a draft, adding -1 so that it will get attention in review list of others.\nThank you for proposing the idea.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"46fdbcbfe2a5388401c09c526c3ce5c267332caf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"737304e2_51a30374","updated":"2022-05-03 13:31:19.000000000","message":"Functionality would be useful; comment inline about an alternative to consider.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9c25aaf00a11b1da5a5cc484fe2a930d9fd71b9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e5c6d12b_57bc0a69","updated":"2022-04-11 16:28:01.000000000","message":"There is no owner for this, so I assume this is just documenting something we could do, but with no specific schedule for this cycle right?\n\nI like this idea in general, and the fact that it\u0027s a useful thing helps lend support to the glance-download case for importing metadata, as the mere existence of this feature proposal clearly indicates how important it is to bring metadata along with the image.\n\nI definitely think that we should strive to avoid creating any new sort of format, especially when things like tar exist specifically for things like this. It would be trivial to provide the desired compatibility with older glances with something like \"glance image-export $img | tar x justtheimage.img | glance image-create --file -\".\n\nOtherwise, agree with Abhi regarding adding more detail here about consumption and the full workflow. I definitely think that this should be a new /export API and not just /file with a magic header.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d872f4c586ea971b6f8973dc2707b1a4535ecbe2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"931f7692_8ac9f778","updated":"2022-04-11 15:47:01.000000000","message":"also zuul will report -1 as it is missing the index file.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"}],"specs/zed/approved/glance/image-export.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9c25aaf00a11b1da5a5cc484fe2a930d9fd71b9a","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  data, but to ensure safe transfer over different mediums.)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Followed by fixed length size of the previous metadata and footer indicator"},{"line_number":54,"context_line":"  so that the exported files can be recognized for importing."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This model will also allow Glance that does not have the code present for"},{"line_number":57,"context_line":"recognizing said exports to utilize the image payload as long as the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"96f6c79b_e7ea6d48","line":54,"updated":"2022-04-11 16:28:01.000000000","message":"This seems to be describing the creation of a bespoke file format to effectively contain two files. IMHO, we should avoid doing that any time it\u0027s not strictly necessary.\n\nThe tar format was designed with the specific purpose in life of being able to be generated on the fly and contain multiple files. Similarly, gzip is often used to wrap files and can be done on the fly as well. I would expect the ideal solution here would be to stream a gzip\u0027d tar file containing the data as a file, followed by the metadata as a file, in json text format. That way it\u0027s easy to examine both manually as needed, and is useful as a general-purpose backup format.\n\nBoth import and upload would be able to parse and split these formats on the fly.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"46303cb9fe7ea0eba0ef155ec487d736ad14dea2","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  data, but to ensure safe transfer over different mediums.)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Followed by fixed length size of the previous metadata and footer indicator"},{"line_number":54,"context_line":"  so that the exported files can be recognized for importing."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This model will also allow Glance that does not have the code present for"},{"line_number":57,"context_line":"recognizing said exports to utilize the image payload as long as the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5384503c_fa0cd519","line":54,"in_reply_to":"187c200b_a3e66f25","updated":"2022-05-03 13:45:07.000000000","message":"Yep, OVA/OVF would be better as well, I\u0027m just not sure it\u0027s worth trying to adhere to the standard. Given what we want it for - we don\u0027t want to store it as an OVA, but rather unpack it back into its constituent parts. I think that runs counter to glance\u0027s reason for \"supporting\" OVA currently, which is to provide the OVA as-is to a hypervisor that wants it.\n\nBut, definitely agree that using some existing multi-file stream encoding is most important, and structure within that is less so. If it makes sense to try to be an OVA, then that\u0027s cool too.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"46fdbcbfe2a5388401c09c526c3ce5c267332caf","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  data, but to ensure safe transfer over different mediums.)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Followed by fixed length size of the previous metadata and footer indicator"},{"line_number":54,"context_line":"  so that the exported files can be recognized for importing."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This model will also allow Glance that does not have the code present for"},{"line_number":57,"context_line":"recognizing said exports to utilize the image payload as long as the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"187c200b_a3e66f25","line":54,"in_reply_to":"96f6c79b_e7ea6d48","updated":"2022-05-03 13:31:19.000000000","message":"Glance already claims to support \u0027ova\u0027 container format, which is a single tarfile distribution of an OVF, which is roughly data files + a manifest describing the data.  This seems exactly what we would want, the image file + image metadata in the manifest.\n\nI don\u0027t think we want to create our own custom file format unless absolutely necessary.  The downside of OVF is that I think the manifest is supposed to be XML, but we could probably get around that by having a \u003cimage-json\u003e{dump of image-detail response}\u003c/image-json\u003e element.\n\nAnyway, it\u0027s another thing to consider in the Alternatives section.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9c25aaf00a11b1da5a5cc484fe2a930d9fd71b9a","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This model will also allow Glance that does not have the code present for"},{"line_number":57,"context_line":"recognizing said exports to utilize the image payload as long as the"},{"line_number":58,"context_line":"decompression is enabled as gzip will just ignore the rest of the file."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"As there is no any secrecy, encryption for example, involved the metadata can"},{"line_number":61,"context_line":"be extracted at any stage of the process. Like client could present the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6621f4e3_b7dc6006","line":58,"updated":"2022-04-11 16:28:01.000000000","message":"If it\u0027s a tar file, then it\u0027s easy to split the raw image out before uploading, either manually or in a pipe.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9c25aaf00a11b1da5a5cc484fe2a930d9fd71b9a","unresolved":true,"context_lines":[{"line_number":159,"context_line":"Work Items"},{"line_number":160,"context_line":"----------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Export logic for extracting and serializing the metadata"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* API change, image stream compression and embedding the metadata"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"d74c4397_a740ab8f","line":162,"updated":"2022-04-11 16:28:01.000000000","message":"This will be re-usable for the glance-download case, so we should make sure that whichever of these efforts go first, the extraction routine(s) are written in such a way that they can be consistent.","commit_id":"0e2dace23f4085329d612f377f3ef04f9fc19605"}]}
