On Thu, Jun 14, 2018 at 04:54:43PM +0100, Daniel P. Berrangé wrote: > On Thu, Jun 14, 2018 at 04:30:29PM +0200, Erik Skultety wrote: > > Signed-off-by: Erik Skultety <eskultet@xxxxxxxxxx> > > --- > > domain.go | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 134 insertions(+), 1 deletion(-) > > > > diff --git a/domain.go b/domain.go > > index aeeb24a..27e2fdc 100644 > > --- a/domain.go > > +++ b/domain.go > > @@ -1863,6 +1863,15 @@ type DomainFeatureCapability struct { > > State string `xml:"state,attr,omitempty"` > > } > > > > +type DomainLaunchSecurity struct { > > + Sectype string `xml:"type,attr"` Oh, actually I forgot that I aim to avoid ever exposing "type" attributes in the XML - they are a sign that we need to use a union. IOW, we would want type DomainLaunchSecurity struct { SEV *DomainLaunchSecuritySEV } And DomainLaunchSecuritySEV would contain the rest of the fields below - this requires more magic MarshalXML/UnmarshalXML helpers to create/serialize the SEV struct depending on 'type' value. If you want a simple example of how this is done which is a good fit with DomainLaunchSecurity, take a look at NetworkForwardAddress and NetworkForwardAddressPCI structs, in the network.go file, and their corresponding MarshalXML/UnmarshalXML methods. > > + Cbitpos *uint `xml:"cbitpos"` > > s/Cbitpos/CBitPos/ > > > + ReducedPhysBits *uint `xml:"reducedPhysBits"` > > + Policy *uint `xml:"policy"` > > + DhCert string `xml:"dhCert"` > > s/DhCert/DHCert/ since 'dh' is an acronym > > > + Session string `xml:"sesion"` > > +} > > + > > type DomainFeatureCapabilities struct { > > Policy string `xml:"policy,attr,omitempty"` > > AuditControl *DomainFeatureCapability `xml:"audit_control"` > > @@ -2182,7 +2191,8 @@ type Domain struct { > > QEMUCommandline *DomainQEMUCommandline > > LXCNamespace *DomainLXCNamespace > > VMWareDataCenterPath *DomainVMWareDataCenterPath > > - KeyWrap *DomainKeyWrap `xml:"keywrap"` > > + KeyWrap *DomainKeyWrap `xml:"keywrap"` > > + LaunchSecurity *DomainLaunchSecurity `xml:"launchSecurity"` > > } > > > > func (d *Domain) Unmarshal(doc string) error { > > > Reviewed-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> > > > Regards, > Daniel > -- > |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| > |: https://libvirt.org -o- https://fstop138.berrange.com :| > |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list