)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-04-23 09:13:59 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Expose auto converge and post copy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I08ab3fb105fd83a0b3095ea30a0f0518cfaa24ea"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ffb9cba7_7ae05a97","line":8,"updated":"2019-04-26 02:29:54.000000000","message":"nit: add\n\nSpec for blueprint expose-auto-converge-post-copy\n\nif you respin","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-04-23 09:13:59 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Expose auto converge and post copy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I08ab3fb105fd83a0b3095ea30a0f0518cfaa24ea"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ffb9cba7_c5288235","line":8,"in_reply_to":"ffb9cba7_7ae05a97","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"}],"specs/train/approved/expose-auto-converge-post-copy.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"25b65cda5756ee474d0611fd58128c924a4eee0d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  user call the force complete API, libvirt will not use post copy because"},{"line_number":79,"context_line":"  it\u0027s disabled by flavor extra flags and image metadata."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"},{"line_number":83,"context_line":"------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fce034c_1ea9607a","line":81,"updated":"2019-04-12 02:00:50.000000000","message":"What happens if the image or flavor specifies auto-converge or post-copy and the compute host can\u0027t provide that functionality? Should server create fail since it could mean we aren\u0027t honoring the user request (like SLAs)? Beyond server create you could have the same issue if you, for example, create a server with these specs on a host and then cold-migrated it to another server which doesn\u0027t provide those features - would the migration fail? Would we have to copy the same checks all over the move operations (cold/live migrate, evacuate and unshelve?). This is where it gets tricky if it\u0027s something we don\u0027t validate within scheduler filters. We could potentially solve this with traits though if we exposed a capability of the virt driver and then translated the traits from the image/flavor, like this:\n\nhttps://review.openstack.org/#/c/645316/\n\nOr the TPM spec:\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/train/approved/add-emulated-virtual-tpm.html","commit_id":"07540e3e4089c44c21e6a0ac331a6507604e071f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":26,"context_line":"* Some hosts in the cluster have auto converge or post copy enabled, the other"},{"line_number":27,"context_line":"  are not turned on. End user want to be consistent during live migration,"},{"line_number":28,"context_line":"  that is, the application can guarantee to use/not use auto converge or post"},{"line_number":29,"context_line":"  copy."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, end user want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_9350a90c","line":29,"updated":"2019-04-16 09:26:51.000000000","message":"This can be easily solved without adding new traits... but there are some operational points :\n- live-migration needs to call the scheduler filters\n- all hosts supporting the autoconverge need to be in the same aggregate\n- flavor needs to have a specific extra spec\n\nGiven the above, I\u0027m okay with rather using traits because the three points aren\u0027t needed.","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Support for auto converge and post copy requires qemu 2.5 at minimum, The flags"},{"line_number":41,"context_line":"in virDomainMigrateFlags like this [1]_::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_b36365dc","line":40,"range":{"start_line":40,"start_character":49,"end_line":40,"end_character":68},"updated":"2019-04-16 09:26:51.000000000","message":"FWIW, the QEMU minimum version for Stein is already 2.8 [1] so you don\u0027t need to say the above \n\n[1] https://github.com/openstack/nova/blob/stable/stein/nova/virt/libvirt/driver.py#L224","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"4ee4cffa15b810cdf837256d7d6215eb5c870161","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Support for auto converge and post copy requires qemu 2.5 at minimum, The flags"},{"line_number":41,"context_line":"in virDomainMigrateFlags like this [1]_::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_a3ca094b","line":40,"range":{"start_line":40,"start_character":49,"end_line":40,"end_character":68},"in_reply_to":"3fce034c_b36365dc","updated":"2019-04-18 03:27:27.000000000","message":"Done","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":49,"context_line":"``live_migration_permit_post_copy`` is deprecated and will not be used. The"},{"line_number":50,"context_line":"reason for deprecating is: It can only affect the hypervisor by modifying the"},{"line_number":51,"context_line":"configuration, but traits can affect a single instance."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_d3b3914c","line":49,"range":{"start_line":49,"start_character":35,"end_line":49,"end_character":70},"updated":"2019-04-16 09:26:51.000000000","message":"Uh, please don\u0027t.\nI think at least some operators would like to still use the config options, just because this spec wouldn\u0027t accept a live-migration if the target wouldn\u0027t support the trait. Operators would rather prefer to have different performant migrations between hosts, but still have all of the hosts as targets.","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"4ee4cffa15b810cdf837256d7d6215eb5c870161","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":49,"context_line":"``live_migration_permit_post_copy`` is deprecated and will not be used. The"},{"line_number":50,"context_line":"reason for deprecating is: It can only affect the hypervisor by modifying the"},{"line_number":51,"context_line":"configuration, but traits can affect a single instance."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_f981bc4b","line":49,"range":{"start_line":49,"start_character":35,"end_line":49,"end_character":70},"in_reply_to":"3fce034c_d3b3914c","updated":"2019-04-18 03:27:27.000000000","message":"IMO, these traits are not recommend to set if operators want to migrate instance between all hosts.\nBut operators can config these configurations if operator want *all instances* using auto-converge/postcopy.","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":48,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":49,"context_line":"``live_migration_permit_post_copy`` is deprecated and will not be used. The"},{"line_number":50,"context_line":"reason for deprecating is: It can only affect the hypervisor by modifying the"},{"line_number":51,"context_line":"configuration, but traits can affect a single instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":54,"context_line":"the feature) we propose to define two new traits:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_b391259c","line":51,"range":{"start_line":51,"start_character":15,"end_line":51,"end_character":55},"updated":"2019-04-16 09:26:51.000000000","message":"yeah, so what if operators want *all instances* using autoconverge ?","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":61,"context_line":"instance to the node which can use auto converge during live migration."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"When both `COMPUTE_MIGRATE_AUTO_CONVERGE` and `COMPUTE_MIGRATE_POSTCOPY` are"},{"line_number":64,"context_line":"required, `COMPUTE_MIGRATE_AUTO_CONVERGE` will be ignored and only enable"},{"line_number":65,"context_line":"`COMPUTE_MIGRATE_POSTCOPY` [2]_. When using `autoconverge` during live"},{"line_number":66,"context_line":"migration, if end user call force complete API, libvirt will not be converted"},{"line_number":67,"context_line":"to use `postcopy` because it\u0027s not required in flavor extra-specs or image"},{"line_number":68,"context_line":"properties."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_53f6c1fb","line":65,"range":{"start_line":64,"start_character":9,"end_line":65,"end_character":27},"updated":"2019-04-16 09:26:51.000000000","message":"Uh, I think it could be a Placement API issue.\nIf you ask for two traits, you get ResourceProviders having *both* of them. AFAIK, Placement doesn\u0027t support (yet) to say \"I want this and that, but if this, I don\u0027t care about that\".\n\nFWIW, I think what you need is to only have two traits for a RP:\n- a trait AUTO_CONVERGE_ONLY\n- a trait AUTO_CONVERGE_AND_POST_COPY\n\nOperators wanting post-copy would use the other trait (implicitely asking for autoconverge), while operators caring about autoconverge would use the first one.","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"4ee4cffa15b810cdf837256d7d6215eb5c870161","unresolved":false,"context_lines":[{"line_number":61,"context_line":"instance to the node which can use auto converge during live migration."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"When both `COMPUTE_MIGRATE_AUTO_CONVERGE` and `COMPUTE_MIGRATE_POSTCOPY` are"},{"line_number":64,"context_line":"required, `COMPUTE_MIGRATE_AUTO_CONVERGE` will be ignored and only enable"},{"line_number":65,"context_line":"`COMPUTE_MIGRATE_POSTCOPY` [2]_. When using `autoconverge` during live"},{"line_number":66,"context_line":"migration, if end user call force complete API, libvirt will not be converted"},{"line_number":67,"context_line":"to use `postcopy` because it\u0027s not required in flavor extra-specs or image"},{"line_number":68,"context_line":"properties."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_5e0316b9","line":65,"range":{"start_line":64,"start_character":9,"end_line":65,"end_character":27},"in_reply_to":"3fce034c_53f6c1fb","updated":"2019-04-18 03:27:27.000000000","message":"Uh, my fault, the description not clearly.\nI mean libvirt will ignore `auto-converge` and only use `postcopy`.\n\nreference:\nhttps://docs.openstack.org/nova/latest/configuration/config.html#libvirt.live_migration_permit_post_copy","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":64,"context_line":"required, `COMPUTE_MIGRATE_AUTO_CONVERGE` will be ignored and only enable"},{"line_number":65,"context_line":"`COMPUTE_MIGRATE_POSTCOPY` [2]_. When using `autoconverge` during live"},{"line_number":66,"context_line":"migration, if end user call force complete API, libvirt will not be converted"},{"line_number":67,"context_line":"to use `postcopy` because it\u0027s not required in flavor extra-specs or image"},{"line_number":68,"context_line":"properties."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"In some cases, it may happen that the instance live migrated from a host that"},{"line_number":71,"context_line":"does not support `autoconverge`/`postcopy` and the instance required these"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_933ae995","line":68,"range":{"start_line":67,"start_character":44,"end_line":68,"end_character":11},"updated":"2019-04-16 09:26:51.000000000","message":"I guess you forgot to change it from PS1","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"4ee4cffa15b810cdf837256d7d6215eb5c870161","unresolved":false,"context_lines":[{"line_number":64,"context_line":"required, `COMPUTE_MIGRATE_AUTO_CONVERGE` will be ignored and only enable"},{"line_number":65,"context_line":"`COMPUTE_MIGRATE_POSTCOPY` [2]_. When using `autoconverge` during live"},{"line_number":66,"context_line":"migration, if end user call force complete API, libvirt will not be converted"},{"line_number":67,"context_line":"to use `postcopy` because it\u0027s not required in flavor extra-specs or image"},{"line_number":68,"context_line":"properties."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"In some cases, it may happen that the instance live migrated from a host that"},{"line_number":71,"context_line":"does not support `autoconverge`/`postcopy` and the instance required these"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_e337b14c","line":68,"range":{"start_line":67,"start_character":44,"end_line":68,"end_character":11},"in_reply_to":"3fce034c_933ae995","updated":"2019-04-18 03:27:27.000000000","message":"Done","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"437582e8ffbae7cd792dab1a8c4aa38595fb4987","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"In some cases, it may happen that the instance live migrated from a host that"},{"line_number":71,"context_line":"does not support `autoconverge`/`postcopy` and the instance required these"},{"line_number":72,"context_line":"features, then an exception will be raised."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* An instance that does not request related traits was scheduled to a host that"},{"line_number":75,"context_line":"  does not support `autoconverge`/`postcopy`. Then end user updates"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_d3eb91d9","line":72,"updated":"2019-04-16 09:26:51.000000000","message":"It\u0027s more than than.\nIf you set a trait on a host, and you require a trait to Placement (using the \"required\" keyword in a flavor extraspec [1]) then all scheduling operations to placement *including boot* would check whether it can find resource providers having this trait, and if none, just raise a NoValidHost\n\n\nAre you ready to accept this feature explicitly not supporting live migrations if there are no available targets supporting either autoconverge or postcopy ? This is a big big changer.\n\n[1] https://developer.openstack.org/api-ref/placement/?expanded\u003dlist-allocation-candidates-detail#list-allocation-candidates","commit_id":"631b54d6d3bc8479eb603d07bdc55b062531fc92"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d9c83440770a581f24642dd6ed50376ecea11f0c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":49,"context_line":"``live_migration_permit_post_copy`` is not recommended to used. The reason is:"},{"line_number":50,"context_line":"It can only affect the hypervisor by modifying the configuration, but traits"},{"line_number":51,"context_line":"can affect a single instance."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_86611b08","line":49,"range":{"start_line":49,"start_character":36,"end_line":49,"end_character":62},"updated":"2019-04-18 05:53:09.000000000","message":"we needn\u0027t mention that is \u0027not recommended\u0027","commit_id":"d3f460eb9c2a6c5928cc79ea87edf9222979ee92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"63c3ab896bdc3a17fa0ff5ec389e101087f59fd7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":49,"context_line":"``live_migration_permit_post_copy`` is not recommended to used. The reason is:"},{"line_number":50,"context_line":"It can only affect the hypervisor by modifying the configuration, but traits"},{"line_number":51,"context_line":"can affect a single instance."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_79b37099","line":49,"range":{"start_line":49,"start_character":36,"end_line":49,"end_character":62},"in_reply_to":"3fce034c_86611b08","updated":"2019-04-18 14:45:05.000000000","message":"Done","commit_id":"d3f460eb9c2a6c5928cc79ea87edf9222979ee92"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d9c83440770a581f24642dd6ed50376ecea11f0c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"`trait:COMPUTE_MIGRATE_AUTO_CONVERGE\u003drequired` to indicate that schedule the"},{"line_number":61,"context_line":"instance to the node which can use auto converge during live migration."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"When both `COMPUTE_MIGRATE_AUTO_CONVERGE` and `COMPUTE_MIGRATE_POSTCOPY` are"},{"line_number":64,"context_line":"requested, the libvirt driver will only enable `postcopy` during live"},{"line_number":65,"context_line":"migration [2]_. When using`autoconverge` during live migration, if end user"},{"line_number":66,"context_line":"call force complete API, libvirt will not be converted to use `postcopy`"},{"line_number":67,"context_line":"because it\u0027s not required in flavor/images traits."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_06a3ebb3","line":65,"range":{"start_line":63,"start_character":0,"end_line":65,"end_character":10},"updated":"2019-04-18 05:53:09.000000000","message":"we can stop that in the API layer.","commit_id":"d3f460eb9c2a6c5928cc79ea87edf9222979ee92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"63c3ab896bdc3a17fa0ff5ec389e101087f59fd7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"`trait:COMPUTE_MIGRATE_AUTO_CONVERGE\u003drequired` to indicate that schedule the"},{"line_number":61,"context_line":"instance to the node which can use auto converge during live migration."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"When both `COMPUTE_MIGRATE_AUTO_CONVERGE` and `COMPUTE_MIGRATE_POSTCOPY` are"},{"line_number":64,"context_line":"requested, the libvirt driver will only enable `postcopy` during live"},{"line_number":65,"context_line":"migration [2]_. When using`autoconverge` during live migration, if end user"},{"line_number":66,"context_line":"call force complete API, libvirt will not be converted to use `postcopy`"},{"line_number":67,"context_line":"because it\u0027s not required in flavor/images traits."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_94a7faa7","line":65,"range":{"start_line":63,"start_character":0,"end_line":65,"end_character":10},"in_reply_to":"3fce034c_06a3ebb3","updated":"2019-04-18 14:45:05.000000000","message":"According to the current update, the end user can set both properties to false at the same time, so the end user will be confused as to why it can not be true at the same time. Therefore, we\u0027d better do this internally.","commit_id":"d3f460eb9c2a6c5928cc79ea87edf9222979ee92"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d9c83440770a581f24642dd6ed50376ecea11f0c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"features, then an exception will be raised. For example:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* An instance that does not request related traits was scheduled to a host that"},{"line_number":74,"context_line":"  does not support `autoconverge`/`postcopy`. Then end user updates"},{"line_number":75,"context_line":"  `COMPUTE_MIGRATE_AUTO_CONVERGE`/`COMPUTE_MIGRATE_POSTCOPY` properties into"},{"line_number":76,"context_line":"  flavor. At this point, request live migration will get an exception because"},{"line_number":77,"context_line":"  the host doesn\u0027t support these features."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"By default, when end user create instance without any related traits, the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_06ba0bc0","line":76,"range":{"start_line":74,"start_character":46,"end_line":76,"end_character":9},"updated":"2019-04-18 05:53:09.000000000","message":"we don\u0027t support to update existed instance\u0027s flavor in nova.\n\nBut we may have problem with resize and rebuild. For the resize, it shouldn\u0027t be a problem, nova will recreate a vm on the new host.\n\nFor the rebuild, the new image may have new traits, we need to check with scheduler. But this is already done by the current nova, so nothing worry about also.\n\nBut we need to recheck the trait combination from flavor and image, if we want to stop that kind of request early.","commit_id":"d3f460eb9c2a6c5928cc79ea87edf9222979ee92"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"63c3ab896bdc3a17fa0ff5ec389e101087f59fd7","unresolved":false,"context_lines":[{"line_number":71,"context_line":"features, then an exception will be raised. For example:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* An instance that does not request related traits was scheduled to a host that"},{"line_number":74,"context_line":"  does not support `autoconverge`/`postcopy`. Then end user updates"},{"line_number":75,"context_line":"  `COMPUTE_MIGRATE_AUTO_CONVERGE`/`COMPUTE_MIGRATE_POSTCOPY` properties into"},{"line_number":76,"context_line":"  flavor. At this point, request live migration will get an exception because"},{"line_number":77,"context_line":"  the host doesn\u0027t support these features."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"By default, when end user create instance without any related traits, the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_149c6a5b","line":76,"range":{"start_line":74,"start_character":46,"end_line":76,"end_character":9},"in_reply_to":"3fce034c_06ba0bc0","updated":"2019-04-18 14:45:05.000000000","message":"Correct, this description has been removed.","commit_id":"d3f460eb9c2a6c5928cc79ea87edf9222979ee92"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If a application sensitive to performance reduced"},{"line_number":18,"context_line":"and it is on a host with these options enabled, then live migration may cause"},{"line_number":19,"context_line":"the application raise error. Therefore, the end user needs to choose whether"},{"line_number":20,"context_line":"to enable/disable `autoconverge` or `postcopy` when live migrating the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_29202148","line":17,"range":{"start_line":17,"start_character":33,"end_line":17,"end_character":34},"updated":"2019-04-19 06:01:24.000000000","message":"s/a/an","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If a application sensitive to performance reduced"},{"line_number":18,"context_line":"and it is on a host with these options enabled, then live migration may cause"},{"line_number":19,"context_line":"the application raise error. Therefore, the end user needs to choose whether"},{"line_number":20,"context_line":"to enable/disable `autoconverge` or `postcopy` when live migrating the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_499c8d0d","line":17,"range":{"start_line":17,"start_character":33,"end_line":17,"end_character":34},"in_reply_to":"3fce034c_29202148","updated":"2019-04-19 07:02:17.000000000","message":"Done","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If a application sensitive to performance reduced"},{"line_number":18,"context_line":"and it is on a host with these options enabled, then live migration may cause"},{"line_number":19,"context_line":"the application raise error. Therefore, the end user needs to choose whether"},{"line_number":20,"context_line":"to enable/disable `autoconverge` or `postcopy` when live migrating the"},{"line_number":21,"context_line":"instance."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_c9187d1f","line":19,"range":{"start_line":19,"start_character":40,"end_line":19,"end_character":52},"updated":"2019-04-19 06:01:24.000000000","message":"actually, it isn\u0027t the end user choice, since the flavor and image is prepared by the operator.","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If a application sensitive to performance reduced"},{"line_number":18,"context_line":"and it is on a host with these options enabled, then live migration may cause"},{"line_number":19,"context_line":"the application raise error. Therefore, the end user needs to choose whether"},{"line_number":20,"context_line":"to enable/disable `autoconverge` or `postcopy` when live migrating the"},{"line_number":21,"context_line":"instance."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_a99bb115","line":19,"range":{"start_line":19,"start_character":40,"end_line":19,"end_character":52},"in_reply_to":"3fce034c_c9187d1f","updated":"2019-04-19 07:02:17.000000000","message":"Done","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  that is, the application can guarantee to use/not use auto converge or post"},{"line_number":29,"context_line":"  copy."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, end user want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, end user wish to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_e91539e6","line":31,"range":{"start_line":31,"start_character":58,"end_line":31,"end_character":66},"updated":"2019-04-19 06:01:24.000000000","message":"the operator","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  that is, the application can guarantee to use/not use auto converge or post"},{"line_number":29,"context_line":"  copy."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, end user want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, end user wish to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_c9a87d21","line":31,"range":{"start_line":31,"start_character":58,"end_line":31,"end_character":66},"in_reply_to":"3fce034c_e91539e6","updated":"2019-04-19 07:02:17.000000000","message":"Done","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, end user want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, end user wish to"},{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_89d4b521","line":34,"range":{"start_line":34,"start_character":58,"end_line":34,"end_character":66},"updated":"2019-04-19 06:01:24.000000000","message":"the operator","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, end user want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, end user wish to"},{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_e9a53948","line":34,"range":{"start_line":34,"start_character":58,"end_line":34,"end_character":66},"in_reply_to":"3fce034c_89d4b521","updated":"2019-04-19 07:02:17.000000000","message":"Done","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE"},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_POSTCOPY"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"If only use traits, there will be a case: End user doesn\u0027t want to use"},{"line_number":59,"context_line":"`auto-converge` or `postcopy` during live migration, if end user doesn\u0027t"},{"line_number":60,"context_line":"request any related tratis, the instance may be scheduled to a host which has"},{"line_number":61,"context_line":"enabled ```live_migration_permit_auto_converge``` or"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_09e8c5df","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":41},"updated":"2019-04-19 06:01:24.000000000","message":"we can talk about why not use trait directly in the alternative section.","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":55,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE"},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_POSTCOPY"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"If only use traits, there will be a case: End user doesn\u0027t want to use"},{"line_number":59,"context_line":"`auto-converge` or `postcopy` during live migration, if end user doesn\u0027t"},{"line_number":60,"context_line":"request any related tratis, the instance may be scheduled to a host which has"},{"line_number":61,"context_line":"enabled ```live_migration_permit_auto_converge``` or"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_894d959b","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":41},"in_reply_to":"3fce034c_09e8c5df","updated":"2019-04-19 07:02:17.000000000","message":"Done","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"To solve above case, introduce two new flavor extra specs and image properties:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"*  auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"*  post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the end user write the"},{"line_number":75,"context_line":"required/forbidden trait directly. Before calling the placement, when the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_49afad7c","line":72,"range":{"start_line":71,"start_character":0,"end_line":72,"end_character":23},"updated":"2019-04-19 06:01:24.000000000","message":"most of our extra specs have prefix...but I\u0027m not sure which prefix is better...","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"c00c4247d8228aef9929d9a03f42046a453240b6","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"To solve above case, introduce two new flavor extra specs and image properties:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"*  auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"*  post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the end user write the"},{"line_number":75,"context_line":"required/forbidden trait directly. Before calling the placement, when the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_745efc76","line":72,"range":{"start_line":71,"start_character":0,"end_line":72,"end_character":23},"in_reply_to":"3fce034c_49afad7c","updated":"2019-04-19 08:10:27.000000000","message":"\u003e most of our extra specs have prefix...but I\u0027m not sure which prefix\n \u003e is better...\n\nHow about \u0027hw:\u0027? Or use \u0027libvirt:\u0027 to show it\u0027s libvirt\u0027s feature?","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"```live_migration_permit_auto_converge``` and"},{"line_number":97,"context_line":"```live_migration_permit_post_copy```. For example:"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"*  flavor\u0027s extra specs: `post_copy\u003dtrue`,"},{"line_number":100,"context_line":"   configuration: `live_migration_permit_post_copy\u003dfalse`, then libvirt"},{"line_number":101,"context_line":"   will use postcopy during live migration."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"*  flavor\u0027s extra specs: `post_copy\u003dfalse`, `auto_converge\u003dfalse`,"},{"line_number":104,"context_line":"   configurations: `live_migration_permit_auto_converge\u003dtrue`,"},{"line_number":105,"context_line":"   `live_migration_permit_post_copy\u003dtrue`, then libvirt will not use any"},{"line_number":106,"context_line":"   related features during live migration."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"When `auto_converge` and `post_copy` are both true, the create api will ignore"},{"line_number":109,"context_line":"`auto_converge` and only use `post_copy`. [2]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_29ca614d","line":106,"range":{"start_line":99,"start_character":0,"end_line":106,"end_character":42},"updated":"2019-04-19 06:01:24.000000000","message":"Maybe just a summary to say, the extra spec will override the config option","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":96,"context_line":"```live_migration_permit_auto_converge``` and"},{"line_number":97,"context_line":"```live_migration_permit_post_copy```. For example:"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"*  flavor\u0027s extra specs: `post_copy\u003dtrue`,"},{"line_number":100,"context_line":"   configuration: `live_migration_permit_post_copy\u003dfalse`, then libvirt"},{"line_number":101,"context_line":"   will use postcopy during live migration."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"*  flavor\u0027s extra specs: `post_copy\u003dfalse`, `auto_converge\u003dfalse`,"},{"line_number":104,"context_line":"   configurations: `live_migration_permit_auto_converge\u003dtrue`,"},{"line_number":105,"context_line":"   `live_migration_permit_post_copy\u003dtrue`, then libvirt will not use any"},{"line_number":106,"context_line":"   related features during live migration."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"When `auto_converge` and `post_copy` are both true, the create api will ignore"},{"line_number":109,"context_line":"`auto_converge` and only use `post_copy`. [2]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_a952d139","line":106,"range":{"start_line":99,"start_character":0,"end_line":106,"end_character":42},"in_reply_to":"3fce034c_29ca614d","updated":"2019-04-19 07:02:17.000000000","message":"Done","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"   `live_migration_permit_post_copy\u003dtrue`, then libvirt will not use any"},{"line_number":106,"context_line":"   related features during live migration."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"When `auto_converge` and `post_copy` are both true, the create api will ignore"},{"line_number":109,"context_line":"`auto_converge` and only use `post_copy`. [2]_"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"When using`auto-converge` during live migration, if end user call force"},{"line_number":112,"context_line":"complete API, libvirt will not be converted to use `postcopy` because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_e9bf79a7","line":109,"range":{"start_line":108,"start_character":0,"end_line":109,"end_character":46},"updated":"2019-04-19 06:01:24.000000000","message":"I do not prefer this. I prefer to stop the request explicitly.","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":105,"context_line":"   `live_migration_permit_post_copy\u003dtrue`, then libvirt will not use any"},{"line_number":106,"context_line":"   related features during live migration."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"When `auto_converge` and `post_copy` are both true, the create api will ignore"},{"line_number":109,"context_line":"`auto_converge` and only use `post_copy`. [2]_"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"When using`auto-converge` during live migration, if end user call force"},{"line_number":112,"context_line":"complete API, libvirt will not be converted to use `postcopy` because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_740b5c23","line":109,"range":{"start_line":108,"start_character":0,"end_line":109,"end_character":46},"in_reply_to":"3fce034c_e9bf79a7","updated":"2019-04-19 07:02:17.000000000","message":"\u003e I do not prefer this. I prefer to stop the request explicitly.\n\nYes, you are right. Base on this, we can also solve the conflict of flavor extra specs and image properties.","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cc430b39833fe4b12451dd6f615d072c4cd590f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"When `auto_converge` and `post_copy` are both true, the create api will ignore"},{"line_number":109,"context_line":"`auto_converge` and only use `post_copy`. [2]_"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"When using`auto-converge` during live migration, if end user call force"},{"line_number":112,"context_line":"complete API, libvirt will not be converted to use `postcopy` because it\u0027s not"},{"line_number":113,"context_line":"required in flavor extra specs or image properties."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_8915959e","line":113,"range":{"start_line":111,"start_character":0,"end_line":113,"end_character":51},"updated":"2019-04-19 06:01:24.000000000","message":"This is existed logic in the code, right?\n\nand also when the instance already in postcopy mode, we should return 400 early in the API, right?","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"cf5b8fcb23ff2335edca64300b68ac289f923845","unresolved":false,"context_lines":[{"line_number":108,"context_line":"When `auto_converge` and `post_copy` are both true, the create api will ignore"},{"line_number":109,"context_line":"`auto_converge` and only use `post_copy`. [2]_"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"When using`auto-converge` during live migration, if end user call force"},{"line_number":112,"context_line":"complete API, libvirt will not be converted to use `postcopy` because it\u0027s not"},{"line_number":113,"context_line":"required in flavor extra specs or image properties."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fce034c_8964b523","line":113,"range":{"start_line":111,"start_character":0,"end_line":113,"end_character":51},"in_reply_to":"3fce034c_8915959e","updated":"2019-04-19 07:02:17.000000000","message":"\u003e This is existed logic in the code, right?\n \u003e \n \u003e and also when the instance already in postcopy mode, we should\n \u003e return 400 early in the API, right?\n\nYes, this is existed logic in the code.\nNo, libvirt driver will warning the live migration is in \u0027post-copy\u0027 mode.\n\nReference:\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/migration.py#L565","commit_id":"886aca070aff3bed30aabfd7f407ebda0461a51e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ab4cc33d794202a8aa084c511d29634810358966","unresolved":false,"context_lines":[{"line_number":50,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":53,"context_line":"the feature) we propose to define two new traits:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE"},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_POST_COPY"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_8d044fc8","line":53,"range":{"start_line":53,"start_character":27,"end_line":53,"end_character":48},"updated":"2019-04-22 15:48:21.000000000","message":"Presumably these traits will be set on the compute host resource provider.\n\nDo they simply mirror their respective conf options, or are they set if the host is *capable*, regardless of the conf? More below...","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"5db7e1c608d5e802eb07cbd24f42cd2524cb26af","unresolved":false,"context_lines":[{"line_number":50,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":53,"context_line":"the feature) we propose to define two new traits:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE"},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_POST_COPY"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_0cd85751","line":53,"range":{"start_line":53,"start_character":27,"end_line":53,"end_character":48},"in_reply_to":"ffb9cba7_8d044fc8","updated":"2019-04-23 01:15:32.000000000","message":"Yes, the traits are regardless of the conf. I\u0027ll update it.","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ab4cc33d794202a8aa084c511d29634810358966","unresolved":false,"context_lines":[{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":53,"context_line":"the feature) we propose to define two new traits:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE"},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_POST_COPY"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_6dba3bdf","line":56,"range":{"start_line":55,"start_character":0,"end_line":56,"end_character":28},"updated":"2019-04-22 15:48:21.000000000","message":"Will these be part of the compute driver capabilities per [1]?\n\n[1] https://review.opendev.org/#/c/538498/","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"5db7e1c608d5e802eb07cbd24f42cd2524cb26af","unresolved":false,"context_lines":[{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":53,"context_line":"the feature) we propose to define two new traits:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE"},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_POST_COPY"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_8ccc478a","line":56,"range":{"start_line":55,"start_character":0,"end_line":56,"end_character":28},"in_reply_to":"ffb9cba7_6dba3bdf","updated":"2019-04-23 01:15:32.000000000","message":"Yes, these features are provided by libvirt.","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"14a2d906c229309b48da11d99a96a133b054e7c6","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":61,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":64,"context_line":"required/forbidden trait directly. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_7dbedcb4","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":26},"updated":"2019-04-19 09:50:11.000000000","message":"I\u0027m not sure \u0027hw\u0027 is a good prefix.","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ab4cc33d794202a8aa084c511d29634810358966","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"If operators create instance with `hw:auto_converge/hw:post_copy\u003dtrue/false`,"},{"line_number":84,"context_line":"these metadatas will override the configurations:"},{"line_number":85,"context_line":"```live_migration_permit_auto_converge``` and"},{"line_number":86,"context_line":"```live_migration_permit_post_copy```."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_2d1e830c","line":84,"range":{"start_line":84,"start_character":0,"end_line":84,"end_character":48},"updated":"2019-04-22 15:48:21.000000000","message":"Following on from above, this implies that the trait set on the host RP will have to indicate the *capability* of the host, regardless of the conf setting on that host. This should be made clear in the spec.\n\nYou may also wish to consider naming the traits\n\n COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE\n COMPUTE_MIGRATE_POST_COPY_CAPABLE","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"5db7e1c608d5e802eb07cbd24f42cd2524cb26af","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"If operators create instance with `hw:auto_converge/hw:post_copy\u003dtrue/false`,"},{"line_number":84,"context_line":"these metadatas will override the configurations:"},{"line_number":85,"context_line":"```live_migration_permit_auto_converge``` and"},{"line_number":86,"context_line":"```live_migration_permit_post_copy```."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_cc88ff20","line":84,"range":{"start_line":84,"start_character":0,"end_line":84,"end_character":48},"in_reply_to":"ffb9cba7_2d1e830c","updated":"2019-04-23 01:15:32.000000000","message":"Done","commit_id":"ea5911ef4de2bf2d10d9c967053fd8ac81fb6684"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Expose auto converge and post copy"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/expose-auto-converge-post-copy"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_1af11e6c","line":9,"range":{"start_line":9,"start_character":34,"end_line":9,"end_character":42},"updated":"2019-04-26 02:29:54.000000000","message":"nit: this doesn\u0027t need to go beyond the words in the title.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Expose auto converge and post copy"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/expose-auto-converge-post-copy"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_5c73134e","line":9,"range":{"start_line":9,"start_character":34,"end_line":9,"end_character":42},"in_reply_to":"ffb9cba7_1af11e6c","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the operators needs to choose"},{"line_number":20,"context_line":"whether to enable/disable auto-converge or post-copy when live migrating the"},{"line_number":21,"context_line":"instance."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_1a96fef1","line":21,"range":{"start_line":19,"start_character":35,"end_line":21,"end_character":9},"updated":"2019-04-26 02:29:54.000000000","message":"Well, this spec isn\u0027t really allowing the operator to choose what to do when initiating live migration, that was your other spec to allow passing in parameters on the live migrate call. This spec is proposing a way for the user to build the server with a flavor (or image) that has required traits for the type of behavior they want with live migration.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the operators needs to choose"},{"line_number":20,"context_line":"whether to enable/disable auto-converge or post-copy when live migrating the"},{"line_number":21,"context_line":"instance."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_9f097d32","line":21,"range":{"start_line":19,"start_character":35,"end_line":21,"end_character":9},"in_reply_to":"ffb9cba7_1a96fef1","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  that is, the application can guarantee to use/not use auto converge or post"},{"line_number":29,"context_line":"  copy."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, the operators want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, the operators wish to"},{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_da9f0601","line":35,"range":{"start_line":31,"start_character":0,"end_line":35,"end_character":39},"updated":"2019-04-26 02:29:54.000000000","message":"Rather than the operator, wouldn\u0027t this be the user? The user knows what is in their application and the performance sensitivity, the operator/admin is responsible with providing flavors or images mapped to host aggregates that support those restrictions.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  that is, the application can guarantee to use/not use auto converge or post"},{"line_number":29,"context_line":"  copy."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* For some applications sensitive to performance reduced, the operators want to"},{"line_number":32,"context_line":"  always enable auto converge or post copy."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, the operators wish to"},{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_5f722513","line":35,"range":{"start_line":31,"start_character":0,"end_line":35,"end_character":39},"in_reply_to":"ffb9cba7_da9f0601","updated":"2019-04-26 08:48:33.000000000","message":"\u003e Rather than the operator, wouldn\u0027t this be the user? The user knows\n \u003e what is in their application and the performance sensitivity, the\n \u003e operator/admin is responsible with providing flavors or images\n \u003e mapped to host aggregates that support those restrictions.\n\nThere is a problem with my description. It should be divided into user and operator. In this spec, the user and operator should be consistent, user will report to operator to enable/disable the features, the operator add relate metadata to flavors or images.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Support for auto converge and post copy requires libvirt driver, The flags"},{"line_number":41,"context_line":"in virDomainMigrateFlags like this [1]_::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  ..."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_9a898ecb","line":40,"range":{"start_line":40,"start_character":63,"end_line":40,"end_character":64},"updated":"2019-04-26 02:29:54.000000000","message":".","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Proposed change"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Support for auto converge and post copy requires libvirt driver, The flags"},{"line_number":41,"context_line":"in virDomainMigrateFlags like this [1]_::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  ..."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_dc170351","line":40,"range":{"start_line":40,"start_character":63,"end_line":40,"end_character":64},"in_reply_to":"ffb9cba7_9a898ecb","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  VIR_MIGRATE_POSTCOPY \u003d 32768"},{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ```live_migration_permit_auto_converge``` and"},{"line_number":49,"context_line":"```live_migration_permit_post_copy``` can only affect the hypervisor by"},{"line_number":50,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_7a8e1ad1","line":48,"range":{"start_line":48,"start_character":20,"end_line":48,"end_character":21},"updated":"2019-04-26 02:29:54.000000000","message":"You don\u0027t need the \u0027 \u0027 around this - it\u0027s already formatted with the double back-ticks.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  VIR_MIGRATE_POSTCOPY \u003d 32768"},{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ```live_migration_permit_auto_converge``` and"},{"line_number":49,"context_line":"```live_migration_permit_post_copy``` can only affect the hypervisor by"},{"line_number":50,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_7c0e173c","line":48,"range":{"start_line":48,"start_character":20,"end_line":48,"end_character":21},"in_reply_to":"ffb9cba7_7a8e1ad1","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ```live_migration_permit_auto_converge``` and"},{"line_number":49,"context_line":"```live_migration_permit_post_copy``` can only affect the hypervisor by"},{"line_number":50,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_1abfde61","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":1},"updated":"2019-04-26 02:29:54.000000000","message":"same","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ..."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The configurations: ```live_migration_permit_auto_converge``` and"},{"line_number":49,"context_line":"```live_migration_permit_post_copy``` can only affect the hypervisor by"},{"line_number":50,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_9c098b32","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":1},"in_reply_to":"ffb9cba7_1abfde61","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":53,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":54,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE"},{"line_number":57,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_da46267d","line":54,"range":{"start_line":54,"start_character":16,"end_line":54,"end_character":38},"updated":"2019-04-26 02:29:54.000000000","message":"Why would we report the traits regardless of config? I thought we\u0027d only apply the trait if the driver is configured and able to provide those capabilities, and there are limitations around when either feature can be used (there were minimum version constraints for one thing, but we might be past that now).","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":53,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":54,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE"},{"line_number":57,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_bfe7a1e4","line":54,"range":{"start_line":54,"start_character":16,"end_line":54,"end_character":38},"in_reply_to":"ffb9cba7_da46267d","updated":"2019-04-26 08:48:33.000000000","message":"The two features required QEMU \u003e\u003d 2.5.0, from rocky release, the miniumu required version of QEMU is 2.5.0. Therefore, all compute node using libivrt driver should support these features.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cc8d384583a0c39603cdb01d48a1e30879001ff","unresolved":false,"context_lines":[{"line_number":54,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE"},{"line_number":57,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_27373fe6","line":57,"range":{"start_line":57,"start_character":36,"end_line":57,"end_character":44},"updated":"2019-04-24 23:18:14.000000000","message":"strike","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":65,"context_line":"required/forbidden trait directly. Before calling the placement, when"},{"line_number":66,"context_line":"`hw:post_copy/hw:auto_converge\u003dtrue`, we add required trait for this two"},{"line_number":67,"context_line":"features to the placement request. When `hw:post_copy/hw:auto_converge\u003dfalse`,"},{"line_number":68,"context_line":"we just add nothing to the placement request. Then we still can schedule an"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_fa3e8ad8","line":65,"range":{"start_line":65,"start_character":35,"end_line":65,"end_character":63},"updated":"2019-04-26 02:29:54.000000000","message":"What is going to do this? A new placement request filter like these?\n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/request_filter.py\n\nThat seems excessive. Maybe it\u0027d be something in here?\n\nhttps://github.com/openstack/nova/blob/a991980863f056323c1ee9fd6a46dbc4cb899eca/nova/scheduler/utils.py#L415\n\nBut I don\u0027t think we really want to be putting virt specific logic in there to do that translation.\n\nSo what else is there? Just translating this during the server create in the API when validating the extra spec/image meta compatibility? If you did it in the API then you don\u0027t have to calculate it in the scheduler every time the server is moved, but you would have to persist it in the request spec and update it if the flavor changes (resize) or the image changes (rebuild), so maybe doing it in the scheduler is OK - but with which of the options above?","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":62,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":65,"context_line":"required/forbidden trait directly. Before calling the placement, when"},{"line_number":66,"context_line":"`hw:post_copy/hw:auto_converge\u003dtrue`, we add required trait for this two"},{"line_number":67,"context_line":"features to the placement request. When `hw:post_copy/hw:auto_converge\u003dfalse`,"},{"line_number":68,"context_line":"we just add nothing to the placement request. Then we still can schedule an"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_e22b3c2d","line":65,"range":{"start_line":65,"start_character":35,"end_line":65,"end_character":63},"in_reply_to":"ffb9cba7_fa3e8ad8","updated":"2019-04-26 08:48:33.000000000","message":"\u003e What is going to do this? A new placement request filter like\n \u003e these?\n \u003e \n \u003e https://github.com/openstack/nova/blob/master/nova/scheduler/request_filter.py\n \u003e \n \u003e That seems excessive. Maybe it\u0027d be something in here?\n \u003e \n \u003e https://github.com/openstack/nova/blob/a991980863f056323c1ee9fd6a46dbc4cb899eca/nova/scheduler/utils.py#L415\n \u003e \n \u003e But I don\u0027t think we really want to be putting virt specific logic\n \u003e in there to do that translation.\n \u003e \n \u003e So what else is there? Just translating this during the server\n \u003e create in the API when validating the extra spec/image meta\n \u003e compatibility? If you did it in the API then you don\u0027t have to\n \u003e calculate it in the scheduler every time the server is moved, but\n \u003e you would have to persist it in the request spec and update it if\n \u003e the flavor changes (resize) or the image changes (rebuild), so\n \u003e maybe doing it in the scheduler is OK - but with which of the\n \u003e options above?\n\nYes, here should have two steps, first is checking the compatibility, second is translate them to traits. I don\u0027t know doing this in scheduler.utils.ResourceRequest.resources_from_request_spec is whether a good idea.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":65,"context_line":"required/forbidden trait directly. Before calling the placement, when"},{"line_number":66,"context_line":"`hw:post_copy/hw:auto_converge\u003dtrue`, we add required trait for this two"},{"line_number":67,"context_line":"features to the placement request. When `hw:post_copy/hw:auto_converge\u003dfalse`,"},{"line_number":68,"context_line":"we just add nothing to the placement request. Then we still can schedule an"},{"line_number":69,"context_line":"instance on a host with those two feature but we disable this two features for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_ba7252e2","line":66,"range":{"start_line":66,"start_character":13,"end_line":66,"end_character":14},"updated":"2019-04-26 02:29:54.000000000","message":"Is this an OR logic? Because L89 says that if both are true it\u0027s an error.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":65,"context_line":"required/forbidden trait directly. Before calling the placement, when"},{"line_number":66,"context_line":"`hw:post_copy/hw:auto_converge\u003dtrue`, we add required trait for this two"},{"line_number":67,"context_line":"features to the placement request. When `hw:post_copy/hw:auto_converge\u003dfalse`,"},{"line_number":68,"context_line":"we just add nothing to the placement request. Then we still can schedule an"},{"line_number":69,"context_line":"instance on a host with those two feature but we disable this two features for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_ffff59fe","line":66,"range":{"start_line":66,"start_character":13,"end_line":66,"end_character":14},"in_reply_to":"ffb9cba7_ba7252e2","updated":"2019-04-26 08:48:33.000000000","message":"Yes, this is an OR logic. Updated","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":65,"context_line":"required/forbidden trait directly. Before calling the placement, when"},{"line_number":66,"context_line":"`hw:post_copy/hw:auto_converge\u003dtrue`, we add required trait for this two"},{"line_number":67,"context_line":"features to the placement request. When `hw:post_copy/hw:auto_converge\u003dfalse`,"},{"line_number":68,"context_line":"we just add nothing to the placement request. Then we still can schedule an"},{"line_number":69,"context_line":"instance on a host with those two feature but we disable this two features for"},{"line_number":70,"context_line":"that instance."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_1a4d9e99","line":68,"range":{"start_line":67,"start_character":35,"end_line":68,"end_character":45},"updated":"2019-04-26 02:29:54.000000000","message":"So false means the user doesn\u0027t care if auto-converge or post-copy are enabled on a given compute host? Or does it mean the server should *not* land on a compute host with either of those features enabled? It\u0027s confusing to me because otherwise how will placement filter out providers (compute nodes) properly if the trait is not required or forbidden?","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":65,"context_line":"required/forbidden trait directly. Before calling the placement, when"},{"line_number":66,"context_line":"`hw:post_copy/hw:auto_converge\u003dtrue`, we add required trait for this two"},{"line_number":67,"context_line":"features to the placement request. When `hw:post_copy/hw:auto_converge\u003dfalse`,"},{"line_number":68,"context_line":"we just add nothing to the placement request. Then we still can schedule an"},{"line_number":69,"context_line":"instance on a host with those two feature but we disable this two features for"},{"line_number":70,"context_line":"that instance."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_5f1d45bb","line":68,"range":{"start_line":67,"start_character":35,"end_line":68,"end_character":45},"in_reply_to":"ffb9cba7_1a4d9e99","updated":"2019-04-26 08:48:33.000000000","message":"\u003e So false means the user doesn\u0027t care if auto-converge or post-copy\n \u003e are enabled on a given compute host? Or does it mean the server\n \u003e should *not* land on a compute host with either of those features\n \u003e enabled? It\u0027s confusing to me because otherwise how will placement\n \u003e filter out providers (compute nodes) properly if the trait is not\n \u003e required or forbidden?\n\nFalse means disable those features even the config is true.\n\nThat\u0027s why we need to translate the metadata to traits internal, if the metadata is false, then we don\u0027t translate metadata to trait(instance not care the selected destination whether support/not support these features), and disable these features during live migration(libvirt will check metadata or request spec as you say).","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"According to this spec [2]_, if post-copy is enabled during live migration, the"},{"line_number":97,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":98,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_ba5b3252","line":99,"updated":"2019-04-26 02:29:54.000000000","message":"So if I create a server with a flavor and image that has neither of these new metadata, or the value is false, then my server can go anywhere (doesn\u0027t need to be a libvirt host) and if it\u0027s live migrated, it can be auto-converged or post-copied based on host configuration (assuming a libvirt host).\n\nBut if I create a server with a flavor or image that has either of those values as true, then the server has to land on a libvirt host (reporting the capability, linked via required trait in the GET /allocation_candidates call) and furthermore, the value in the flavor/image *overrides* the host configuration, is that correct?","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":96,"context_line":"According to this spec [2]_, if post-copy is enabled during live migration, the"},{"line_number":97,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":98,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_5fa78550","line":99,"in_reply_to":"ffb9cba7_ba5b3252","updated":"2019-04-26 08:48:33.000000000","message":"\u003e So if I create a server with a flavor and image that has neither of\n \u003e these new metadata, or the value is false, then my server can go\n \u003e anywhere (doesn\u0027t need to be a libvirt host) and if it\u0027s live\n \u003e migrated, it can be auto-converged or post-copied based on host\n \u003e configuration (assuming a libvirt host).\n \u003e \n \u003e But if I create a server with a flavor or image that has either of\n \u003e those values as true, then the server has to land on a libvirt host\n \u003e (reporting the capability, linked via required trait in the GET\n \u003e /allocation_candidates call) and furthermore, the value in the\n \u003e flavor/image *overrides* the host configuration, is that correct?\n\n1. Yes and no. Server can go anywhere is correct. Live migration has two cases:\n  * Without new metadata: based on the host configuration\n  * With new metadata and value is false: the value will override host configuration, the live migration should disable those features.\n\n2. Correct.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":98,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If only use traits, there will be a case: The operators doesn\u0027t want to use"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_7a037a10","line":100,"updated":"2019-04-26 02:29:54.000000000","message":"I\u0027m not sure why this alternative is worse than what is proposed. As noted above, the libvirt driver could report support capabilities for auto-converge and post-copy as traits, and then operators can configure flavors that either require or forbid the use of hosts with those capabilities, then the user picks the flavor that matches their requirement (or if they don\u0027t care it\u0027s a flavor without either). I guess the big drawback there is you could have an explosion of flavors for users that care one way or the other, and users that don\u0027t care.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":97,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":98,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If only use traits, there will be a case: The operators doesn\u0027t want to use"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_bf3b21e9","line":100,"in_reply_to":"ffb9cba7_7a037a10","updated":"2019-04-26 08:48:33.000000000","message":"\u003e I\u0027m not sure why this alternative is worse than what is proposed.\n \u003e As noted above, the libvirt driver could report support\n \u003e capabilities for auto-converge and post-copy as traits, and then\n \u003e operators can configure flavors that either require or forbid the\n \u003e use of hosts with those capabilities, then the user picks the\n \u003e flavor that matches their requirement (or if they don\u0027t care it\u0027s a\n \u003e flavor without either). I guess the big drawback there is you could\n \u003e have an explosion of flavors for users that care one way or the\n \u003e other, and users that don\u0027t care.\n\nFor now, all compute node(use live driver) should support live migration. The instance should be scheduled to any server if user want disable those features, the only thing need to do is disable those features in libvirt driver when live migration. If required by traits forbid, placement will pass hosts which support these features, but the passed hosts should also support live migration(without advanced features).","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If only use traits, there will be a case: The operators doesn\u0027t want to use"},{"line_number":104,"context_line":"auto-converge or post-copy during live migration, if operators doesn\u0027t"},{"line_number":105,"context_line":"request any related tratis, the instance may be scheduled to a host which has"},{"line_number":106,"context_line":"enabled ```live_migration_permit_auto_converge``` or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_5a2f96a0","line":103,"range":{"start_line":103,"start_character":46,"end_line":103,"end_character":55},"updated":"2019-04-26 02:29:54.000000000","message":"Again I\u0027m confused about the role here - are you talking about operators configuring/deploying the cloud or users using the cloud?","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If only use traits, there will be a case: The operators doesn\u0027t want to use"},{"line_number":104,"context_line":"auto-converge or post-copy during live migration, if operators doesn\u0027t"},{"line_number":105,"context_line":"request any related tratis, the instance may be scheduled to a host which has"},{"line_number":106,"context_line":"enabled ```live_migration_permit_auto_converge``` or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_dfd4d5bf","line":103,"range":{"start_line":103,"start_character":46,"end_line":103,"end_character":55},"in_reply_to":"ffb9cba7_5a2f96a0","updated":"2019-04-26 08:48:33.000000000","message":"\u003e Again I\u0027m confused about the role here - are you talking about\n \u003e operators configuring/deploying the cloud or users using the cloud?\n\nUpdated. Here should users.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If only use traits, there will be a case: The operators doesn\u0027t want to use"},{"line_number":104,"context_line":"auto-converge or post-copy during live migration, if operators doesn\u0027t"},{"line_number":105,"context_line":"request any related tratis, the instance may be scheduled to a host which has"},{"line_number":106,"context_line":"enabled ```live_migration_permit_auto_converge``` or"},{"line_number":107,"context_line":"```live_migration_permit_post_copy```, then the live migration will use these"},{"line_number":108,"context_line":"feature. If operators forbidden traits:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_ba2012b2","line":105,"range":{"start_line":105,"start_character":20,"end_line":105,"end_character":26},"updated":"2019-04-26 02:29:54.000000000","message":"traits","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If only use traits, there will be a case: The operators doesn\u0027t want to use"},{"line_number":104,"context_line":"auto-converge or post-copy during live migration, if operators doesn\u0027t"},{"line_number":105,"context_line":"request any related tratis, the instance may be scheduled to a host which has"},{"line_number":106,"context_line":"enabled ```live_migration_permit_auto_converge``` or"},{"line_number":107,"context_line":"```live_migration_permit_post_copy```, then the live migration will use these"},{"line_number":108,"context_line":"feature. If operators forbidden traits:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_3f50915d","line":105,"range":{"start_line":105,"start_character":20,"end_line":105,"end_character":26},"in_reply_to":"ffb9cba7_ba2012b2","updated":"2019-04-26 08:48:33.000000000","message":"Done","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":106,"context_line":"enabled ```live_migration_permit_auto_converge``` or"},{"line_number":107,"context_line":"```live_migration_permit_post_copy```, then the live migration will use these"},{"line_number":108,"context_line":"feature. If operators forbidden traits:"},{"line_number":109,"context_line":"```hw:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE\u003dforbidden``` or"},{"line_number":110,"context_line":"```hw:COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE\u003dforbidden```, the instance will"},{"line_number":111,"context_line":"be scheduled to part of **all hosts**. But actually, live migration should be"},{"line_number":112,"context_line":"supported by **all hosts**."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_1a1b5e81","line":109,"range":{"start_line":109,"start_character":3,"end_line":109,"end_character":5},"updated":"2019-04-26 02:29:54.000000000","message":"This would actually be \"traits:\":\n\nhttps://docs.openstack.org/nova/latest/user/flavors.html#extra-specs\n\nAnd forbidden traits aren\u0027t supported in the image metadata, just FYI.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":106,"context_line":"enabled ```live_migration_permit_auto_converge``` or"},{"line_number":107,"context_line":"```live_migration_permit_post_copy```, then the live migration will use these"},{"line_number":108,"context_line":"feature. If operators forbidden traits:"},{"line_number":109,"context_line":"```hw:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE\u003dforbidden``` or"},{"line_number":110,"context_line":"```hw:COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE\u003dforbidden```, the instance will"},{"line_number":111,"context_line":"be scheduled to part of **all hosts**. But actually, live migration should be"},{"line_number":112,"context_line":"supported by **all hosts**."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_9f517d65","line":109,"range":{"start_line":109,"start_character":3,"end_line":109,"end_character":5},"in_reply_to":"ffb9cba7_1a1b5e81","updated":"2019-04-26 08:48:33.000000000","message":"\u003e This would actually be \"traits:\":\n \u003e \n \u003e https://docs.openstack.org/nova/latest/user/flavors.html#extra-specs\n \u003e \n \u003e And forbidden traits aren\u0027t supported in the image metadata, just\n \u003e FYI.\n\nThanks, this\u0027s my mistake.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cc8d384583a0c39603cdb01d48a1e30879001ff","unresolved":false,"context_lines":[{"line_number":107,"context_line":"```live_migration_permit_post_copy```, then the live migration will use these"},{"line_number":108,"context_line":"feature. If operators forbidden traits:"},{"line_number":109,"context_line":"```hw:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE\u003dforbidden``` or"},{"line_number":110,"context_line":"```hw:COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE\u003dforbidden```, the instance will"},{"line_number":111,"context_line":"be scheduled to part of **all hosts**. But actually, live migration should be"},{"line_number":112,"context_line":"supported by **all hosts**."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_a7500f0c","line":110,"range":{"start_line":110,"start_character":39,"end_line":110,"end_character":47},"updated":"2019-04-24 23:18:14.000000000","message":"strike","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Upgrade impact"},{"line_number":155,"context_line":"--------------"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"None"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_7c13775d","line":157,"updated":"2019-04-26 02:29:54.000000000","message":"Well, naturally any N-1 computes won\u0027t be reporting the trait so you could have a period where there are no valid hosts if you\u0027re using a flavor that requires a trait and there are no hosts yet reporting that trait, but presumably an operator wouldn\u0027t enable this in their flavors/images until they have upgraded their computes.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Upgrade impact"},{"line_number":155,"context_line":"--------------"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"None"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_45e7b241","line":157,"in_reply_to":"ffb9cba7_7c13775d","updated":"2019-04-26 08:48:33.000000000","message":"\u003e Well, naturally any N-1 computes won\u0027t be reporting the trait so\n \u003e you could have a period where there are no valid hosts if you\u0027re\n \u003e using a flavor that requires a trait and there are no hosts yet\n \u003e reporting that trait, but presumably an operator wouldn\u0027t enable\n \u003e this in their flavors/images until they have upgraded their\n \u003e computes.\n\nAs the spec description, the flavor\u0027s properties are \u0027hw:auto_converge\u0027 and \u0027hw:post_copy\u0027, they need translate to traits. If operator not upgrade, these properties will not effect anything.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4edd2e8bebc4bcea4d6ce209534e82d017038db4","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Libvirt driver changes to report traits to placement."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"* Scheduler changes to translate metadata to traits."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"* Recalculate ```_live_migration_flags``` before live migration start in"},{"line_number":179,"context_line":"  libvirt driver."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_9c0e6b30","line":176,"updated":"2019-04-26 02:29:54.000000000","message":"As noted above, I don\u0027t know where you think you\u0027ll do this in the scheduler. There are two options, but I don\u0027t think they are very good ones.","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"11a57cb3cd19175a03adde065cb19c6f0d494c66","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Libvirt driver changes to report traits to placement."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"* Scheduler changes to translate metadata to traits."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"* Recalculate ```_live_migration_flags``` before live migration start in"},{"line_number":179,"context_line":"  libvirt driver."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffb9cba7_82228051","line":176,"in_reply_to":"ffb9cba7_9c0e6b30","updated":"2019-04-26 08:48:33.000000000","message":"\u003e As noted above, I don\u0027t know where you think you\u0027ll do this in the\n \u003e scheduler. There are two options, but I don\u0027t think they are very\n \u003e good ones.\n\nUpdated,","commit_id":"5333578d261e0a33f7540e698809557ff00e1aaf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dce4166fdfb669c5a3df62559194d00c23c388a2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the users want to control"},{"line_number":20,"context_line":"whether to enable/disable auto converge or post copy during live migration."},{"line_number":21,"context_line":"This spec is implemented it with flavor extra specs and image properties."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_cceab4d6","line":21,"range":{"start_line":21,"start_character":25,"end_line":21,"end_character":27},"updated":"2019-04-30 18:10:18.000000000","message":"strike","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dce4166fdfb669c5a3df62559194d00c23c388a2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, the users want to"},{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* For the above problems, the operators wants to control whether a single"},{"line_number":38,"context_line":"  instance enable auto converge or post copy during live migration. But now the"},{"line_number":39,"context_line":"  minimum unit that can be controlled is the compute node."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_8cc27c58","line":37,"range":{"start_line":37,"start_character":30,"end_line":37,"end_character":39},"updated":"2019-04-30 18:10:18.000000000","message":"operator","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"* For some applications sensitive to performance reduced, the users want to"},{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* For the above problems, the operators wants to control whether a single"},{"line_number":38,"context_line":"  instance enable auto converge or post copy during live migration. But now the"},{"line_number":39,"context_line":"  minimum unit that can be controlled is the compute node."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_aecb3fa3","line":37,"range":{"start_line":37,"start_character":30,"end_line":37,"end_character":39},"in_reply_to":"ffb9cba7_8cc27c58","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dce4166fdfb669c5a3df62559194d00c23c388a2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* For the above problems, the operators wants to control whether a single"},{"line_number":38,"context_line":"  instance enable auto converge or post copy during live migration. But now the"},{"line_number":39,"context_line":"  minimum unit that can be controlled is the compute node."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_6cbdc8d6","line":38,"range":{"start_line":38,"start_character":11,"end_line":38,"end_character":17},"updated":"2019-04-30 18:10:18.000000000","message":"enables","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  never use auto converge or post copy."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* For the above problems, the operators wants to control whether a single"},{"line_number":38,"context_line":"  instance enable auto converge or post copy during live migration. But now the"},{"line_number":39,"context_line":"  minimum unit that can be controlled is the compute node."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_ced0f353","line":38,"range":{"start_line":38,"start_character":11,"end_line":38,"end_character":17},"in_reply_to":"ffb9cba7_6cbdc8d6","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dce4166fdfb669c5a3df62559194d00c23c388a2","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Support for auto converge and post copy requires QEMU version \u003e\u003d 2.5.0. From"},{"line_number":45,"context_line":"rocky release, the minimum required version of QEMU is 2.5.0 [1]_. Therefore,"},{"line_number":46,"context_line":"all compute node using libvirt driver should support these features. The flags"},{"line_number":47,"context_line":"in virDomainMigrateFlags like this [2]_::"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_2ca8308a","line":46,"range":{"start_line":46,"start_character":12,"end_line":46,"end_character":16},"updated":"2019-04-30 18:10:18.000000000","message":"nodes","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Support for auto converge and post copy requires QEMU version \u003e\u003d 2.5.0. From"},{"line_number":45,"context_line":"rocky release, the minimum required version of QEMU is 2.5.0 [1]_. Therefore,"},{"line_number":46,"context_line":"all compute node using libvirt driver should support these features. The flags"},{"line_number":47,"context_line":"in virDomainMigrateFlags like this [2]_::"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_6ec5478e","line":46,"range":{"start_line":46,"start_character":12,"end_line":46,"end_character":16},"in_reply_to":"ffb9cba7_2ca8308a","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5245bdcd3ff4bd9f348ad7f3c501ad6b386dccb0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE"},{"line_number":63,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_c7edadb7","line":63,"range":{"start_line":63,"start_character":29,"end_line":63,"end_character":44},"updated":"2019-04-30 20:11:34.000000000","message":"duplicated \u0027CAPABLE\u0027?","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE"},{"line_number":63,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_8ec2fb84","line":63,"range":{"start_line":63,"start_character":29,"end_line":63,"end_character":44},"in_reply_to":"ffb9cba7_c7edadb7","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5245bdcd3ff4bd9f348ad7f3c501ad6b386dccb0","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":68,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Use these properties to instead of asking the operators write the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_07542552","line":67,"range":{"start_line":67,"start_character":3,"end_line":67,"end_character":6},"updated":"2019-04-30 20:11:34.000000000","message":"Is there anybody has any suggestion on this prefix? Since hw means hardware, that is a little strange. But I don\u0027t know which prefix should be right.","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":68,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Use these properties to instead of asking the operators write the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_8ed75bc0","line":67,"range":{"start_line":67,"start_character":3,"end_line":67,"end_character":6},"in_reply_to":"ffb9cba7_07542552","updated":"2019-05-05 03:22:29.000000000","message":"Yes, this prefix is really not a good choice, I put it here is only as a placeholder.","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5245bdcd3ff4bd9f348ad7f3c501ad6b386dccb0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":68,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":71,"context_line":"required/forbidden traits directly. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_c7704d0b","line":68,"updated":"2019-04-30 20:11:34.000000000","message":"for the image properties, it will be \u0027hw_\u0027.","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Introduce two new flavor extra specs and image properties:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":68,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Use these properties to instead of asking the operators write the"},{"line_number":71,"context_line":"required/forbidden traits directly. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_ee3617b5","line":68,"in_reply_to":"ffb9cba7_c7704d0b","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dce4166fdfb669c5a3df62559194d00c23c388a2","unresolved":false,"context_lines":[{"line_number":113,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":114,"context_line":"feature. If operators forbidden traits:"},{"line_number":115,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE\u003dforbidden`` or"},{"line_number":116,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE\u003dforbidden``, the instance"},{"line_number":117,"context_line":"will be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":118,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_0c93ec5c","line":116,"range":{"start_line":116,"start_character":43,"end_line":116,"end_character":50},"updated":"2019-04-30 18:10:18.000000000","message":"still have an extra _CAPABLE here","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":114,"context_line":"feature. If operators forbidden traits:"},{"line_number":115,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABLE\u003dforbidden`` or"},{"line_number":116,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY_CAPABLE_CAPABLE\u003dforbidden``, the instance"},{"line_number":117,"context_line":"will be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":118,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_2ebf4ffc","line":116,"range":{"start_line":116,"start_character":43,"end_line":116,"end_character":50},"in_reply_to":"ffb9cba7_0c93ec5c","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5245bdcd3ff4bd9f348ad7f3c501ad6b386dccb0","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Data model impact"},{"line_number":121,"context_line":"-----------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"None"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ffb9cba7_07d985f1","line":123,"updated":"2019-04-30 20:11:34.000000000","message":"you need to add those two image properites to the ImageMeta obj.","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"509fd4b7b3b372ea7fb0a47a45339dd54e9025b3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Data model impact"},{"line_number":121,"context_line":"-----------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"None"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_0e7e0be4","line":123,"in_reply_to":"ffb9cba7_07d985f1","updated":"2019-05-05 03:22:29.000000000","message":"Done","commit_id":"461832e1d951c92977f89f4727cdf539ac65399e"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the user wants to control"},{"line_number":20,"context_line":"whether to enable/disable auto converge or post copy during live migration."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_a07d791d","line":18,"range":{"start_line":17,"start_character":36,"end_line":18,"end_character":7},"updated":"2019-05-21 08:22:28.000000000","message":"Nit: This phrase is used three or so times in the spec; and it is not clear to me what it means, please rephrase.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the user wants to control"},{"line_number":20,"context_line":"whether to enable/disable auto converge or post copy during live migration."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_4f226854","line":18,"range":{"start_line":17,"start_character":36,"end_line":18,"end_character":7},"in_reply_to":"bfb3d3c7_a07d791d","updated":"2019-05-27 01:42:11.000000000","message":"\u003e Nit: This phrase is used three or so times in the spec; and it is\n \u003e not clear to me what it means, please rephrase.\n\nI add an example on it.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"88fef1947fd8002919d0483b97800ce714557b00","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the user wants to control"},{"line_number":20,"context_line":"whether to enable/disable auto converge or post copy during live migration."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_e5a28a9a","line":18,"range":{"start_line":17,"start_character":36,"end_line":18,"end_character":7},"in_reply_to":"bfb3d3c7_a07d791d","updated":"2019-05-22 10:15:49.000000000","message":"possibly a follow-up","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced and it is on a host with these options enabled, then live migration may"},{"line_number":19,"context_line":"cause the application raise error. Therefore, the user wants to control"},{"line_number":20,"context_line":"whether to enable/disable auto converge or post copy during live migration."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_80a9557c","line":19,"range":{"start_line":19,"start_character":10,"end_line":19,"end_character":33},"updated":"2019-05-21 08:22:28.000000000","message":"\"application to raise error\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  migration, that is, the application can guarantee to use/not use auto"},{"line_number":28,"context_line":"  converge or post copy."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* For some applications sensitive to performance reduced, the user wants to"},{"line_number":31,"context_line":"  always enable auto converge or post copy."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* For some applications sensitive to performance reduced, the user wants to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_4094bd37","line":30,"range":{"start_line":30,"start_character":24,"end_line":30,"end_character":56},"updated":"2019-05-21 08:22:28.000000000","message":"Here too.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":30,"context_line":"* For some applications sensitive to performance reduced, the user wants to"},{"line_number":31,"context_line":"  always enable auto converge or post copy."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* For some applications sensitive to performance reduced, the user wants to"},{"line_number":34,"context_line":"  never use auto converge or post copy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* For the above problems, the operator wants to control whether a single"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_e098516b","line":33,"range":{"start_line":33,"start_character":24,"end_line":33,"end_character":56},"updated":"2019-05-21 08:22:28.000000000","message":"And here.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Support for auto converge and post copy requires QEMU version \u003e\u003d 2.5.0. From"},{"line_number":44,"context_line":"rocky release, the minimum required version of QEMU is 2.5.0 [1]_. Therefore,"},{"line_number":45,"context_line":"all compute nodes using libvirt driver should support these features. The flags"},{"line_number":46,"context_line":"in virDomainMigrateFlags like this [2]_::"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_40bd9db5","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":5},"updated":"2019-05-21 08:22:28.000000000","message":"OCD-Nit: s/rocky/Rocky","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Support for auto converge and post copy requires QEMU version \u003e\u003d 2.5.0. From"},{"line_number":44,"context_line":"rocky release, the minimum required version of QEMU is 2.5.0 [1]_. Therefore,"},{"line_number":45,"context_line":"all compute nodes using libvirt driver should support these features. The flags"},{"line_number":46,"context_line":"in virDomainMigrateFlags like this [2]_::"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  ..."},{"line_number":49,"context_line":"  VIR_MIGRATE_AUTO_CONVERGE \u003d 8192"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_60c5413c","line":46,"range":{"start_line":45,"start_character":70,"end_line":46,"end_character":34},"updated":"2019-05-21 08:22:28.000000000","message":"Nit: \"These are flags from the libvirt \u0027enum\u0027 virDomainMigrateFlags:\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Support for auto converge and post copy requires QEMU version \u003e\u003d 2.5.0. From"},{"line_number":44,"context_line":"rocky release, the minimum required version of QEMU is 2.5.0 [1]_. Therefore,"},{"line_number":45,"context_line":"all compute nodes using libvirt driver should support these features. The flags"},{"line_number":46,"context_line":"in virDomainMigrateFlags like this [2]_::"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  ..."},{"line_number":49,"context_line":"  VIR_MIGRATE_AUTO_CONVERGE \u003d 8192"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_2f17f4ef","line":46,"range":{"start_line":45,"start_character":70,"end_line":46,"end_character":34},"in_reply_to":"bfb3d3c7_60c5413c","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"07013efece8e23b9ceb79d3e6d29bdcb77eab0be","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_56680ef4","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":14},"updated":"2019-05-20 19:06:50.000000000","message":"We just had this issue come up in the SEV implementation:\n\nSince this is a libvirt-specific thing, the trait should be reported by the libvirt driver as part of update_provider_tree. It should *not* be added to the generic compute capabilities dict inherited by all the virt drivers.\n\nThis could be considered an implementation detail; you can mention it in this spec, or not.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_efd6bc27","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":14},"in_reply_to":"bfb3d3c7_56680ef4","updated":"2019-05-27 01:42:11.000000000","message":"\u003e We just had this issue come up in the SEV implementation:\n \u003e \n \u003e Since this is a libvirt-specific thing, the trait should be\n \u003e reported by the libvirt driver as part of update_provider_tree. It\n \u003e should *not* be added to the generic compute capabilities dict\n \u003e inherited by all the virt drivers.\n \u003e \n \u003e This could be considered an implementation detail; you can mention\n \u003e it in this spec, or not.\n\nAdd it in \u0027Implementation\u0027 paragraph.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_80c2b532","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":14},"in_reply_to":"bfb3d3c7_56680ef4","updated":"2019-05-21 08:22:28.000000000","message":"Sounds like it is worth mentioning.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"07013efece8e23b9ceb79d3e6d29bdcb77eab0be","unresolved":false,"context_lines":[{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Introduce two new flavor extra specs:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_d6007e37","line":61,"range":{"start_line":61,"start_character":32,"end_line":61,"end_character":43},"updated":"2019-05-20 19:06:50.000000000","message":"we can mess with this during implementation, but...\n\n_CAPABILITY is redundant in this context. None of the other compute capability traits bother with this.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Introduce two new flavor extra specs:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_4fe7c813","line":61,"range":{"start_line":61,"start_character":32,"end_line":61,"end_character":43},"in_reply_to":"bfb3d3c7_40e27dd7","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"88fef1947fd8002919d0483b97800ce714557b00","unresolved":false,"context_lines":[{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Introduce two new flavor extra specs:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_8592ae4a","line":61,"range":{"start_line":61,"start_character":32,"end_line":61,"end_character":43},"in_reply_to":"bfb3d3c7_40e27dd7","updated":"2019-05-22 10:15:49.000000000","message":"Yup, possibly a follow-up spec change.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Introduce two new flavor extra specs:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_afe0c4fb","line":61,"range":{"start_line":61,"start_character":32,"end_line":61,"end_character":43},"in_reply_to":"bfb3d3c7_8592ae4a","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Introduce two new flavor extra specs:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_40e27dd7","line":61,"range":{"start_line":61,"start_character":32,"end_line":61,"end_character":43},"in_reply_to":"bfb3d3c7_d6007e37","updated":"2019-05-21 08:22:28.000000000","message":"Agreed.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"the feature) we propose to define two new traits. The traits are reported by"},{"line_number":59,"context_line":"libvirt driver, regardless of the conf:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"*  COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY"},{"line_number":62,"context_line":"*  COMPUTE_MIGRATE_POST_COPY_CAPABILITY"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Introduce two new flavor extra specs:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_6fe2cc03","line":61,"range":{"start_line":61,"start_character":32,"end_line":61,"end_character":43},"in_reply_to":"bfb3d3c7_d6007e37","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"88fef1947fd8002919d0483b97800ce714557b00","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Introduce two new flavor extra specs:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":67,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"And introduce two new image properties:"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_85bb8ec2","line":67,"updated":"2019-05-22 10:15:49.000000000","message":"Cool","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"88fef1947fd8002919d0483b97800ce714557b00","unresolved":false,"context_lines":[{"line_number":69,"context_line":"And introduce two new image properties:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the operator writes the"},{"line_number":75,"context_line":"required/forbidden traits directly. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_05f55e83","line":72,"updated":"2019-05-22 10:15:49.000000000","message":"Not cool. Given image properties can be defined by users, they could see whether compute nodes support them.\n\nI\u0027d prefer to see those properties to be asking a preferred trait instead of a required trait.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"598b9f9857f34e53ca50d32a6c0f8e7db81371f9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"And introduce two new image properties:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the operator writes the"},{"line_number":75,"context_line":"required/forbidden traits directly. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_92d660f1","line":72,"in_reply_to":"bfb3d3c7_05f55e83","updated":"2019-05-22 20:54:10.000000000","message":"There is no such thing as a preferred trait.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5131bdf85751ad543a0aeb2057466c21a08aa9ce","unresolved":false,"context_lines":[{"line_number":69,"context_line":"And introduce two new image properties:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the operator writes the"},{"line_number":75,"context_line":"required/forbidden traits directly. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_5b068a1f","line":72,"in_reply_to":"bfb3d3c7_92d660f1","updated":"2019-05-27 11:35:16.000000000","message":"Damn, you\u0027re right.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":71,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the operator writes the"},{"line_number":75,"context_line":"required/forbidden traits directly. Before calling the placement, when"},{"line_number":76,"context_line":"`hw:post_copy\u003dtrue` or `hw:auto_converge\u003dtrue`, we add required traits for"},{"line_number":77,"context_line":"specified feature to the placement request. When"},{"line_number":78,"context_line":"`hw:post_copy\u003dfalse` and `hw:auto_converge\u003dfalse`, we just add nothing to the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_a0f9f980","line":75,"range":{"start_line":74,"start_character":0,"end_line":75,"end_character":33},"updated":"2019-05-21 08:22:28.000000000","message":"Nit: Awkward phrasing.  Perhaps rephrase it to:\n\n  \"Use these properties, instead of asking the operator to set the \u0027required\u0027/\u0027forbidden\u0027 on the traits.\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":72,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use these properties to instead of asking the operator writes the"},{"line_number":75,"context_line":"required/forbidden traits directly. Before calling the placement, when"},{"line_number":76,"context_line":"`hw:post_copy\u003dtrue` or `hw:auto_converge\u003dtrue`, we add required traits for"},{"line_number":77,"context_line":"specified feature to the placement request. When"},{"line_number":78,"context_line":"`hw:post_copy\u003dfalse` and `hw:auto_converge\u003dfalse`, we just add nothing to the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_cf63b819","line":75,"range":{"start_line":74,"start_character":0,"end_line":75,"end_character":33},"in_reply_to":"bfb3d3c7_a0f9f980","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":77,"context_line":"specified feature to the placement request. When"},{"line_number":78,"context_line":"`hw:post_copy\u003dfalse` and `hw:auto_converge\u003dfalse`, we just add nothing to the"},{"line_number":79,"context_line":"placement request. Then we still can schedule an instance on a host with the"},{"line_number":80,"context_line":"features but we disable this two features for that instance."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"By default, when operator creates instance without any related metadata, the"},{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_a0d019f9","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":28},"updated":"2019-05-21 08:22:28.000000000","message":"s/this/these/","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":77,"context_line":"specified feature to the placement request. When"},{"line_number":78,"context_line":"`hw:post_copy\u003dfalse` and `hw:auto_converge\u003dfalse`, we just add nothing to the"},{"line_number":79,"context_line":"placement request. Then we still can schedule an instance on a host with the"},{"line_number":80,"context_line":"features but we disable this two features for that instance."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"By default, when operator creates instance without any related metadata, the"},{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_8fb620fa","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":28},"in_reply_to":"bfb3d3c7_a0d019f9","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":79,"context_line":"placement request. Then we still can schedule an instance on a host with the"},{"line_number":80,"context_line":"features but we disable this two features for that instance."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"By default, when operator creates instance without any related metadata, the"},{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."},{"line_number":84,"context_line":"If the configurations: ``live_migration_permit_auto_converge`` or"},{"line_number":85,"context_line":"``live_migration_permit_post_copy`` is True, then libvirt driver will prefer"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_202bc9eb","line":82,"range":{"start_line":82,"start_character":26,"end_line":82,"end_character":42},"updated":"2019-05-21 08:22:28.000000000","message":"\"creates an instance\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":79,"context_line":"placement request. Then we still can schedule an instance on a host with the"},{"line_number":80,"context_line":"features but we disable this two features for that instance."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"By default, when operator creates instance without any related metadata, the"},{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."},{"line_number":84,"context_line":"If the configurations: ``live_migration_permit_auto_converge`` or"},{"line_number":85,"context_line":"``live_migration_permit_post_copy`` is True, then libvirt driver will prefer"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_afb9a4e9","line":82,"range":{"start_line":82,"start_character":26,"end_line":82,"end_character":42},"in_reply_to":"bfb3d3c7_202bc9eb","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":80,"context_line":"features but we disable this two features for that instance."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"By default, when operator creates instance without any related metadata, the"},{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."},{"line_number":84,"context_line":"If the configurations: ``live_migration_permit_auto_converge`` or"},{"line_number":85,"context_line":"``live_migration_permit_post_copy`` is True, then libvirt driver will prefer"},{"line_number":86,"context_line":"to use auto-converge or post-copy. This can be easy used for operator"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_a03ed926","line":83,"range":{"start_line":83,"start_character":10,"end_line":83,"end_character":74},"updated":"2019-05-21 08:22:28.000000000","message":"Suggest: \"will not care whether the host supports auto-converge or post-copy\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"features but we disable this two features for that instance."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"By default, when operator creates instance without any related metadata, the"},{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."},{"line_number":84,"context_line":"If the configurations: ``live_migration_permit_auto_converge`` or"},{"line_number":85,"context_line":"``live_migration_permit_post_copy`` is True, then libvirt driver will prefer"},{"line_number":86,"context_line":"to use auto-converge or post-copy. This can be easy used for operator"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_6fcbac71","line":83,"range":{"start_line":83,"start_character":10,"end_line":83,"end_character":74},"in_reply_to":"bfb3d3c7_a03ed926","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."},{"line_number":84,"context_line":"If the configurations: ``live_migration_permit_auto_converge`` or"},{"line_number":85,"context_line":"``live_migration_permit_post_copy`` is True, then libvirt driver will prefer"},{"line_number":86,"context_line":"to use auto-converge or post-copy. This can be easy used for operator"},{"line_number":87,"context_line":"wants **all instances** using auto-converge/post-copy. For example:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* An instance that does not request related metadata was scheduled to a host"},{"line_number":90,"context_line":"  that enabled ``live_migration_permit_auto_converge`` or"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_201429a0","line":87,"range":{"start_line":86,"start_character":35,"end_line":87,"end_character":53},"updated":"2019-05-21 08:22:28.000000000","message":"Suggest: \"These can be used when operator wants **all instances** on a given compute node to use auto-converge/post-copy\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"scheduler will not care the host whether support auto-converge or post-copy."},{"line_number":84,"context_line":"If the configurations: ``live_migration_permit_auto_converge`` or"},{"line_number":85,"context_line":"``live_migration_permit_post_copy`` is True, then libvirt driver will prefer"},{"line_number":86,"context_line":"to use auto-converge or post-copy. This can be easy used for operator"},{"line_number":87,"context_line":"wants **all instances** using auto-converge/post-copy. For example:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* An instance that does not request related metadata was scheduled to a host"},{"line_number":90,"context_line":"  that enabled ``live_migration_permit_auto_converge`` or"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_efa47cbb","line":87,"range":{"start_line":86,"start_character":35,"end_line":87,"end_character":53},"in_reply_to":"bfb3d3c7_201429a0","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":86,"context_line":"to use auto-converge or post-copy. This can be easy used for operator"},{"line_number":87,"context_line":"wants **all instances** using auto-converge/post-copy. For example:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* An instance that does not request related metadata was scheduled to a host"},{"line_number":90,"context_line":"  that enabled ``live_migration_permit_auto_converge`` or"},{"line_number":91,"context_line":"  ``live_migration_permit_post_copy``, then libvirt will try to use"},{"line_number":92,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_207989fb","line":90,"range":{"start_line":89,"start_character":2,"end_line":90,"end_character":14},"updated":"2019-05-21 08:22:28.000000000","message":"Did you mean this?: \"If an instance that has not requested related metadata is scheduled to a host that enabled [...]\"\n\nIf so, suggest to rephrase it.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"to use auto-converge or post-copy. This can be easy used for operator"},{"line_number":87,"context_line":"wants **all instances** using auto-converge/post-copy. For example:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* An instance that does not request related metadata was scheduled to a host"},{"line_number":90,"context_line":"  that enabled ``live_migration_permit_auto_converge`` or"},{"line_number":91,"context_line":"  ``live_migration_permit_post_copy``, then libvirt will try to use"},{"line_number":92,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_afae8495","line":90,"range":{"start_line":89,"start_character":2,"end_line":90,"end_character":14},"in_reply_to":"bfb3d3c7_207989fb","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"88fef1947fd8002919d0483b97800ce714557b00","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  ``live_migration_permit_post_copy``, then libvirt will try to use"},{"line_number":92,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"If operator creates instance with `hw:auto_converge/hw:post_copy\u003dtrue/false`,"},{"line_number":95,"context_line":"these metadata will override the configurations:"},{"line_number":96,"context_line":"``live_migration_permit_auto_converge`` and"},{"line_number":97,"context_line":"``live_migration_permit_post_copy``."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_f6d79e4e","line":94,"updated":"2019-05-22 10:15:49.000000000","message":"OK for flavors. Not for image properties.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c677059043ae6319e53906e7e4730d104c9ad657","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  ``live_migration_permit_post_copy``, then libvirt will try to use"},{"line_number":92,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"If operator creates instance with `hw:auto_converge/hw:post_copy\u003dtrue/false`,"},{"line_number":95,"context_line":"these metadata will override the configurations:"},{"line_number":96,"context_line":"``live_migration_permit_auto_converge`` and"},{"line_number":97,"context_line":"``live_migration_permit_post_copy``."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_c9562d2b","line":94,"in_reply_to":"bfb3d3c7_d2f5b884","updated":"2019-05-28 07:25:28.000000000","message":"Do we have policy control on metadata?","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"598b9f9857f34e53ca50d32a6c0f8e7db81371f9","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  ``live_migration_permit_post_copy``, then libvirt will try to use"},{"line_number":92,"context_line":"  auto-converge or post-copy during live migration."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"If operator creates instance with `hw:auto_converge/hw:post_copy\u003dtrue/false`,"},{"line_number":95,"context_line":"these metadata will override the configurations:"},{"line_number":96,"context_line":"``live_migration_permit_auto_converge`` and"},{"line_number":97,"context_line":"``live_migration_permit_post_copy``."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_d2f5b884","line":94,"in_reply_to":"bfb3d3c7_f6d79e4e","updated":"2019-05-22 20:54:10.000000000","message":"Technically it all depends on policy, right? If I\u0027m a private cloud with lax policy so people can upload their own images, then whatever. If I\u0027m a single-tenant NFV MANO deployment, again, whatever. If I\u0027m a public cloud, sure you have a point. But it really depends on the policy.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":97,"context_line":"``live_migration_permit_post_copy``."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When `hw:auto_converge` and `hw:post_copy` are both true or flavor extra specs"},{"line_number":100,"context_line":"is conflict to image properties, the create api call will get an exception."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"When using auto-converge during live migration, if operator calls force"},{"line_number":103,"context_line":"complete API, libvirt will not be converted to use post-copy because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_e08291c8","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":74},"updated":"2019-05-21 08:22:28.000000000","message":"\"is in conflict with image properties, the \u0027create\u0027 API call will raise an exception\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5131bdf85751ad543a0aeb2057466c21a08aa9ce","unresolved":false,"context_lines":[{"line_number":97,"context_line":"``live_migration_permit_post_copy``."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When `hw:auto_converge` and `hw:post_copy` are both true or flavor extra specs"},{"line_number":100,"context_line":"is conflict to image properties, the create api call will get an exception."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"When using auto-converge during live migration, if operator calls force"},{"line_number":103,"context_line":"complete API, libvirt will not be converted to use post-copy because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_1b0c9239","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":74},"in_reply_to":"bfb3d3c7_322c5401","updated":"2019-05-27 11:35:16.000000000","message":"I was honestly thinking of a way to ask for a \"preferred\" trait, but let\u0027s just leave the above to be a policy.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"598b9f9857f34e53ca50d32a6c0f8e7db81371f9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"``live_migration_permit_post_copy``."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When `hw:auto_converge` and `hw:post_copy` are both true or flavor extra specs"},{"line_number":100,"context_line":"is conflict to image properties, the create api call will get an exception."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"When using auto-converge during live migration, if operator calls force"},{"line_number":103,"context_line":"complete API, libvirt will not be converted to use post-copy because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_322c5401","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":74},"in_reply_to":"bfb3d3c7_56d22a5e","updated":"2019-05-22 20:54:10.000000000","message":"\u003e Please, no. Like I said above, I\u0027d prefer to see the image props to\n \u003e be \"preffering\".\n\nHow would you do that outside of a new weigher?","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"88fef1947fd8002919d0483b97800ce714557b00","unresolved":false,"context_lines":[{"line_number":97,"context_line":"``live_migration_permit_post_copy``."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When `hw:auto_converge` and `hw:post_copy` are both true or flavor extra specs"},{"line_number":100,"context_line":"is conflict to image properties, the create api call will get an exception."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"When using auto-converge during live migration, if operator calls force"},{"line_number":103,"context_line":"complete API, libvirt will not be converted to use post-copy because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_56d22a5e","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":74},"in_reply_to":"bfb3d3c7_e08291c8","updated":"2019-05-22 10:15:49.000000000","message":"Please, no. Like I said above, I\u0027d prefer to see the image props to be \"preffering\".","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":104,"context_line":"required in flavor extra specs or image properties."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"According to this spec [3]_, if post-copy is enabled during live migration, the"},{"line_number":107,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":108,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_80739515","line":107,"range":{"start_line":107,"start_character":6,"end_line":107,"end_character":9},"updated":"2019-05-21 08:22:28.000000000","message":"Nit: s/api/API","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":104,"context_line":"required in flavor extra specs or image properties."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"According to this spec [3]_, if post-copy is enabled during live migration, the"},{"line_number":107,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":108,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_af87640f","line":107,"range":{"start_line":107,"start_character":6,"end_line":107,"end_character":9},"in_reply_to":"bfb3d3c7_80739515","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"According to this spec [3]_, if post-copy is enabled during live migration, the"},{"line_number":107,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":108,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_4067dd4e","line":108,"range":{"start_line":108,"start_character":11,"end_line":108,"end_character":14},"updated":"2019-05-21 08:22:28.000000000","message":"Here too: s/api/API/","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"According to this spec [3]_, if post-copy is enabled during live migration, the"},{"line_number":107,"context_line":"abort api call will be rejected by libvirt driver. Now we can reject the"},{"line_number":108,"context_line":"request in api by checking `hw:post_copy` properties."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_4f7ee819","line":108,"range":{"start_line":108,"start_character":11,"end_line":108,"end_character":14},"in_reply_to":"bfb3d3c7_4067dd4e","updated":"2019-05-27 01:42:11.000000000","message":"Done","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"If only use traits, there will be a case: The user doesn\u0027t want to use"},{"line_number":114,"context_line":"auto-converge or post-copy during live migration. If flavors and images don\u0027t"},{"line_number":115,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":116,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":117,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_e0d051cc","line":114,"range":{"start_line":113,"start_character":0,"end_line":114,"end_character":49},"updated":"2019-05-21 08:22:28.000000000","message":"I don\u0027t understand this sentence, please rephrase.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"846aabe0d306ba0855c6a40eb9fe590d7d67e2b5","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"If only use traits, there will be a case: The user doesn\u0027t want to use"},{"line_number":114,"context_line":"auto-converge or post-copy during live migration. If flavors and images don\u0027t"},{"line_number":115,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":116,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":117,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_af5f6470","line":114,"range":{"start_line":113,"start_character":0,"end_line":114,"end_character":49},"in_reply_to":"bfb3d3c7_e0d051cc","updated":"2019-05-27 01:42:11.000000000","message":"\u003e I don\u0027t understand this sentence, please rephrase.\n\nI\u0027ve rewriten the \u0027Alternatives\u0027 paragraph.","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":115,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":116,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":117,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":118,"context_line":"feature. If operator forbidden traits:"},{"line_number":119,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY\u003dforbidden`` or"},{"line_number":120,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY_CAPABILITY\u003dforbidden``, the instance"},{"line_number":121,"context_line":"will be scheduled to part of **all hosts**. But actually, live migration should"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_a0da59e6","line":118,"range":{"start_line":118,"start_character":9,"end_line":118,"end_character":37},"updated":"2019-05-21 08:22:28.000000000","message":"\"If operator \u0027forbids\u0027 traits\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":115,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":116,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":117,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":118,"context_line":"feature. If operator forbidden traits:"},{"line_number":119,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY\u003dforbidden`` or"},{"line_number":120,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY_CAPABILITY\u003dforbidden``, the instance"},{"line_number":121,"context_line":"will be scheduled to part of **all hosts**. But actually, live migration should"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_20c74915","line":118,"range":{"start_line":118,"start_character":0,"end_line":118,"end_character":7},"updated":"2019-05-21 08:22:28.000000000","message":"s/feature/features/","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e876d7861e8abd7073043870e9a6463d0f2f7580","unresolved":false,"context_lines":[{"line_number":117,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":118,"context_line":"feature. If operator forbidden traits:"},{"line_number":119,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE_CAPABILITY\u003dforbidden`` or"},{"line_number":120,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY_CAPABILITY\u003dforbidden``, the instance"},{"line_number":121,"context_line":"will be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":122,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bfb3d3c7_60e461ad","line":121,"range":{"start_line":120,"start_character":59,"end_line":121,"end_character":42},"updated":"2019-05-21 08:22:28.000000000","message":"\"the instance can be scheduled on any of the hosts\"","commit_id":"0d8ba04de99d4739e4c42b3845589cac771b7e7d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c0022ec5698cc43cfa79c493520fc388d2c91f75","unresolved":false,"context_lines":[{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_00bd73b6","line":22,"updated":"2019-06-04 12:05:42.000000000","message":"Here is an alternative proposal...\n\nLet\u0027s add the concept of something like:\n* migration_policy_avoid_reboot_risk\n* migration_policy_avoid_throttle_performance\n\nThis means:\n* first currently means \"disable post copy\"\n* second currently means \"disable auto converge\"\n* you have both, no post copy and no auto converge, this is where we instead would pause the VM when we hit the live-migration timeout to force the migration\n\nWould that work? It\u0027s really just a rename of the proposed image properties and flavor extra specs?\n\nIn the alternatives, I would love to note that in the future we could add things like:\n\n* migration_policy_pause (pause the VM right after starting the live-migration)\n* migration_policy_reboot (do a cold migration, i.e. shutdown then move)\n* migration_policy_shutdown (leave shutdown on destination after cold migration)","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"1fb866f3545490ed63ec3f37e51e021734b33884","unresolved":false,"context_lines":[{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_d175eb99","line":22,"in_reply_to":"9fb8cfa7_00bd73b6","updated":"2019-06-04 13:40:49.000000000","message":"\u003e Here is an alternative proposal...\n \u003e \n \u003e Let\u0027s add the concept of something like:\n \u003e * migration_policy_avoid_reboot_risk\n \u003e * migration_policy_avoid_throttle_performance\n \u003e \n \u003e This means:\n \u003e * first currently means \"disable post copy\"\n \u003e * second currently means \"disable auto converge\"\n \u003e * you have both, no post copy and no auto converge, this is where\n \u003e we instead would pause the VM when we hit the live-migration\n \u003e timeout to force the migration\n \u003e \n \u003e Would that work? It\u0027s really just a rename of the proposed image\n \u003e properties and flavor extra specs?\n\nA nice suggestion. Can I think that the two are equivalent to \u0027hw:auto_converge\u0027 and \u0027hw:post_copy\u0027 in the spec? Let me talk about my understanding:\n* If \u0027migration_policy_avoid_reboot_risk\u0027 set to true, *disable* post-copy during live-migration.\n* If \u0027migration_policy_avoid_reboot_risk\u0027 set to false, *enable* post-copy during live-migration.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ddb11825f90b97b4b8f86012f00870a20a18815","unresolved":false,"context_lines":[{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_11daa316","line":22,"in_reply_to":"9fb8cfa7_d175eb99","updated":"2019-06-04 14:19:11.000000000","message":"Ooops, I forgot about true/false..\n\nI think this is better:\n\nhw_live_migration_permit_reboot_risk: true/false\nhw_live_migration_permit_throttle_performance: true/false","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ddb11825f90b97b4b8f86012f00870a20a18815","unresolved":false,"context_lines":[{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* Some hosts in the cluster have auto converge or post copy enabled, the other"},{"line_number":28,"context_line":"  are not turned on. The operator wants to be consistent during live"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_91d0d3cb","line":25,"updated":"2019-06-04 14:19:11.000000000","message":"As background... I think we should only include in here things we know are needed, we shouldn\u0027t include things that just happen to work when we implement the feature.\n\nBased on our discussions there is a clear use cases around:\n\n* some applications do not want the risk of being rebooted due to a network failure during live-migration post copy, they would rather the VM is paused instead.\n\n* some applications are very performance sensitive, so do not want their performance throttled back by the auto converge feature, and would rather take the risks involved in post copy. Note: auto converge is generally only enabled instead of post copy when an operator is not happy with the reboot risk post copy introduces, and would rather users opt into the risk if they don\u0027t want to be throttled back\n\n* some applications would like to avoid the post copy risk and avoid having its performance throttled, i.e. they would prefer a longer pause of their VM to the alternatives.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ddb11825f90b97b4b8f86012f00870a20a18815","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* Some hosts in the cluster have auto converge or post copy enabled, the other"},{"line_number":28,"context_line":"  are not turned on. The operator wants to be consistent during live"},{"line_number":29,"context_line":"  migration, that is, the application can guarantee to use/not use auto"},{"line_number":30,"context_line":"  converge or post copy."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* For some applications sensitive to performance reduced, the user wants to"},{"line_number":33,"context_line":"  always enable auto converge or post copy."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_31e1e79b","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":24},"updated":"2019-06-04 14:19:11.000000000","message":"I don\u0027t really believe this is a real use case, or at least, I don\u0027t understand it from what is written here.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"0e40fe3b6dd4060db43c421e2ae20b7236e61006","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* Some hosts in the cluster have auto converge or post copy enabled, the other"},{"line_number":28,"context_line":"  are not turned on. The operator wants to be consistent during live"},{"line_number":29,"context_line":"  migration, that is, the application can guarantee to use/not use auto"},{"line_number":30,"context_line":"  converge or post copy."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* For some applications sensitive to performance reduced, the user wants to"},{"line_number":33,"context_line":"  always enable auto converge or post copy."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_78abbf1c","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":24},"in_reply_to":"9fb8cfa7_31e1e79b","updated":"2019-06-04 16:09:27.000000000","message":"\u003e I don\u0027t really believe this is a real use case, or at least, I\n \u003e don\u0027t understand it from what is written here.\n\nYes，the deployer and admin should ensure it not happen. Will remove after update.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"df5e411ff5b6ba9c78a8b0e6c4ae1d68fed944b2","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Introduce two new flavor extra specs:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":69,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bfb3d3c7_d1e208a0","line":68,"updated":"2019-05-31 11:11:41.000000000","message":"In the past, I think we decided this was too hypervisor specific to expose via the API like this.\n\nFor this reason we came up with \"force complete\" as a term for \"post copy\":\nhttps://specs.openstack.org/openstack/nova-specs/specs/pike/approved/live-migration-force-after-timeout.html","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"96eae9f39c78578b7075dd8a7c81ecb39596778f","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Introduce two new flavor extra specs:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"*  hw:auto_converge\u003dtrue/false"},{"line_number":69,"context_line":"*  hw:post_copy\u003dtrue/false"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_62e31707","line":68,"in_reply_to":"bfb3d3c7_d1e208a0","updated":"2019-06-04 09:47:56.000000000","message":"\u003e In the past, I think we decided this was too hypervisor specific to\n \u003e expose via the API like this.\n \u003e \n \u003e For this reason we came up with \"force complete\" as a term for\n \u003e \"post copy\":\n \u003e https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/live-migration-force-after-timeout.html\n\nYes, and if the compute host not enable post-copy, the libvirt driver will pause the vm.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a049f9c75228235d990d9ec568f588666caa3e","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":74,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":77,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bfb3d3c7_74230aa8","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":25},"updated":"2019-05-31 11:32:50.000000000","message":"I think my preference here is something like a \"living will\" relating to a specific application.\n\nThis is the prior art here:\nhttps://cloud.google.com/sdk/gcloud/reference/compute/instances/create#--maintenance-policy\nhttps://cloud.google.com/sdk/gcloud/reference/compute/instances/simulate-maintenance-event\n\nSomething like, when you have to move me please do one of the following:\n\n* Terminate me rather than move me\n* Migrate me, rather than live-migrate me\n* Force Live-migrate me, pause me a bit longer rather than slow me down\n* Live-migrate me, slow me down a bit rather than pause me\n\nReally this is a per server preference, but it could inherit from the image. It doesn\u0027t really seem like something that goes on the flavor to me.\n\nIt is really then an implementation detail how this preference is respected. For QEMU we can talk about post copy, vs force, vs auto converge.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0818832d9cae9cbed336891234b1d0eeb797dd00","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":74,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":77,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_25c20935","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":25},"in_reply_to":"9fb8cfa7_02bfbbfb","updated":"2019-06-04 10:42:54.000000000","message":"ah... I am miss-understanding your use case.\n\nI am wondering *why* some of your workload prefere auto converge vs post copy.\n\nI think the workload should describe what it wants to Nova, and nova chooses the implementation.\n\nIn the future we may have something better than auto converge and post copy, which might better supply what the workload needs.\n\nMaybe the workload is trying to say:\n* try not to pause me, keep me running\n* pause me rather than slow me down\n* something else?","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"729ca5e9454955da41219d6ca7812d10aaccce04","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":74,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":77,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_60946f45","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":25},"in_reply_to":"9fb8cfa7_05fd8539","updated":"2019-06-04 11:30:38.000000000","message":"\u003e Its worth noting this study:\n \u003e https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/\n \u003e \n \u003e It suggests we should always use post copy instead of auto\n \u003e converge.\n \u003e \n \u003e I think the question is, if your system supports post copy, why\n \u003e would you not use it and disable auto converge for all guests?\n\nAuto-converge will slow down CPU and memory I/O until live-migration done.\nPost-copy will boot a new vm on destination compute node, and remote access the source vm\u0027s memory, migrate all memory to destination vm. The danger is that if the network between the two compute nodes is broken, then both vm will be error.\nSo it\u0027s configurable.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"26ddeb1f1c62f229aa0d196536b576f87c866d7d","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":74,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":77,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_05fd8539","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":25},"in_reply_to":"9fb8cfa7_25c20935","updated":"2019-06-04 10:56:26.000000000","message":"Its worth noting this study:\nhttps://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/\n\nIt suggests we should always use post copy instead of auto converge.\n\nI think the question is, if your system supports post copy, why would you not use it and disable auto converge for all guests?","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c0022ec5698cc43cfa79c493520fc388d2c91f75","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":74,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":77,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_20daf716","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":25},"in_reply_to":"9fb8cfa7_60946f45","updated":"2019-06-04 12:05:42.000000000","message":"Ah, I forgot about the VM needing to reboot if you lose network connectivity with Post Copy...","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"96eae9f39c78578b7075dd8a7c81ecb39596778f","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"And introduce two new image properties:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* hw_auto_converge\u003dtrue/false"},{"line_number":74,"context_line":"* hw_post_copy\u003dtrue/false"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":77,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_02bfbbfb","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":25},"in_reply_to":"bfb3d3c7_74230aa8","updated":"2019-06-04 09:47:56.000000000","message":"\u003e I think my preference here is something like a \"living will\"\n \u003e relating to a specific application.\n\nA nice suggestion. \n\n \u003e \n \u003e This is the prior art here:\n \u003e https://cloud.google.com/sdk/gcloud/reference/compute/instances/create#--maintenance-policy\n \u003e https://cloud.google.com/sdk/gcloud/reference/compute/instances/simulate-maintenance-event\n \u003e \n \u003e Something like, when you have to move me please do one of the\n \u003e following:\n \u003e \n \u003e * Terminate me rather than move me\n \u003e * Migrate me, rather than live-migrate me\n \u003e * Force Live-migrate me, pause me a bit longer rather than slow me\n \u003e down\n \u003e * Live-migrate me, slow me down a bit rather than pause me\n \u003e \n \u003e Really this is a per server preference, but it could inherit from\n \u003e the image. It doesn\u0027t really seem like something that goes on the\n \u003e flavor to me.\n \u003e \n\nThese seem like workflow and both include migration and live-migration. Need a long time to discuss.\n\n \u003e It is really then an implementation detail how this preference is\n \u003e respected. For QEMU we can talk about post copy, vs force, vs auto\n \u003e converge.\n\nForce-complete is inherited from the original logic, the only change is the instance flavor/image properties will be prioritized.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a049f9c75228235d990d9ec568f588666caa3e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":136,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":137,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Data model impact"},{"line_number":140,"context_line":"-----------------"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"bfb3d3c7_51b6188c","line":138,"updated":"2019-05-31 11:32:50.000000000","message":"This is my preferred solution (it was never fully implemented):\nhttps://specs.openstack.org/openstack/nova-specs/specs/pike/approved/live-migration-per-instance-timeout.html\n\nIs there a reason it doesn\u0027t meet the needs of these use cases? The thinking is focusing on the fact its the operator that is likely aware that the VM is proving hard to live migrate.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"96eae9f39c78578b7075dd8a7c81ecb39596778f","unresolved":false,"context_lines":[{"line_number":135,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":136,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":137,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Data model impact"},{"line_number":140,"context_line":"-----------------"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_e29f07b2","line":138,"in_reply_to":"bfb3d3c7_51b6188c","updated":"2019-06-04 09:47:56.000000000","message":"\u003e This is my preferred solution (it was never fully implemented):\n \u003e https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/live-migration-per-instance-timeout.html\n \u003e \n \u003e Is there a reason it doesn\u0027t meet the needs of these use cases? The\n \u003e thinking is focusing on the fact its the operator that is likely\n \u003e aware that the VM is proving hard to live migrate.\n\nThe problems that spec \u0027live-migration-per-instance-timeout\u0027 wants to solve is: control long time live migration, auto execute force-complete/abort. The usage of auto-converge/post-copy are still controlled by compute node.\n\nThe problems this spec wants to solve is: control the usage of auto-converge/post-copy both by flavor/image properties and compute node.\n\nThe two specs are compatible. The user can set the flavor/image properties to control use/not use auto-converge or post-copy during live-migration, and set a timeout to execute force-complete/abort.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"787bd7ffe82694da4d306737940182ef087a404d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":136,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":137,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Data model impact"},{"line_number":140,"context_line":"-----------------"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_87a987e0","line":138,"in_reply_to":"bfb3d3c7_51b6188c","updated":"2019-06-03 20:18:17.000000000","message":"That spec was re-proposed for Stein:\n\nhttps://review.opendev.org/#/c/600613/\n\nIt was stuck a bit in committee which I tried to resolve in the ML:\n\nhttp://lists.openstack.org/pipermail/openstack-discuss/2018-December/001112.html\n\nI think there was general agreement but it just didn\u0027t move forward and was abandoned.","commit_id":"254d52503ffdb38dde860ac8b607bcce6bce4de4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced(some scientific computing applications may be more sensitive to memory"},{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_8d8b611d","line":22,"range":{"start_line":16,"start_character":0,"end_line":22,"end_character":10},"updated":"2019-06-11 13:15:05.000000000","message":"one posible downside to disabling autoconverge and or post copy is that it may not be posible to migrate these instances at all. e.g. without autoconverge any application that is dirtying memroy faster then libvirt can copy to the remote host will never migrate. as such we need to ensure it is clear to the operator that a specific migration is using the api values instead of teh config values when they are debugging the migration.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced(some scientific computing applications may be more sensitive to memory"},{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_9c18701e","line":22,"range":{"start_line":16,"start_character":0,"end_line":22,"end_character":10},"in_reply_to":"9fb8cfa7_8d8b611d","updated":"2019-06-11 14:06:56.000000000","message":"\u003e one posible downside to disabling autoconverge and or post copy is\n \u003e that it may not be posible to migrate these instances at all. e.g.\n \u003e without autoconverge any application that is dirtying memroy faster\n \u003e then libvirt can copy to the remote host will never migrate. as\n \u003e such we need to ensure it is clear to the operator that a specific\n \u003e migration is using the api values instead of teh config values when\n \u003e they are debugging the migration.\n\nIn this case, the  operator can call \u0027force-complete\u0027 to complete the live-migration.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c68bb84a4cde69e90d5607015af0ca64f821dfd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced(some scientific computing applications may be more sensitive to memory"},{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_dccca86b","line":22,"range":{"start_line":16,"start_character":0,"end_line":22,"end_character":10},"in_reply_to":"9fb8cfa7_9c18701e","updated":"2019-06-11 14:36:16.000000000","message":"yes that is an option but if they do that then they are overriding the preference stated in the vm.\n\nwhich is valid for the admin to do it just more impactful on the guest sla/operation then auto converge would have been.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Now auto converge and post copy can only be enabled/disabled via configuration,"},{"line_number":17,"context_line":"which is somewhat inflexible. If an application sensitive to performance"},{"line_number":18,"context_line":"reduced(some scientific computing applications may be more sensitive to memory"},{"line_number":19,"context_line":"access latency) and it is on a host with these options enabled, then live"},{"line_number":20,"context_line":"migration may cause the application to raise error. Therefore, the user wants"},{"line_number":21,"context_line":"to control whether to enable/disable auto converge or post copy during live"},{"line_number":22,"context_line":"migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_d780dff7","line":22,"range":{"start_line":16,"start_character":0,"end_line":22,"end_character":10},"in_reply_to":"9fb8cfa7_dccca86b","updated":"2019-06-13 03:52:27.000000000","message":"Yes, you\u0027re right. But for now, it\u0027s the only way to force complete live-migraion. And user/admin should know the risk when they must use force-complete.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  failure or memory page access failure increase during post-copy"},{"line_number":29,"context_line":"  live-migration."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Some applications are performance sensitive(such as some scientific computing"},{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_0da451a5","line":33,"range":{"start_line":31,"start_character":0,"end_line":33,"end_character":58},"updated":"2019-06-11 13:15:05.000000000","message":"this class of application may be unsusceptible for live migration entirely.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_cdc2b934","line":35,"range":{"start_line":35,"start_character":44,"end_line":35,"end_character":55},"updated":"2019-06-11 13:15:05.000000000","message":"? can you expand on this.\n\na reboot should never happen as part of a live migration even with postcopy and autoconverge enabled.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c68bb84a4cde69e90d5607015af0ca64f821dfd","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_7c957c32","line":35,"range":{"start_line":35,"start_character":44,"end_line":35,"end_character":55},"in_reply_to":"9fb8cfa7_0823df57","updated":"2019-06-11 14:36:16.000000000","message":"yes that will happen but it should be documented in the spec.if that is what you intend to convay.\n\nif you guest uses shared storage and you have a network issue between your compute node and storage pool your vms would also break so it feels strange to call this out in the live migration case. im not entirly agiant it but i do not like the focus on it being a risk rather then a feature.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_fc8628b9","line":35,"range":{"start_line":35,"start_character":44,"end_line":35,"end_character":55},"in_reply_to":"9fb8cfa7_7c957c32","updated":"2019-06-13 03:52:27.000000000","message":"\u003e yes that will happen but it should be documented in the spec.if\n \u003e that is what you intend to convay.\n \u003e \n \u003e if you guest uses shared storage and you have a network issue\n \u003e between your compute node and storage pool your vms would also\n \u003e break so it feels strange to call this out in the live migration\n \u003e case. im not entirly agiant it but i do not like the focus on it\n \u003e being a risk rather then a feature.\n\nI\u0027ll add them in next update.\nIn some case, the shared storage network and mgmt network are independent. Yes, the vms will unavailable when shared sotrage network have some issues. But this problem will not be considered in the spec.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"aad59342adbd58b04e7f1ce49a72dd9945ab1003","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_9f74e237","line":35,"range":{"start_line":35,"start_character":44,"end_line":35,"end_character":55},"in_reply_to":"9fb8cfa7_7c957c32","updated":"2019-06-11 15:07:27.000000000","message":"Some people worry more than others about this.  The risk period is short (because a postcopy should complete in finite amount of time rather than iterating) and the only increase is that during the postcopy period itself (not the whole migration) if *either* host had a problem then you\u0027d enter an error.  That\u0027s slightly worse than a precopy, in that you only land in error if the source host fails.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_5c66542c","line":35,"range":{"start_line":35,"start_character":44,"end_line":35,"end_character":55},"in_reply_to":"9fb8cfa7_9f74e237","updated":"2019-06-13 03:52:27.000000000","message":"\u003e Some people worry more than others about this.  The risk period is\n \u003e short (because a postcopy should complete in finite amount of time\n \u003e rather than iterating) and the only increase is that during the\n \u003e postcopy period itself (not the whole migration) if *either* host\n \u003e had a problem then you\u0027d enter an error.  That\u0027s slightly worse\n \u003e than a precopy, in that you only land in error if the source host\n \u003e fails.\n\nYes. Therefore, user can set the flavor/image properties to control enable/disable the feature. If user don\u0027t want to use post-copy, they can set the releate property to \u0027False\u0027.(Or don\u0027t set the property, and set the nova\u0027s configuration: \u0027live_migration_permit_post_copy\u0027 to \u0027False.)","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  applications), therefore the applications do not want performance throttled"},{"line_number":33,"context_line":"  back by the auto-converge feature during live-migration."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Some applications would like to avoid the reboot risk and performance"},{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_0823df57","line":35,"range":{"start_line":35,"start_character":44,"end_line":35,"end_character":55},"in_reply_to":"9fb8cfa7_cdc2b934","updated":"2019-06-11 14:06:56.000000000","message":"I did not describe it in detail. If the network between two compute nodes is interrupted during post-copy live-migration. The instance will be in the _error_ state and the user needs to reboot instance.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  throttled. Therefore these applications do not want use both features during"},{"line_number":37,"context_line":"  live-migration."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* For the above problems, the operator wants to control whether a single"},{"line_number":40,"context_line":"  instance enables auto converge or post copy during live migration. But now"},{"line_number":41,"context_line":"  the minimum unit that can be controlled is the compute node."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Proposed change"},{"line_number":44,"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":11,"id":"9fb8cfa7_4de489e0","line":41,"range":{"start_line":39,"start_character":2,"end_line":41,"end_character":62},"updated":"2019-06-11 13:15:05.000000000","message":"nit: that seams reasonable although the above are technically not a usecases they are problem descritiongs and the use case is simply as an operator i wish to be able to specify live migration paramters per instance for auto converge and post copy.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":57,"context_line":"``live_migration_permit_post_copy`` can only affect the hypervisor by"},{"line_number":58,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":61,"context_line":"the feature) we propose to define two new traits. The traits are reported by"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_ed421dab","line":58,"range":{"start_line":58,"start_character":33,"end_line":58,"end_character":39},"updated":"2019-06-11 13:15:05.000000000","message":"traits cannot be used for confguration.\n\nthey can only be used for schduling to a host that supports feature x they are not used to activate feature x on an instance.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The configurations: ``live_migration_permit_auto_converge`` and"},{"line_number":57,"context_line":"``live_migration_permit_post_copy`` can only affect the hypervisor by"},{"line_number":58,"context_line":"modifying the configuration, but traits can affect a single instance."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"In order to request the feature (scheduling instance to nodes that provide"},{"line_number":61,"context_line":"the feature) we propose to define two new traits. The traits are reported by"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_a83733ff","line":58,"range":{"start_line":58,"start_character":33,"end_line":58,"end_character":39},"in_reply_to":"9fb8cfa7_ed421dab","updated":"2019-06-11 14:06:56.000000000","message":"\u003e traits cannot be used for confguration.\n \u003e \n \u003e they can only be used for schduling to a host that supports feature\n \u003e x they are not used to activate feature x on an instance.\n\nYes, we control enable/disable features via properties. Therefore, we need to add a translation from properties to traits inside nova.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_ad68a51c","line":69,"range":{"start_line":69,"start_character":3,"end_line":69,"end_character":48},"updated":"2019-06-11 13:15:05.000000000","message":"this is the image metadata syntax.\n\nflavor extraspecs are namespaced with a \":\"\n\ni would suggest\ncompute:live_migration_auto_converge\u003dtrue/false\n\nthis is not a hardware feature so we should not use the hw namespace.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_1c0c80ea","line":69,"range":{"start_line":69,"start_character":3,"end_line":69,"end_character":48},"in_reply_to":"9fb8cfa7_ad68a51c","updated":"2019-06-11 14:06:56.000000000","message":"Ah, this is a good name.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_6d85cdce","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":39},"updated":"2019-06-11 13:15:05.000000000","message":"what does this map too?\n\npost-copy and auto converge do not preform a reboot.\n\ni think this should be removed unless you can point to documentation of how there is a reboot risk.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c68bb84a4cde69e90d5607015af0ca64f821dfd","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_dc56e85c","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":39},"in_reply_to":"9fb8cfa7_087f5f15","updated":"2019-06-11 14:36:16.000000000","message":"maybe we could call this \"compute:live_migration_remote_execution\"\nor just \"compute:live_migration_post_copy\"\n\nas i said above if you are using shared storage if there is a network partion there is a similar risk that the vms will need to be rebooted when the network is restored so this \n\ncompute:live_migration_permit_reboot_risk feel a bit strange to me.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_77efb31d","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":39},"in_reply_to":"9fb8cfa7_3fb856e3","updated":"2019-06-13 03:52:27.000000000","message":"\u003e Yes, it makes more sense to have it as permit_post_copy etc\n \u003e (An interesting question is then how you decide whether to use auto\n \u003e converge or postcopy for any one migration).\n\nThe logic was described as below. If \u0027post-copy\u0027 enabled, then will use it during live-migration; if \u0027auto-converge\u0027 enabled and \u0027post-copy\u0027 disabled, then will use \u0027auto-converge\u0027 during live-migration.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_087f5f15","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":39},"in_reply_to":"9fb8cfa7_6d85cdce","updated":"2019-06-11 14:06:56.000000000","message":"This should map to post-copy.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_f7ac03ee","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":39},"in_reply_to":"9fb8cfa7_dc56e85c","updated":"2019-06-13 03:52:27.000000000","message":"\u003e maybe we could call this \"compute:live_migration_remote_execution\"\n \u003e or just \"compute:live_migration_post_copy\"\n \u003e \n \u003e as i said above if you are using shared storage if there is a\n \u003e network partion there is a similar risk that the vms will need to\n \u003e be rebooted when the network is restored so this\n \u003e \n \u003e compute:live_migration_permit_reboot_risk feel a bit strange to me.\n\nI\u0027d prefer \"compute:live_migration_remote_execution\", use a mapped name would be more better.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"aad59342adbd58b04e7f1ce49a72dd9945ab1003","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Introduce two new flavor extra specs:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_3fb856e3","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":39},"in_reply_to":"9fb8cfa7_dc56e85c","updated":"2019-06-11 15:07:27.000000000","message":"Yes, it makes more sense to have it as permit_post_copy etc\n(An interesting question is then how you decide whether to use auto converge or postcopy for any one migration).","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_edde9dd8","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":39},"updated":"2019-06-11 13:15:05.000000000","message":"live migration is an admin only operation but images can be uploaded by no privaldaged users and they can set metadta by default so im not sure we want to allow users to set this on there images. that said i understand teh desire to allow vnf vendors to package this with there vnf images so that it gets applied to all instance of the vnf automatically.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c68bb84a4cde69e90d5607015af0ca64f821dfd","unresolved":false,"context_lines":[{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_fc3c0c30","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":39},"in_reply_to":"9fb8cfa7_68e93bb5","updated":"2019-06-11 14:36:16.000000000","message":"ya that is true i just wanted to call out the default behavior. its likely fine","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_68e93bb5","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":39},"in_reply_to":"9fb8cfa7_edde9dd8","updated":"2019-06-11 14:06:56.000000000","message":"\u003e live migration is an admin only operation but images can be\n \u003e uploaded by no privaldaged users and they can set metadta by\n \u003e default so im not sure we want to allow users to set this on there\n \u003e images. that said i understand teh desire to allow vnf vendors to\n \u003e package this with there vnf images so that it gets applied to all\n \u003e instance of the vnf automatically.\n\nYes, this is a risk. But admin can set policy to limit the user\u0027s permission.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"*  hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":70,"context_line":"*  hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_57ecef28","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":39},"in_reply_to":"9fb8cfa7_fc3c0c30","updated":"2019-06-13 03:52:27.000000000","message":"\u003e ya that is true i just wanted to call out the default behavior. its\n \u003e likely fine\n\nBy default, user can update image\u0027s properties. But the default policy can be changed when deploy.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Use these properties, instead of asking the operator to set the"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_8df1216e","line":74,"range":{"start_line":74,"start_character":2,"end_line":74,"end_character":47},"updated":"2019-06-11 13:15:05.000000000","message":"compute_live_migration_auto_converge","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":78,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_6d5e2d77","line":75,"range":{"start_line":75,"start_character":1,"end_line":75,"end_character":49},"updated":"2019-06-11 13:15:05.000000000","message":"i would drop this.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":72,"context_line":"And introduce two new image properties:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* hw_live_migration_permit_throttle_performance\u003dtrue/false"},{"line_number":75,"context_line":"* hw_live_migration_permit_reboot_risk\u003dtrue/false"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Use these properties, instead of asking the operator to set the"},{"line_number":78,"context_line":"\u0027required\u0027/\u0027forbidden\u0027 on the traits. Before calling the placement, when"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_88902f45","line":75,"range":{"start_line":75,"start_character":1,"end_line":75,"end_character":49},"in_reply_to":"9fb8cfa7_6d5e2d77","updated":"2019-06-11 14:06:56.000000000","message":"\u003e i would drop this.\n\nSame to above, this is also map to post-copy","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":104,"context_line":"``live_migration_permit_auto_converge`` or"},{"line_number":105,"context_line":"``live_migration_permit_post_copy``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"When ``hw_live_migration_permit_throttle_performance`` and"},{"line_number":108,"context_line":"``hw_live_migration_permit_reboot_risk`` are both true or flavor extra specs"},{"line_number":109,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":110,"context_line":"exception."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_ed8c5dd8","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":55},"updated":"2019-06-11 13:15:05.000000000","message":"why would you raise an exception if these were both true.\n\nyou have not defined what either of these do so please intoduced a defintion of both before defining there interaction","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"``live_migration_permit_auto_converge`` or"},{"line_number":105,"context_line":"``live_migration_permit_post_copy``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"When ``hw_live_migration_permit_throttle_performance`` and"},{"line_number":108,"context_line":"``hw_live_migration_permit_reboot_risk`` are both true or flavor extra specs"},{"line_number":109,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":110,"context_line":"exception."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_17aaf783","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":55},"in_reply_to":"9fb8cfa7_9ce1509e","updated":"2019-06-13 03:52:27.000000000","message":"\u003e is this a libvirt limitation or a nova one.\n \u003e \n \u003e if its a nova one is there a reason not to allow both?\n \u003e \n \u003e if libvirt will only use one or the other then thats fine.\n\nLibvirt limit only one feature can be enabled during live-migration.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c68bb84a4cde69e90d5607015af0ca64f821dfd","unresolved":false,"context_lines":[{"line_number":104,"context_line":"``live_migration_permit_auto_converge`` or"},{"line_number":105,"context_line":"``live_migration_permit_post_copy``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"When ``hw_live_migration_permit_throttle_performance`` and"},{"line_number":108,"context_line":"``hw_live_migration_permit_reboot_risk`` are both true or flavor extra specs"},{"line_number":109,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":110,"context_line":"exception."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_9ce1509e","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":55},"in_reply_to":"9fb8cfa7_bc4e9435","updated":"2019-06-11 14:36:16.000000000","message":"is this a libvirt limitation or a nova one.\n\nif its a nova one is there a reason not to allow both?\n\nif libvirt will only use one or the other then thats fine.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":104,"context_line":"``live_migration_permit_auto_converge`` or"},{"line_number":105,"context_line":"``live_migration_permit_post_copy``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"When ``hw_live_migration_permit_throttle_performance`` and"},{"line_number":108,"context_line":"``hw_live_migration_permit_reboot_risk`` are both true or flavor extra specs"},{"line_number":109,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":110,"context_line":"exception."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_bc4e9435","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":55},"in_reply_to":"9fb8cfa7_ed8c5dd8","updated":"2019-06-11 14:06:56.000000000","message":"\u003e why would you raise an exception if these were both true.\n \u003e \n \u003e you have not defined what either of these do so please intoduced a\n \u003e defintion of both before defining there interaction\n\nThe existing logic is: If both are configured to be True, the only post-copy will be used.\nThe current modification is because the original method may be confusing to the user, both of them are True but only use one feature.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":105,"context_line":"``live_migration_permit_post_copy``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"When ``hw_live_migration_permit_throttle_performance`` and"},{"line_number":108,"context_line":"``hw_live_migration_permit_reboot_risk`` are both true or flavor extra specs"},{"line_number":109,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":110,"context_line":"exception."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"When using auto-converge during live migration, if operator calls force"},{"line_number":113,"context_line":"complete API, libvirt will not be converted to use post-copy because it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_6d6f0dfc","line":110,"range":{"start_line":108,"start_character":58,"end_line":110,"end_character":10},"updated":"2019-06-11 13:15:05.000000000","message":"+1\n\nyes we should always hard error if the flavor and image are in conflict","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a2cb6937cf36d385ebb856c8be0d0a0b0408fb","unresolved":false,"context_lines":[{"line_number":141,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":142,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":143,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Data model impact"},{"line_number":146,"context_line":"-----------------"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_6d486d86","line":144,"updated":"2019-06-11 13:15:05.000000000","message":"personally i would not add flavor extra specs or image metadata and instead allwo you to specify if post copy or auto converge canb be enabled on the api call.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c68bb84a4cde69e90d5607015af0ca64f821dfd","unresolved":false,"context_lines":[{"line_number":141,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":142,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":143,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Data model impact"},{"line_number":146,"context_line":"-----------------"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_ff107e50","line":144,"in_reply_to":"9fb8cfa7_685e1b77","updated":"2019-06-11 14:36:16.000000000","message":"unique features yes should generally not be exposed in the api if they can only be supported by one hyperviors\n\n\ni expect that at least xen server would also be able to supprot this and i would be surprised if vmware did not have this capablity but since only the libvirt driver in openstack currently has these tweeks i guess we cant expose it at the api level directly.\n\nthe flavor and image properties are still exposeing it at the api just in an indirect way.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"9b5931280958ac7056c8f84c17eb776e93001b76","unresolved":false,"context_lines":[{"line_number":141,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":142,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":143,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Data model impact"},{"line_number":146,"context_line":"-----------------"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_685e1b77","line":144,"in_reply_to":"9fb8cfa7_6d486d86","updated":"2019-06-11 14:06:56.000000000","message":"I submitted a spec[1] earlier, in that spec I described how to expose these features in the API.\nBut it\u0027s not a good idea to expose the unique features of the virt driver in API.\n\n[1] https://review.opendev.org/#/c/648619/","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"26f8912b9b816f199947c90943d68b27f486d79d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":142,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":143,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Data model impact"},{"line_number":146,"context_line":"-----------------"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9fb8cfa7_970107b2","line":144,"in_reply_to":"9fb8cfa7_ff107e50","updated":"2019-06-13 03:52:27.000000000","message":"\u003e unique features yes should generally not be exposed in the api if\n \u003e they can only be supported by one hyperviors\n \u003e \n \u003e \n \u003e i expect that at least xen server would also be able to supprot\n \u003e this and i would be surprised if vmware did not have this capablity\n \u003e but since only the libvirt driver in openstack currently has these\n \u003e tweeks i guess we cant expose it at the api level directly.\n \u003e \n \u003e the flavor and image properties are still exposeing it at the api\n \u003e just in an indirect way.\n\nI\u0027m not find any related documents to show xen/vmware support similar features.","commit_id":"e3d4937f1939a6a2bd9117863d0eb22ae167e2b9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"12f57bde1b34986cf6cc254abedd0bd6516fba16","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Introduce two new flavor extra specs:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``compute:live_migration_auto_converge\u003dtrue/false``"},{"line_number":73,"context_line":"* ``compute:live_migration_remote_execution\u003dtrue/false``"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"And introduce two new image properties:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_08576ccc","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":43},"updated":"2019-06-25 21:49:50.000000000","message":"This is probably covered somewhere in the history - or maybe it\u0027s obvious to other readers - but why is this called ``remote_execution`` and not ``post_copy``? If it\u0027s not going to match the corresponding config, I\u0027d like to know why. (Or maybe it doesn\u0027t correspond to the post_copy config, which also warrants an explanation.)","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"ed7c8679530b47fcfaa7b63ba49ed29b8a4860c7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Introduce two new flavor extra specs:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``compute:live_migration_auto_converge\u003dtrue/false``"},{"line_number":73,"context_line":"* ``compute:live_migration_remote_execution\u003dtrue/false``"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"And introduce two new image properties:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_692b0b30","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":43},"in_reply_to":"7faddb67_465ac72a","updated":"2019-07-23 06:24:27.000000000","message":"Done","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e176da8388cdca7e1d6ac151c615d50026e55eb4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Introduce two new flavor extra specs:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``compute:live_migration_auto_converge\u003dtrue/false``"},{"line_number":73,"context_line":"* ``compute:live_migration_remote_execution\u003dtrue/false``"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"And introduce two new image properties:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_465ac72a","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":43},"in_reply_to":"7faddb67_8d654248","updated":"2019-07-22 14:22:07.000000000","message":"i suggested remote_exectuion to allow for an equivalent\nfeature in vmware or hyperv but im not aware of either exposing this. \n\nreading https://blogs.vmware.com/vsphere/2019/07/the-vmotion-process-under-the-hood.html it appears that vmotion does not support a post-copy like functionality which would agree with the vmotion datasheet https://www.vmware.com/pdf/vmotion_datasheet.pdf\n\ngive that the blog and acadmeic litrature use the terms pre-copy and post-copy to discibe the different approch i think\npost_copy could be considered generic so i would be fine with changing this back to compute:live_migration_post_copy","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8f3ae4b505594e2fd3770b27bdea87cb42bb5630","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Introduce two new flavor extra specs:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``compute:live_migration_auto_converge\u003dtrue/false``"},{"line_number":73,"context_line":"* ``compute:live_migration_remote_execution\u003dtrue/false``"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"And introduce two new image properties:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_d4cc7436","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":43},"in_reply_to":"9fb8cfa7_08576ccc","updated":"2019-06-27 06:40:25.000000000","message":"I\u0027m always not sure the name. :) Is there any virt driver have same tech and named other post_copy?","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"e23345fe51942cbe0e552233108918a9c771ff29","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Introduce two new flavor extra specs:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``compute:live_migration_auto_converge\u003dtrue/false``"},{"line_number":73,"context_line":"* ``compute:live_migration_remote_execution\u003dtrue/false``"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"And introduce two new image properties:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_8d654248","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":43},"in_reply_to":"9fb8cfa7_08576ccc","updated":"2019-07-22 13:02:19.000000000","message":"It\u0027s a mapping which means post_copy. Now i think post_copy might be a good name, it can show the function of this property directly.","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"12f57bde1b34986cf6cc254abedd0bd6516fba16","unresolved":false,"context_lines":[{"line_number":84,"context_line":"for the corresponding feature to the placement request. When"},{"line_number":85,"context_line":"``compute:live_migration_auto_converge\u003dfalse`` and"},{"line_number":86,"context_line":"``compute:live_migration_remote_execution\u003dfalse``, we just add nothing to"},{"line_number":87,"context_line":"the placement request. Thus we still can schedule an instance on a host with"},{"line_number":88,"context_line":"the features but we disable these two features for that instance."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"By default, when the operator creates an instance without any related metadata,"},{"line_number":91,"context_line":"the scheduler will not care whether the host supports auto-converge or"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_48d48420","line":88,"range":{"start_line":87,"start_character":41,"end_line":88,"end_character":65},"updated":"2019-06-25 21:49:50.000000000","message":"So to be clear:\n- We use these keys in the scheduler to optionally add required traits to ensure that the instance can land on a host that\u0027s capable of the requested behavior;\n- The libvirt driver will then interpret the values separately to decide whether to use the features during live migration.\n\nFor example, if the flavor says \"false\":\n- We don\u0027t add the trait to the scheduling request, so the instance can land anywhere; but\n- The driver will *not* use the feature for live-migrate, regardless of what the compute\u0027s config says.\n\nIf this is the intent, I\u0027m on board.","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e176da8388cdca7e1d6ac151c615d50026e55eb4","unresolved":false,"context_lines":[{"line_number":84,"context_line":"for the corresponding feature to the placement request. When"},{"line_number":85,"context_line":"``compute:live_migration_auto_converge\u003dfalse`` and"},{"line_number":86,"context_line":"``compute:live_migration_remote_execution\u003dfalse``, we just add nothing to"},{"line_number":87,"context_line":"the placement request. Thus we still can schedule an instance on a host with"},{"line_number":88,"context_line":"the features but we disable these two features for that instance."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"By default, when the operator creates an instance without any related metadata,"},{"line_number":91,"context_line":"the scheduler will not care whether the host supports auto-converge or"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_c6ba3709","line":88,"range":{"start_line":87,"start_character":41,"end_line":88,"end_character":65},"in_reply_to":"7faddb67_30334565","updated":"2019-07-22 14:22:07.000000000","message":"i think the intent is to only add the required trait if they are set to true. but if we set them to false we wont add a require or forbidden trait.\n\nso this will only alter scheduling if you state that this feature must be used.\n\nif you do not specify or state they must not be used we wont modify scheduling.\n\nseparately, as you sate, the libvirt driver or any other driver that supports this in the future will use these values to enable or disable auto converge or post copy.\n\nso i think we are all on the same page","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"e23345fe51942cbe0e552233108918a9c771ff29","unresolved":false,"context_lines":[{"line_number":84,"context_line":"for the corresponding feature to the placement request. When"},{"line_number":85,"context_line":"``compute:live_migration_auto_converge\u003dfalse`` and"},{"line_number":86,"context_line":"``compute:live_migration_remote_execution\u003dfalse``, we just add nothing to"},{"line_number":87,"context_line":"the placement request. Thus we still can schedule an instance on a host with"},{"line_number":88,"context_line":"the features but we disable these two features for that instance."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"By default, when the operator creates an instance without any related metadata,"},{"line_number":91,"context_line":"the scheduler will not care whether the host supports auto-converge or"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_30334565","line":88,"range":{"start_line":87,"start_character":41,"end_line":88,"end_character":65},"in_reply_to":"9fb8cfa7_48d48420","updated":"2019-07-22 13:02:19.000000000","message":"Correct, will add in next update.","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"ed7c8679530b47fcfaa7b63ba49ed29b8a4860c7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"for the corresponding feature to the placement request. When"},{"line_number":85,"context_line":"``compute:live_migration_auto_converge\u003dfalse`` and"},{"line_number":86,"context_line":"``compute:live_migration_remote_execution\u003dfalse``, we just add nothing to"},{"line_number":87,"context_line":"the placement request. Thus we still can schedule an instance on a host with"},{"line_number":88,"context_line":"the features but we disable these two features for that instance."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"By default, when the operator creates an instance without any related metadata,"},{"line_number":91,"context_line":"the scheduler will not care whether the host supports auto-converge or"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_291d130f","line":88,"range":{"start_line":87,"start_character":41,"end_line":88,"end_character":65},"in_reply_to":"9fb8cfa7_48d48420","updated":"2019-07-23 06:24:27.000000000","message":"Done","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"12f57bde1b34986cf6cc254abedd0bd6516fba16","unresolved":false,"context_lines":[{"line_number":108,"context_line":"``live_migration_permit_post_copy``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When ``compute:live_migration_auto_converge`` and"},{"line_number":111,"context_line":"``compute_live_migration_remote_execution`` are both true or flavor extra specs"},{"line_number":112,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":113,"context_line":"exception."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_4838049f","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":57},"updated":"2019-06-25 21:49:50.000000000","message":"?","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e176da8388cdca7e1d6ac151c615d50026e55eb4","unresolved":false,"context_lines":[{"line_number":108,"context_line":"``live_migration_permit_post_copy``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When ``compute:live_migration_auto_converge`` and"},{"line_number":111,"context_line":"``compute_live_migration_remote_execution`` are both true or flavor extra specs"},{"line_number":112,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":113,"context_line":"exception."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_a675bb34","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":57},"in_reply_to":"7faddb67_907c79ec","updated":"2019-07-22 14:22:07.000000000","message":"as implemented by libvirt/qemu post_copy can be considered a specialisation of auto_converge.\n\nas with auto_converge there is an initial pre_copy phase that initially  copies the guest memory/exectuion state and then if migration does not complete before a specific treshold post_copy is initieated.  my understanding is the delta between auto_converge and post_copy is that when auto_congerve would normal slow the exectuion of the guest on the souce to allow the pre-copy to complete when post copy is enebaled we instad transtiaon to the post copy phases and switch exectuion to the dest host instead of slowing the execution on the source.","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"e23345fe51942cbe0e552233108918a9c771ff29","unresolved":false,"context_lines":[{"line_number":108,"context_line":"``live_migration_permit_post_copy``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When ``compute:live_migration_auto_converge`` and"},{"line_number":111,"context_line":"``compute_live_migration_remote_execution`` are both true or flavor extra specs"},{"line_number":112,"context_line":"is in conflict with image properties, the \u0027create\u0027 API call will raise an"},{"line_number":113,"context_line":"exception."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_907c79ec","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":57},"in_reply_to":"9fb8cfa7_4838049f","updated":"2019-07-22 13:02:19.000000000","message":"According to the exist logic [1]_, if both enable auto_converge and post_copy, post_copy will override auto_converge.\n\n[1]: https://docs.openstack.org/nova/latest/configuration/config.html#libvirt.live_migration_permit_post_copy","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"12f57bde1b34986cf6cc254abedd0bd6516fba16","unresolved":false,"context_lines":[{"line_number":134,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``. The result would be that the"},{"line_number":135,"context_line":"instance would **not schedule to any hosts** which use the libvirt driver."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"If only use traits, there will be a case: The user doesn\u0027t want to use"},{"line_number":138,"context_line":"auto-converge or post-copy during live migration. If flavors and images don\u0027t"},{"line_number":139,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":140,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":141,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":142,"context_line":"features. If operator forbids traits:"},{"line_number":143,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE\u003dforbidden`` or"},{"line_number":144,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":145,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":146,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Data model impact"},{"line_number":149,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_28435015","line":146,"range":{"start_line":137,"start_character":0,"end_line":146,"end_character":55},"updated":"2019-06-25 21:49:50.000000000","message":"I couldn\u0027t understand this paragraph","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"ed7c8679530b47fcfaa7b63ba49ed29b8a4860c7","unresolved":false,"context_lines":[{"line_number":134,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``. The result would be that the"},{"line_number":135,"context_line":"instance would **not schedule to any hosts** which use the libvirt driver."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"If only use traits, there will be a case: The user doesn\u0027t want to use"},{"line_number":138,"context_line":"auto-converge or post-copy during live migration. If flavors and images don\u0027t"},{"line_number":139,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":140,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":141,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":142,"context_line":"features. If operator forbids traits:"},{"line_number":143,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE\u003dforbidden`` or"},{"line_number":144,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":145,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":146,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Data model impact"},{"line_number":149,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_69e0ebfb","line":146,"range":{"start_line":137,"start_character":0,"end_line":146,"end_character":55},"in_reply_to":"9fb8cfa7_28435015","updated":"2019-07-23 06:24:27.000000000","message":"I\u0027ve rewrote this paragraph.","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"e23345fe51942cbe0e552233108918a9c771ff29","unresolved":false,"context_lines":[{"line_number":134,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``. The result would be that the"},{"line_number":135,"context_line":"instance would **not schedule to any hosts** which use the libvirt driver."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"If only use traits, there will be a case: The user doesn\u0027t want to use"},{"line_number":138,"context_line":"auto-converge or post-copy during live migration. If flavors and images don\u0027t"},{"line_number":139,"context_line":"request any related traits, the instance may be scheduled to a host which has"},{"line_number":140,"context_line":"enabled ``live_migration_permit_auto_converge`` or"},{"line_number":141,"context_line":"``live_migration_permit_post_copy``, then the live migration will use these"},{"line_number":142,"context_line":"features. If operator forbids traits:"},{"line_number":143,"context_line":"``traits:COMPUTE_MIGRATE_AUTO_CONVERGE\u003dforbidden`` or"},{"line_number":144,"context_line":"``traits:COMPUTE_MIGRATE_POST_COPY\u003dforbidden``, the instance"},{"line_number":145,"context_line":"can be scheduled to part of **all hosts**. But actually, live migration should"},{"line_number":146,"context_line":"be supported by **all hosts** which use libvirt driver."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Data model impact"},{"line_number":149,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_70e77d48","line":146,"range":{"start_line":137,"start_character":0,"end_line":146,"end_character":55},"in_reply_to":"9fb8cfa7_28435015","updated":"2019-07-22 13:02:19.000000000","message":"If use traits only, it can work well if user request auto_converge/post_copy.\nBut if user want forbid auto_converge/post_copy, they will use the value: \u0027forbidden\u0027, means **don\u0027t** schedule my vm to the hosts who support auto_converge/post_copy. But from [1]_, we known that **all compute nodes** should support auto_converge/post_copy. Therefore, use \u0027forbidden\u0027 means ignore **all compute nodes**.\n\n[1]: https://wiki.openstack.org/wiki/LibvirtDistroSupportMatrix","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"12f57bde1b34986cf6cc254abedd0bd6516fba16","unresolved":false,"context_lines":[{"line_number":217,"context_line":"  virt drivers because these traits are libvirt-specific."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"* Scheduler changes to translate metadata to traits"},{"line_number":220,"context_line":"  (scheduler.utils.ResourceRequest.resources_from_request_spec)."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* Recalculate ``_live_migration_flags`` before live migration start in"},{"line_number":223,"context_line":"  the libvirt driver."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_48bd64d6","line":220,"range":{"start_line":220,"start_character":3,"end_line":220,"end_character":62},"updated":"2019-06-25 21:49:50.000000000","message":"We do this in request filters now.\n\nhttps://opendev.org/openstack/nova/src/branch/master/nova/scheduler/request_filter.py","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"ed7c8679530b47fcfaa7b63ba49ed29b8a4860c7","unresolved":false,"context_lines":[{"line_number":217,"context_line":"  virt drivers because these traits are libvirt-specific."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"* Scheduler changes to translate metadata to traits"},{"line_number":220,"context_line":"  (scheduler.utils.ResourceRequest.resources_from_request_spec)."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* Recalculate ``_live_migration_flags`` before live migration start in"},{"line_number":223,"context_line":"  the libvirt driver."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7faddb67_09e5b70a","line":220,"range":{"start_line":220,"start_character":3,"end_line":220,"end_character":62},"in_reply_to":"9fb8cfa7_48bd64d6","updated":"2019-07-23 06:24:27.000000000","message":"Done","commit_id":"0265b46af092db55bc2f1aeb7e209716a46fc001"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdf1e67002ac06ed625f6a1c8250f454811574bf","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Introduce two new flavor extra specs:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* ``compute:live_migration_auto_converge\u003dtrue/false``"},{"line_number":73,"context_line":"* ``compute:live_migration_post_copy\u003dtrue/false``"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"And introduce two new image properties:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"7faddb67_2af89e7a","line":73,"updated":"2019-07-23 13:30:32.000000000","message":"FWIW, I prefer the new namings","commit_id":"9037c2c83494a63b3dd4abd3598f01e51ac294ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdf1e67002ac06ed625f6a1c8250f454811574bf","unresolved":false,"context_lines":[{"line_number":82,"context_line":"``compute:live_migration_auto_converge\u003dtrue`` or"},{"line_number":83,"context_line":"``compute:live_migration_post_copy\u003dtrue``, we add required traits"},{"line_number":84,"context_line":"for the corresponding feature to the placement request. When"},{"line_number":85,"context_line":"``compute:live_migration_auto_converge\u003dfalse`` and"},{"line_number":86,"context_line":"``compute:live_migration_post_copy\u003dfalse``, we just add nothing to"},{"line_number":87,"context_line":"the placement request. Thus we still can schedule an instance on a host with"},{"line_number":88,"context_line":"the features but we disable these two features for that instance. We use these"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7faddb67_a5827f51","line":85,"range":{"start_line":85,"start_character":47,"end_line":85,"end_character":50},"updated":"2019-07-23 13:30:32.000000000","message":"nit: or","commit_id":"9037c2c83494a63b3dd4abd3598f01e51ac294ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdf1e67002ac06ed625f6a1c8250f454811574bf","unresolved":false,"context_lines":[{"line_number":92,"context_line":"features during live migration. For example, if the flavor says \"false\":"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* We don\u0027t add the trait to the scheduling request, so the instance can land"},{"line_number":95,"context_line":"  anywhere."},{"line_number":96,"context_line":"* The driver will **not** use the feature for live-migrate, regardless of what"},{"line_number":97,"context_line":"  the compute\u0027s config says."},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"7faddb67_a5e7df46","line":95,"updated":"2019-07-23 13:30:32.000000000","message":"so, do we really need the \u0027false\u0027 value ? Unfortunately, extra specs are having key/value so I understand why you want to still accept \u0027false\u0027.","commit_id":"9037c2c83494a63b3dd4abd3598f01e51ac294ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdf1e67002ac06ed625f6a1c8250f454811574bf","unresolved":false,"context_lines":[{"line_number":114,"context_line":"``compute:live_migration_post_copy\u003dtrue/false``,"},{"line_number":115,"context_line":"these metadata will override the configurations:"},{"line_number":116,"context_line":"``live_migration_permit_auto_converge`` or"},{"line_number":117,"context_line":"``live_migration_permit_post_copy``."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"When ``compute:live_migration_auto_converge`` and"},{"line_number":120,"context_line":"``compute_live_migration_post_copy`` are both true or flavor extra specs"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7faddb67_85f663f9","line":117,"updated":"2019-07-23 13:30:32.000000000","message":"*nods*","commit_id":"9037c2c83494a63b3dd4abd3598f01e51ac294ad"}]}
