
On Thu, Feb 23, 2017 at 12:19:46 -0500, John Ferlan wrote:
The problem is chardevs and migration are quite different. While you can easily have a default configuration for chardevs and use tls="yes|no" to override it (no tls attribute will just tell libvirt to use the default), it's not really possible with migration API. API flags have not two states (in contrast to three-state boolean attributes in XML). Setting VIR_MIGRATE_TLS flag turns TLS on and using the flag turns TLS off. That is the default value is not used anywhere. If VIR_MIGRATE_TLS flag is used, the code checks migrate_tls is 1. Which translates to "yes, I configured TLS for migration" semantics of the configuration option.
In other words, it makes sense to have the configuration option for devices defined in the XML, but using it for migration doesn't make any sense. This would of course mean its parsing would need to be moved out of the macro introduced in 1/13 and used for chardevs only.
Jirka
So I've circled back around to this... It seems like you're advocating the removal of the VIR_MIGRATE_TLS flag - which is fine. The only
No. We definitely need VIR_MIGRATE_TLS. I'm advocating the removal of the migrate_tls configuration option.
Jirka
For me it's a consistency thing - whenever TLS is used elsewhere in the code the qemu.conf variables are referenced.
I think the result is actually inconsistent. The existing _tls options are useful and enable TLS for the affected devices by default. But migration is not a device, it's an action and not a device. We don't want to set the default for migration since the usage of TLS is enabled or disabled by the flag passed to migration APIs.
Now for migration we're going to assume the configuration is set up and can be used.
We are not going to assume anything. TLS will not be enabled by default. So if a user explicitly requests TLS by adding a flag, it's their responsibility to make sure the environment is setup correctly. Otherwise migration will just fail. Having to set migrate_tls = 1 in addition to using the flag is not going to give us anything. The environment may still be improperly configured.
I can drop the migrate_tls variable, the others would seem to be needed though. That just means the first patch is dropped and the second one removes the migrate_tls, but keeps certDir, verify, and secret uuid.
Right. Although you can still keep the first patch, you just need to move *_tls out of the macro. But do whathever you think is better. Jirka