[libvirt PATCH 1/2] network: Drop UUID handling for default network

Andrea Bolognani abologna at redhat.com
Mon Nov 16 16:43:49 UTC 2020


On Mon, 2020-11-16 at 10:00 -0500, Laine Stump wrote:
> On 11/16/20 5:33 AM, Andrea Bolognani wrote:
> > On Sun, 2020-11-15 at 19:19 -0500, Laine Stump wrote:
> > > On 11/15/20 3:43 PM, Andrea Bolognani wrote:
> > > > We are generating a fresh UUID and storing it in the XML for the
> > > > default network, but this is unnecessary because the network
> > > > driver will automatically generate one if it's missing from the
> > > > XML;
> > >
> > > But that automatically generated uuid will not be stored in the original
> > > xml in /etc/libvirt, so a new and different uuid will be generated every
> > > time libvirt is restarted.
> > 
> > That doesn't seem to be the case:
> > 
> > [... a bunch of command line nonsense ...]
> 
> But... I did a nearly identical experiment last night before posting my 
> reply, and came up with different results, which is why I posted...
> 
> 
> Ah! So the difference is that in your example, you have no MAC address 
> either, and the code you point out down below is noticing that change, 
> and causing the entire network config to be re-written to the disk. I 
> hadn't removed the MAC address, so in my case it didn't re-write the config.
> 
> 
> (...and now I've read to the bottom of your reply and see that you've 
> already figured that out :-P)

  "And that's why you always read the entire message before
   you start replying to it."
                                              -- J. Walter Weatherman

> I guess if we're okay with re-writing the config at daemon start to add 
> a MAC address, then we should be okay with doing that to add a uuid 
> (they're really just differently-used examples of the same thing). But 
> if we're going to do that, the check to see if the config should be 
> modified to check both uuid and mac address (even if in current practice 
> both are absent from the proto-default.xml, that may not be the case in 
> the future).
> 
> 
> Alternately, if we're *not* okay with rewriting the config at daemon 
> start time (even though, as you've pointed out, we've been doing that 
> for 6 years already), then we would need to *stop* doing that for MAC 
> address. (Which would mean we would need to figure out a different way 
> to get a fixed MAC address into the config file, and seeing that the 
> commit you reference actually *removes* my original code that added it 
> in at install time, we can't really go back there (also because that's 
> moving the code in the wrong direction - Fedora SilverBlue people said 
> in the BZ I referenced that they don't want %post_install scripts 
> modifying the files that are installed).

I don't see how we could possibly not be okay with writing back the
updated configuration: filling in whatever blanks are present in the
user-provided configuration and then writing the result back to disk
is quite central to how we handle domains and other objects, and I
see no reason networks should behave any differently.

If anything, I think we should not extend the check to UUIDs, but
just drop it completely and unconditionally write the (possibly)
updated file file to disk. I'll try cooking a patch for that.

> I think I'm okay with the former (adding a check for changed uuid onto 
> your patches); it gives us a stable uuid (as long as the modified disk 
> contents are saved for the next reboot) while eliminating another bit of 
> the undesirable code that runs during %post_install.
> 
> Is there anything else wrt. pre-built images that we're not taking into 
> consideration though?

Honestly I was not considering the pre-built images angle at all, so
there's probably *loads* that I'm not taking into account O:-)

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list