)]}'
{"specs/wallaby/affinity-antiaffinity-filter.rst":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"41f77c25e43ae39bfa91221184b939c7cd00feb4","unresolved":true,"context_lines":[{"line_number":123,"context_line":"----------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"1. Filter implementation"},{"line_number":126,"context_line":"2. Add scheduler hints parameter"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"96395563_4dddce0e","line":126,"range":{"start_line":126,"start_character":5,"end_line":126,"end_character":26},"updated":"2021-02-19 17:32:01.000000000","message":"I\u0027d like to understand/confirm how the implementation avoids the a bug similar to https://bugs.launchpad.net/nova/+bug/1423648\n\nBasically, if you create 2 shares at the same time, looks like the policy could be violated due to a race condition. Both validations would happen in parallel, but according to [0], it will not proper validate the restriction.\n\n[0] https://review.opendev.org/c/openstack/manila/+/775201/6/manila/scheduler/filters/affinity.py#89","commit_id":"b851ab6899b11d518089aa9f9a54a3d28cf2f41a"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"014c69e4d8eb92f841868c3ce5e0e0ceb3b484d2","unresolved":true,"context_lines":[{"line_number":123,"context_line":"----------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"1. Filter implementation"},{"line_number":126,"context_line":"2. Add scheduler hints parameter"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6fbc57d8_887ee96a","line":126,"range":{"start_line":126,"start_character":5,"end_line":126,"end_character":26},"in_reply_to":"96395563_4dddce0e","updated":"2021-03-24 08:57:23.000000000","message":"Hi, I don\u0027t see the same issue - because we are not having groups.\nFor affinity: policy violation due to race condition can not occur, because all will end up on the same host. There is no \u0027empty group\u0027 at the start.\nFor anti-affinity: I\u0027m always specifying which share I want to be in relation to. So if I say my new shares B1 and B2 should not be on the same host like share A and I fire two calls for B1 and B2 at the same time, it is okay. B1 and B2 may end up on the same host, but that is not violating the constraint.","commit_id":"b851ab6899b11d518089aa9f9a54a3d28cf2f41a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"095e45d9269eb366ddcc85ab2e929c8a6e9a8874","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2785a0ed_69ef1f20","updated":"2021-06-24 19:45:34.000000000","message":"Hi, please move this spec to \u0027xena\u0027.","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"8f11a1196f4db9e1226d2f17b5811018a5324ad1","unresolved":true,"context_lines":[{"line_number":26,"context_line":"build their application on top of shares would like to be able to \u0027choose\u0027"},{"line_number":27,"context_line":"where a share be created on.  How can manila provide such capability without"},{"line_number":28,"context_line":"hurting the simplicity we have been keeping?  Affinity/anti-affinity is one"},{"line_number":29,"context_line":"of the flexibility we can provide without exposing details to back ends."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The term affinity/anti-affinity here is to describe the relationship"},{"line_number":32,"context_line":"between two sets of shares in terms of location.  To limit the scope, we"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4ac8c286_ad30d77e","line":29,"range":{"start_line":29,"start_character":59,"end_line":29,"end_character":61},"updated":"2021-06-24 15:55:58.000000000","message":"nit: \"details of back ends\", or simpler, \"back end details.\"","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"8f11a1196f4db9e1226d2f17b5811018a5324ad1","unresolved":true,"context_lines":[{"line_number":33,"context_line":"describe one share has affinity with the other one only when they reside in"},{"line_number":34,"context_line":"the same share back end; on the contrary, \u0027anti-affinity\u0027"},{"line_number":35,"context_line":"relation between two sets of shares simply implies they are on different"},{"line_number":36,"context_line":"manila back ends (hosts)."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"This affinity/anti-affinity filter filters manila back end based on hint"},{"line_number":39,"context_line":"specified by end user.  The hint expresses the affinity or anti-affinity"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab3e4a1c_72b1e5ec","line":36,"updated":"2021-06-24 15:55:58.000000000","message":"Probably worth stating explicitly that shares in different pools on the same host are still in the same equivalence set.","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"8f11a1196f4db9e1226d2f17b5811018a5324ad1","unresolved":true,"context_lines":[{"line_number":74,"context_line":"REST API impact"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Parameter \u0027scheduler_hints\u0027 added to share create."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Security impact"},{"line_number":80,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"45e96fe6_3f5066c4","line":77,"updated":"2021-06-24 15:55:58.000000000","message":"microversion bump.\n\nNeed the actual api changes to POST of /v2/shares including response.\n\nAlso, are you going to validate the content of the allowed hints at the api layer?","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"095e45d9269eb366ddcc85ab2e929c8a6e9a8874","unresolved":true,"context_lines":[{"line_number":74,"context_line":"REST API impact"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Parameter \u0027scheduler_hints\u0027 added to share create."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Security impact"},{"line_number":80,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ed869ff4_d5aeddbd","line":77,"in_reply_to":"45e96fe6_3f5066c4","updated":"2021-06-24 19:45:34.000000000","message":"+1","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"095e45d9269eb366ddcc85ab2e929c8a6e9a8874","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Testing"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Test against AffinityFilter:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4c0d96f7_2204a920","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":7},"updated":"2021-06-24 19:45:34.000000000","message":"Any plans to create new tempest tests to automate these tests below?","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"91182ed78c1bde8b79f9dd5e51f51f5b7ce79705","unresolved":true,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Test against AffinityFilter:"},{"line_number":138,"context_line":" * Create one share A;"},{"line_number":139,"context_line":" * Create another share B with uuid of A and \u0027affinity_shares\u0027 as hint;"},{"line_number":140,"context_line":" * Checks if B is created on same back end as A;"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Test against AntiAffinityFilter:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"02126074_8b6ee2ea","line":139,"updated":"2021-06-04 08:46:44.000000000","message":"Looking into https://review.opendev.org/c/openstack/manila/+/775201, the hint should be \"affinity_filter\", not \"affinity_shares\".","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"91182ed78c1bde8b79f9dd5e51f51f5b7ce79705","unresolved":true,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Test against AntiAffinityFilter:"},{"line_number":143,"context_line":" * Create one share A;"},{"line_number":144,"context_line":" * Create another share C with uuid of A and \u0027anti_affinity_shares\u0027 as hint;"},{"line_number":145,"context_line":" * Checks if C is created on different back end as A;"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f8f7b8b_68de0fec","line":144,"updated":"2021-06-04 08:46:44.000000000","message":"Same, according to https://review.opendev.org/c/openstack/manila/+/775201, the hint should be \"anti_affinity_filter\", not \"anti_affinity_shares\".","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"}],"specs/xena/affinity-antiaffinity-filter.rst":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f982308fbed1672f112f43ae88cd2f84a86e1e16","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"86c8617c_0ae70f97","line":29,"range":{"start_line":29,"start_character":59,"end_line":29,"end_character":61},"in_reply_to":"4ac8c286_ad30d77e","updated":"2021-07-07 17:26:21.000000000","message":"Done","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f982308fbed1672f112f43ae88cd2f84a86e1e16","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3443feff_cd7549e5","line":36,"in_reply_to":"ab3e4a1c_72b1e5ec","updated":"2021-07-07 17:26:21.000000000","message":"Done","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f982308fbed1672f112f43ae88cd2f84a86e1e16","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f693728c_f686fa2b","line":77,"in_reply_to":"ed869ff4_d5aeddbd","updated":"2021-07-07 17:26:21.000000000","message":"Done","commit_id":"2089778cfa420890de0c37c1b0beb030628d1f91"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f982308fbed1672f112f43ae88cd2f84a86e1e16","unresolved":true,"context_lines":[{"line_number":89,"context_line":"      }"},{"line_number":90,"context_line":"  }`"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"All uuid-s given will be validated if exist and share cration"},{"line_number":93,"context_line":"will fail if at least one share is not existing or uuid malformed."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"If the desired scheduling combination is not possible (e.g. affinity"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8306e623_1692358e","line":92,"range":{"start_line":92,"start_character":54,"end_line":92,"end_character":61},"updated":"2021-07-07 17:26:21.000000000","message":"nit: creation","commit_id":"472b9b0d5c663276cec445d1327ee145983b75df"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"1ac06a3fd11f29f5f2937f7e7caadb410619853f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      }"},{"line_number":90,"context_line":"  }`"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"All uuid-s given will be validated if exist and share cration"},{"line_number":93,"context_line":"will fail if at least one share is not existing or uuid malformed."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"If the desired scheduling combination is not possible (e.g. affinity"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a97b5571_4bc0de90","line":92,"range":{"start_line":92,"start_character":54,"end_line":92,"end_character":61},"in_reply_to":"8306e623_1692358e","updated":"2021-07-08 13:17:30.000000000","message":"Done","commit_id":"472b9b0d5c663276cec445d1327ee145983b75df"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f982308fbed1672f112f43ae88cd2f84a86e1e16","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"If the desired scheduling combination is not possible (e.g. affinity"},{"line_number":96,"context_line":"with two shares located on two different hosts) - the share creation"},{"line_number":97,"context_line":"should fail."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Microversion of the API is incremented."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ab3867c_00ffeebe","line":97,"updated":"2021-07-07 17:26:21.000000000","message":"I guess you are saying case (b) above will be Fail, but one could argue that for affinity the match is an OR (I want it close to any one of the shares I mention) and that for antiaffinity it should be AND (these are the shares to stay away from, no matter what back end they are on).\nOr maybe both should be ANDs.\n\nIn any case please make the semantics a little more specific.","commit_id":"472b9b0d5c663276cec445d1327ee145983b75df"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"946bef37b8885ca533e9af52023b6ef8793bbeb5","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"If the desired scheduling combination is not possible (e.g. affinity"},{"line_number":96,"context_line":"with two shares located on two different hosts) - the share creation"},{"line_number":97,"context_line":"should fail."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Microversion of the API is incremented."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e0e2832f_db898110","line":97,"in_reply_to":"1ab3867c_00ffeebe","updated":"2021-07-08 08:08:38.000000000","message":"We had a quick internal discussion on that point. It seems like a hard AND would be a better option, because the user expectation is most likely that a new share gets affinity to both (or multiple) other shares. If that is a soft OR affinity - user won\u0027t have a clear way of finding out which share was picked for the affinity. But, even if we provide a way (an extra endpoint, etc.) - it would require an extra step or an API call to figure out how the share was scheduled which seems rather unintuitive.\n\nSo, in our opinion - that has to be hard AND for both affinity/anti-affinity. And in case the conditions cannot be met - just fail the share creation.","commit_id":"472b9b0d5c663276cec445d1327ee145983b75df"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"1ac06a3fd11f29f5f2937f7e7caadb410619853f","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"If the desired scheduling combination is not possible (e.g. affinity"},{"line_number":96,"context_line":"with two shares located on two different hosts) - the share creation"},{"line_number":97,"context_line":"should fail."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Microversion of the API is incremented."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e21ec571_fe9c213d","line":97,"in_reply_to":"35418a73_32979788","updated":"2021-07-08 13:17:30.000000000","message":"Done","commit_id":"472b9b0d5c663276cec445d1327ee145983b75df"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"35f729e779ed1950884cf2e54b31217315f29f9d","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"If the desired scheduling combination is not possible (e.g. affinity"},{"line_number":96,"context_line":"with two shares located on two different hosts) - the share creation"},{"line_number":97,"context_line":"should fail."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Microversion of the API is incremented."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"35418a73_32979788","line":97,"in_reply_to":"e0e2832f_db898110","updated":"2021-07-08 11:05:49.000000000","message":"Please explicitly stste the hard AND semantics for both filters then and mention alternative semantics with your reasoning in the ALternatives section.","commit_id":"472b9b0d5c663276cec445d1327ee145983b75df"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"82e761ae6171c7fd54ea22f0cf9e167c8622bb5c","unresolved":true,"context_lines":[{"line_number":100,"context_line":"              \"anti_affinity_filter\": [\"share_uuid_3\"]"},{"line_number":101,"context_line":"          }"},{"line_number":102,"context_line":"      }"},{"line_number":103,"context_line":"  }`"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"All uuid-s given will be validated if exist and share creation"},{"line_number":106,"context_line":"will fail if at least one share is not existing or uuid malformed."}],"source_content_type":"text/x-rst","patch_set":6,"id":"288759e9_4caf846b","line":103,"updated":"2021-07-08 18:57:36.000000000","message":"Would it make sense to reverse this example to have uuid1, uuid2 in the anti_affinity filter and uuid_3 in the affinity_filter?  I\u0027m thinking that multiple share uuids for affinity only make sense if they are all on the backend and the validation in the api may want to fail multiple share uuids with affinity_filter fast if they are not on the same back end.\n\nFor anti_affinity, on the other hand, it does make sense to say schedule the new share somewhere else than where uuid_1 lives and somewhere else than where uuid2_lives, even if the shares with uuid1 and uuid2 are on different back ends.\n\nAbove examples assume AND semantics for both.","commit_id":"97a30c2988f5699cd9914b83f99b825e225ca781"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"75bc09a6715455e15d0cdba74ec70aefdd6d9854","unresolved":true,"context_lines":[{"line_number":100,"context_line":"              \"anti_affinity_filter\": [\"share_uuid_3\"]"},{"line_number":101,"context_line":"          }"},{"line_number":102,"context_line":"      }"},{"line_number":103,"context_line":"  }`"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"All uuid-s given will be validated if exist and share creation"},{"line_number":106,"context_line":"will fail if at least one share is not existing or uuid malformed."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fda5d280_cf4f632b","line":103,"in_reply_to":"288759e9_4caf846b","updated":"2021-07-09 08:14:17.000000000","message":"Yes, agree, updated. The idea was to demonstrate that there can be multiple uuid-s for both filters.","commit_id":"97a30c2988f5699cd9914b83f99b825e225ca781"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"63ed4e81a480d4b783d79bfedf42da181b27621c","unresolved":true,"context_lines":[{"line_number":66,"context_line":"back end for new shares.  It doesn\u0027t really provide similar functionality as"},{"line_number":67,"context_line":"affinity filter because it was admin only and it itself has a few drawbacks"},{"line_number":68,"context_line":"(security concern, for example)."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"There is an option to have a soft OR semantics for both filters instead of"},{"line_number":71,"context_line":"hard AND. That means, the share creation should succeed if at least 1"},{"line_number":72,"context_line":"condition has been met. The drawback is that there won\u0027t be a clear way"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9ea3d8fb_fbe4487f","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":0},"updated":"2021-07-13 02:53:55.000000000","message":"From what i understand, we had a discussion at the PTG to consider share groups as an alternative, however, we discarded the idea based on a few limitations. However, it\u0027d be nice to note that down here:\n\n\nAffinity is also possible with share groups. However, there are some limitations of share groups to the use case proposed:\n\n1) Affinity/Anti-affinity is only required at the time of provisioning the resource, and not at any other point during its lifetime. Shares created within share groups today are tied to the share group throughout their lifetime.\n2) Current feature limitations with share groups include the inability to migrate or replicate shares within a share group\n3) While achieving affinity is possible with share groups, anti-affinity is not.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"23aadb9bc2493e870f95495226804bbf7ee09d88","unresolved":false,"context_lines":[{"line_number":66,"context_line":"back end for new shares.  It doesn\u0027t really provide similar functionality as"},{"line_number":67,"context_line":"affinity filter because it was admin only and it itself has a few drawbacks"},{"line_number":68,"context_line":"(security concern, for example)."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"There is an option to have a soft OR semantics for both filters instead of"},{"line_number":71,"context_line":"hard AND. That means, the share creation should succeed if at least 1"},{"line_number":72,"context_line":"condition has been met. The drawback is that there won\u0027t be a clear way"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c2debc2d_42e41c2b","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":0},"in_reply_to":"9ea3d8fb_fbe4487f","updated":"2021-07-13 08:45:34.000000000","message":"Done","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"63ed4e81a480d4b783d79bfedf42da181b27621c","unresolved":true,"context_lines":[{"line_number":74,"context_line":"(When a user \"fires and forgets\" a creation request with hints where not"},{"line_number":75,"context_line":"all conditions are met)."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternative to changing DB Share model can be to store the scheduler_hints"},{"line_number":78,"context_line":"in the share metadata. The drawback is that user might accidentially overwrite"},{"line_number":79,"context_line":"the respective metadata, so this metadata key/value would require some"},{"line_number":80,"context_line":"protection mechanism."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f62ba317_7e14618f","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":21},"updated":"2021-07-13 02:53:55.000000000","message":"Problems with preserving this information in the database:\n\n1) Shares can be deleted and migrated independently of each other; if their UUIDs are recorded as hints in other shares, it becomes a problem to find all such shares and delete the respective hints; \n2) These hints are only currently proposed to be used for provisioning - do you mean to apply these even during share migration? That would be the user/admin\u0027s expectation if they\u0027re preserved on the share model.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57caf7b48e216eb1d708f391997cc989409006bc","unresolved":true,"context_lines":[{"line_number":74,"context_line":"(When a user \"fires and forgets\" a creation request with hints where not"},{"line_number":75,"context_line":"all conditions are met)."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternative to changing DB Share model can be to store the scheduler_hints"},{"line_number":78,"context_line":"in the share metadata. The drawback is that user might accidentially overwrite"},{"line_number":79,"context_line":"the respective metadata, so this metadata key/value would require some"},{"line_number":80,"context_line":"protection mechanism."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f0403019_660ee2dc","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":21},"in_reply_to":"24a8b3b0_23ef1fe9","updated":"2021-07-14 06:22:06.000000000","message":"Yes, I did catch that discussion, and thanks for mentioning this in the spec; but i didn\u0027t see answers for the problems presented:\n\n- Will the feature involve deletion of hints as shares referenced get deleted?\n- The migration impact isn\u0027t called out in this specification; I\u0027d like to understand that a bit more; \n  When migrating a share that has hints, we\u0027d need to qualify/disqualify a host chosen by the\n  administrator based on the hints provided by the user; doing this would be great and expected - however, would it be possible to ignore these hints and force a migration?","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"72daf05619ec0b85e14463ab7d5dc6e35b8d3acb","unresolved":true,"context_lines":[{"line_number":74,"context_line":"(When a user \"fires and forgets\" a creation request with hints where not"},{"line_number":75,"context_line":"all conditions are met)."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternative to changing DB Share model can be to store the scheduler_hints"},{"line_number":78,"context_line":"in the share metadata. The drawback is that user might accidentially overwrite"},{"line_number":79,"context_line":"the respective metadata, so this metadata key/value would require some"},{"line_number":80,"context_line":"protection mechanism."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7f8968ca_2186b4bc","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":21},"in_reply_to":"730cf209_61928a6c","updated":"2021-07-15 00:22:02.000000000","message":"Yeah, my problem with (1) is that the \"scheduler_hints\" field isn\u0027t exactly a key value pair that we can feed into a decent index, so yes - it could be an expensive database operation to gather all the shares that hint towards a share being deleted. Rather than doing that, we could possibly store this as share metadata where:\n\n1) you have the advantage of a more structured storage, providing faster lookups\n2) we can disallow deletion of these metadata items via RBAC policy and default the policy to project administrators\n3) no change is necessary in the JSON response schema for the share APIs\n4) no change is necessary in the share migration API - administrators can delete any offending scheduler hint metadata and perform the migration\n\nWe have discussed [*] the possibility of introducing three kinds of metadata:\n\n1) Service related metadata - like manila tagging an export location as preferred, or admin_only\n2) Admin controlled metadata - For stuff like we\u0027re talking about above - where regular users shouldn\u0027t be able to manipulate some reserved metadata keys (we\u0027d enforce this via RBAC policies)\n3) User metadata - regular metadata\n\nWe\u0027re actively working on getting the metadata work [*] completed in the Xena cycle - however, we can cut out the portion to enable policy controlled metadata and get that completed as a shared priority for both specs if you wish.\n\n[*] https://specs.openstack.org/openstack/manila-specs/specs/wallaby/metadata-for-share-resources.html","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"016a20668b74ea2836312d4c745951ac157157bc","unresolved":true,"context_lines":[{"line_number":74,"context_line":"(When a user \"fires and forgets\" a creation request with hints where not"},{"line_number":75,"context_line":"all conditions are met)."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternative to changing DB Share model can be to store the scheduler_hints"},{"line_number":78,"context_line":"in the share metadata. The drawback is that user might accidentially overwrite"},{"line_number":79,"context_line":"the respective metadata, so this metadata key/value would require some"},{"line_number":80,"context_line":"protection mechanism."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"730cf209_61928a6c","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":21},"in_reply_to":"f0403019_660ee2dc","updated":"2021-07-14 18:25:02.000000000","message":"1. As for deletion of hints when a share is deleted -\u003e I\u0027m not sure to be honest. This has to scale for potentially very large hints table. Yet, share deletion operation is async, so maybe not a big deal?\n2. Added a paragraph about migration.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"23aadb9bc2493e870f95495226804bbf7ee09d88","unresolved":true,"context_lines":[{"line_number":74,"context_line":"(When a user \"fires and forgets\" a creation request with hints where not"},{"line_number":75,"context_line":"all conditions are met)."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternative to changing DB Share model can be to store the scheduler_hints"},{"line_number":78,"context_line":"in the share metadata. The drawback is that user might accidentially overwrite"},{"line_number":79,"context_line":"the respective metadata, so this metadata key/value would require some"},{"line_number":80,"context_line":"protection mechanism."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"24a8b3b0_23ef1fe9","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":21},"in_reply_to":"f62ba317_7e14618f","updated":"2021-07-13 08:45:34.000000000","message":"1) Yes, agree. Yet I don\u0027t think we can simply discard this information after scheduling because it makes hard for user/admin to find where the shares are actually located. See previous conversation with Tom about it.\n2) Exactly, we wanted to keep them to be able to respect the \u0027scheduler_hints\u0027 when a share is migrated between the hosts.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"63ed4e81a480d4b783d79bfedf42da181b27621c","unresolved":true,"context_lines":[{"line_number":93,"context_line":"  `{"},{"line_number":94,"context_line":"      \"share\": {"},{"line_number":95,"context_line":"          \"scheduler_hints\": {"},{"line_number":96,"context_line":"              \"anti_affinity_filter\": ["},{"line_number":97,"context_line":"                  \"share_uuid_1\","},{"line_number":98,"context_line":"                  \"share_uuid_2\""},{"line_number":99,"context_line":"              ],"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dc27e9ea_8b6d118b","line":96,"range":{"start_line":96,"start_character":15,"end_line":96,"end_character":35},"updated":"2021-07-13 02:53:55.000000000","message":"curious why the names \"filter\" were used here; cinder and nova have \"same_host\" and \"different_host\"; I have no personal preference, but did you consider these option names?\n\nhttps://docs.openstack.org/api-ref/block-storage/v3/?expanded\u003dcreate-a-volume-detail#create-a-volume\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003dcreate-server-detail#create-server","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a402ea409bd0abc7264282adb247c8670bf3977c","unresolved":true,"context_lines":[{"line_number":93,"context_line":"  `{"},{"line_number":94,"context_line":"      \"share\": {"},{"line_number":95,"context_line":"          \"scheduler_hints\": {"},{"line_number":96,"context_line":"              \"anti_affinity_filter\": ["},{"line_number":97,"context_line":"                  \"share_uuid_1\","},{"line_number":98,"context_line":"                  \"share_uuid_2\""},{"line_number":99,"context_line":"              ],"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fcbc753c_62fa63aa","line":96,"range":{"start_line":96,"start_character":15,"end_line":96,"end_character":35},"in_reply_to":"db3ad096_d42741f4","updated":"2021-07-13 11:33:25.000000000","message":"+1","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"23aadb9bc2493e870f95495226804bbf7ee09d88","unresolved":true,"context_lines":[{"line_number":93,"context_line":"  `{"},{"line_number":94,"context_line":"      \"share\": {"},{"line_number":95,"context_line":"          \"scheduler_hints\": {"},{"line_number":96,"context_line":"              \"anti_affinity_filter\": ["},{"line_number":97,"context_line":"                  \"share_uuid_1\","},{"line_number":98,"context_line":"                  \"share_uuid_2\""},{"line_number":99,"context_line":"              ],"}],"source_content_type":"text/x-rst","patch_set":7,"id":"db3ad096_d42741f4","line":96,"range":{"start_line":96,"start_character":15,"end_line":96,"end_character":35},"in_reply_to":"dc27e9ea_8b6d118b","updated":"2021-07-13 08:45:34.000000000","message":"Hmm, good question :)\nI\u0027d say we should change it to \u0027same_host\u0027 and \u0027different_host\u0027 too since both Cinder and Nova have it this way.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"47c70b523bddbf7352d43fb96b92ac906f3cd3c9","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  `{"},{"line_number":94,"context_line":"      \"share\": {"},{"line_number":95,"context_line":"          \"scheduler_hints\": {"},{"line_number":96,"context_line":"              \"anti_affinity_filter\": ["},{"line_number":97,"context_line":"                  \"share_uuid_1\","},{"line_number":98,"context_line":"                  \"share_uuid_2\""},{"line_number":99,"context_line":"              ],"}],"source_content_type":"text/x-rst","patch_set":7,"id":"03bbd918_1a69ef56","line":96,"range":{"start_line":96,"start_character":15,"end_line":96,"end_character":35},"in_reply_to":"fcbc753c_62fa63aa","updated":"2021-07-13 12:29:16.000000000","message":"Done","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"63ed4e81a480d4b783d79bfedf42da181b27621c","unresolved":true,"context_lines":[{"line_number":161,"context_line":"-----------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Primary assignee:"},{"line_number":164,"context_line":"  Chuan Miao (chuan137 on IRC)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Work Items"},{"line_number":167,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"199a74b3_1dd098a4","line":164,"range":{"start_line":164,"start_character":14,"end_line":164,"end_character":28},"updated":"2021-07-13 02:53:55.000000000","message":"Please provide the gerrit username as well, if different","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"23aadb9bc2493e870f95495226804bbf7ee09d88","unresolved":true,"context_lines":[{"line_number":161,"context_line":"-----------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Primary assignee:"},{"line_number":164,"context_line":"  Chuan Miao (chuan137 on IRC)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Work Items"},{"line_number":167,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"2a836f5e_7c353e98","line":164,"range":{"start_line":164,"start_character":14,"end_line":164,"end_character":28},"in_reply_to":"199a74b3_1dd098a4","updated":"2021-07-13 08:45:34.000000000","message":"Since Chuan is away, I\u0027ll put my name here for now.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"63ed4e81a480d4b783d79bfedf42da181b27621c","unresolved":true,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Primary assignee:"},{"line_number":164,"context_line":"  Chuan Miao (chuan137 on IRC)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Work Items"},{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"594cc24a_5eada44f","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":0},"updated":"2021-07-13 02:53:55.000000000","message":"Dmitri, could you add yourself here?","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"23aadb9bc2493e870f95495226804bbf7ee09d88","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Primary assignee:"},{"line_number":164,"context_line":"  Chuan Miao (chuan137 on IRC)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Work Items"},{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"c2b00434_5b737564","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":0},"in_reply_to":"594cc24a_5eada44f","updated":"2021-07-13 08:45:34.000000000","message":"Done","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"63ed4e81a480d4b783d79bfedf42da181b27621c","unresolved":true,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"1. Filter implementation"},{"line_number":170,"context_line":"2. Add scheduler hints parameter"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Dependencies"},{"line_number":174,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4e326e64_afd25a6a","line":171,"range":{"start_line":171,"start_character":0,"end_line":171,"end_character":0},"updated":"2021-07-13 02:53:55.000000000","message":"Do you plan on implementing the client-side changes in python-manilaclient and manila-ui?","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"23aadb9bc2493e870f95495226804bbf7ee09d88","unresolved":true,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"1. Filter implementation"},{"line_number":170,"context_line":"2. Add scheduler hints parameter"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Dependencies"},{"line_number":174,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0e323ee1_1b88c2af","line":171,"range":{"start_line":171,"start_character":0,"end_line":171,"end_character":0},"in_reply_to":"4e326e64_afd25a6a","updated":"2021-07-13 08:45:34.000000000","message":"python-manilaclient -\u003e absolutely.\nAs for Horizon I\u0027m not sure, would be great if somebody could take that part.","commit_id":"e4bc679f93e395612e868197d5cb892b90da8dc3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57caf7b48e216eb1d708f391997cc989409006bc","unresolved":true,"context_lines":[{"line_number":181,"context_line":"1. Filter implementation"},{"line_number":182,"context_line":"2. Add scheduler hints parameter"},{"line_number":183,"context_line":"3. Add hints argument for python-manilaclient"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Dependencies"},{"line_number":186,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff2da5cf_9a9f0eda","line":184,"range":{"start_line":184,"start_character":0,"end_line":184,"end_character":0},"updated":"2021-07-14 06:22:06.000000000","message":"I\u0027d add the work item here for manila-ui as well, and state that we need help to implement it; we\u0027re lagging behind in our manila-ui coverage of API features, and we have a small team of developers that are working on catching up there, if this is straight-forward, this may be done by that team eventually.","commit_id":"c2a4a4c49c782094d1300d45c450a4e63b2a9999"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"016a20668b74ea2836312d4c745951ac157157bc","unresolved":false,"context_lines":[{"line_number":181,"context_line":"1. Filter implementation"},{"line_number":182,"context_line":"2. Add scheduler hints parameter"},{"line_number":183,"context_line":"3. Add hints argument for python-manilaclient"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Dependencies"},{"line_number":186,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"23b06bd8_7d07020b","line":184,"range":{"start_line":184,"start_character":0,"end_line":184,"end_character":0},"in_reply_to":"ff2da5cf_9a9f0eda","updated":"2021-07-14 18:25:02.000000000","message":"Done","commit_id":"c2a4a4c49c782094d1300d45c450a4e63b2a9999"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"c472550ed69da1a81a2a54b7175f124ed91171ba","unresolved":true,"context_lines":[{"line_number":131,"context_line":"\u0027different_host\u0027 hint for a new, third share - creation will fail."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"The scheduler hints should also be respected if a share is migrated"},{"line_number":134,"context_line":"between hosts, however there should be an option to override the hints"},{"line_number":135,"context_line":"manually and force migration even if affinity/anti-affinity conditions"},{"line_number":136,"context_line":"won\u0027t be met after the migration."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"df74f5c0_90bb5307","line":134,"range":{"start_line":134,"start_character":39,"end_line":134,"end_character":48},"updated":"2021-07-23 03:14:47.000000000","message":"I think it\u0027s best to add a request parameter called force to the migrated API, default is false, means scheduler hints should be respected, if set true means will ignore scheduler hints.This provides more flexibility than setting up a global configuration item","commit_id":"ad6eddb3a1e4efde45b7536e3b9484dfd6860734"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"ebf480f27b56ff7d95f6048ab78ae385da40ef3c","unresolved":false,"context_lines":[{"line_number":131,"context_line":"\u0027different_host\u0027 hint for a new, third share - creation will fail."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"The scheduler hints should also be respected if a share is migrated"},{"line_number":134,"context_line":"between hosts, however there should be an option to override the hints"},{"line_number":135,"context_line":"manually and force migration even if affinity/anti-affinity conditions"},{"line_number":136,"context_line":"won\u0027t be met after the migration."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"26585cc4_b7d10855","line":134,"range":{"start_line":134,"start_character":39,"end_line":134,"end_character":48},"in_reply_to":"df74f5c0_90bb5307","updated":"2021-07-27 13:04:14.000000000","message":"Yes, that was the idea more or less.","commit_id":"ad6eddb3a1e4efde45b7536e3b9484dfd6860734"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"65587c231b512a166b2ad984fac495deecd8f035","unresolved":true,"context_lines":[{"line_number":148,"context_line":"only two hosts and each has a share with a uuid that was given in the"},{"line_number":149,"context_line":"\u0027different_host\u0027 hint for a new, third share - creation will fail."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The scheduler hints should also be respected if a share is migrated"},{"line_number":152,"context_line":"between hosts, however there should be an option to override the hints"},{"line_number":153,"context_line":"manually and force migration even if affinity/anti-affinity conditions"},{"line_number":154,"context_line":"won\u0027t be met after the migration (e.g add \u0027force: true\u0027 option)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3f031ed9_37292763","line":151,"updated":"2021-07-28 21:50:27.000000000","message":"I would avoid any \u0027force\u0027 option which ends up breaking the rules proposed in the spec. This means that the info in the metadata is not reliable? I think that is better to make admin fix conditions prior migration.","commit_id":"816a17b924bbcacd3bb052f42c80bbfb22ca9a2f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e072c4e106138100e3f46f53b7521ba6ff89afbb","unresolved":true,"context_lines":[{"line_number":148,"context_line":"only two hosts and each has a share with a uuid that was given in the"},{"line_number":149,"context_line":"\u0027different_host\u0027 hint for a new, third share - creation will fail."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The scheduler hints should also be respected if a share is migrated"},{"line_number":152,"context_line":"between hosts, however there should be an option to override the hints"},{"line_number":153,"context_line":"manually and force migration even if affinity/anti-affinity conditions"},{"line_number":154,"context_line":"won\u0027t be met after the migration (e.g add \u0027force: true\u0027 option)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"cddb7707_3447a411","line":151,"in_reply_to":"3f031ed9_37292763","updated":"2021-07-28 23:36:40.000000000","message":"+1 We can take this to implementation and come back here; i agree adding a new parameter to the migration api seems wasteful when there\u0027s a way admins can pop off the offending metadata","commit_id":"816a17b924bbcacd3bb052f42c80bbfb22ca9a2f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ccc109724903f948a924732740ec5863d80820f","unresolved":true,"context_lines":[{"line_number":148,"context_line":"only two hosts and each has a share with a uuid that was given in the"},{"line_number":149,"context_line":"\u0027different_host\u0027 hint for a new, third share - creation will fail."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The scheduler hints should also be respected if a share is migrated"},{"line_number":152,"context_line":"between hosts, however there should be an option to override the hints"},{"line_number":153,"context_line":"manually and force migration even if affinity/anti-affinity conditions"},{"line_number":154,"context_line":"won\u0027t be met after the migration (e.g add \u0027force: true\u0027 option)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"c84e6d65_73adcee8","line":151,"in_reply_to":"66649eb5_d632bde9","updated":"2021-07-30 18:31:50.000000000","message":"Good stuff - lets drive this via code reviews on the implementation; you can always propose modifications to this specification after it has merged","commit_id":"816a17b924bbcacd3bb052f42c80bbfb22ca9a2f"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"48c9b04856b8de36c7aa696aa3d619eecbf3513a","unresolved":true,"context_lines":[{"line_number":148,"context_line":"only two hosts and each has a share with a uuid that was given in the"},{"line_number":149,"context_line":"\u0027different_host\u0027 hint for a new, third share - creation will fail."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The scheduler hints should also be respected if a share is migrated"},{"line_number":152,"context_line":"between hosts, however there should be an option to override the hints"},{"line_number":153,"context_line":"manually and force migration even if affinity/anti-affinity conditions"},{"line_number":154,"context_line":"won\u0027t be met after the migration (e.g add \u0027force: true\u0027 option)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"66649eb5_d632bde9","line":151,"in_reply_to":"cddb7707_3447a411","updated":"2021-07-29 21:38:08.000000000","message":"Ok, agree! Should I change that part or just make notes for myself? :)","commit_id":"816a17b924bbcacd3bb052f42c80bbfb22ca9a2f"}]}
