On Thu, Apr 20, 2017 at 09:56:59PM -0700, Ryan Goodfellow wrote: > Hi Folks, > > Any thoughts on this? This is my first time posting to this list, not sure > if I should direct the patch at someone in particular. Sorry for the delay, this is on my todo list to review... > > On Tue, Apr 18, 2017 at 3:01 PM, Ryan Goodfellow <rgoodfel@xxxxxxx> wrote: > > > This commit adds filesystem device support. A new family of types > > DomainFilesystem* are introduced and plumbed into the DomainDeviceList > > struct. > > > > Testing has also been included. > > --- > > domain.go | 40 ++++++++++++++++++++++++++++++++++++++++ > > domain_test.go | 55 ++++++++++++++++++++++++++++++ > > +++++++++++++++++++++++++ > > 2 files changed, 95 insertions(+) > > > > diff --git a/domain.go b/domain.go > > index 307c71c..cccd9a6 100644 > > --- a/domain.go > > +++ b/domain.go > > @@ -81,6 +81,45 @@ type DomainDisk struct { > > Target *DomainDiskTarget `xml:"target"` > > } > > > > +type DomainFilesystemDriver struct { > > + Type string `xml:"type,attr"` > > + Name string `xml:"name,attr,omitempty"` > > + WRPolicy string `xml:"wrpolicy,attr,omitempty"` > > +} > > + > > +type DomainFilesystemSource struct { > > + Dir string `xml:"dir,attr,omitempty"` > > + File string `xml:"file,attr,omitempty"` > > +} > > + > > +type DomainFilesystemTarget struct { > > + Dir string `xml:"dir,attr"` > > +} > > + > > +type DomainFilesystemReadOnly struct { > > +} > > + > > +type DomainFilesystemSpaceHardLimit struct { > > + Value int `xml:",chardata"` > > + Unit string `xml:"unit,attr,omitempty"` > > +} > > + > > +type DomainFilesystemSpaceSoftLimit struct { > > + Value int `xml:",chardata"` > > + Unit string `xml:"unit,attr,omitempty"` > > +} > > + > > +type DomainFilesystem struct { > > + Type string `xml:"type,attr"` > > + AccessMode string > > `xml:"accessmode,attr"` > > + Driver *DomainFilesystemDriver `xml:"driver"` > > + Source *DomainFilesystemSource `xml:"source"` > > + Target *DomainFilesystemTarget `xml:"target"` > > + ReadOnly *DomainFilesystemReadOnly `xml:"readonly"` > > + SpaceHardLimit *DomainFilesystemSpaceHardLimit > > `xml:"space_hard_limit"` > > + SpaceSoftLimit *DomainFilesystemSpaceSoftLimit > > `xml:"space_soft_limit"` > > +} > > + > > type DomainInterfaceMAC struct { > > Address string `xml:"address,attr"` > > } > > @@ -212,6 +251,7 @@ type DomainVideo struct { > > type DomainDeviceList struct { > > Controllers []DomainController `xml:"controller"` > > Disks []DomainDisk `xml:"disk"` > > + Filesystems []DomainFilesystem `xml:"filesystem"` > > Interfaces []DomainInterface `xml:"interface"` > > Serials []DomainChardev `xml:"serial"` > > Consoles []DomainChardev `xml:"console"` > > diff --git a/domain_test.go b/domain_test.go > > index e5347ea..06d585c 100644 > > --- a/domain_test.go > > +++ b/domain_test.go > > @@ -690,6 +690,61 @@ var domainTestData = []struct { > > `</domain>`, > > }, > > }, > > + { > > + Object: &Domain{ > > + Type: "kvm", > > + Name: "test", > > + Devices: &DomainDeviceList{ > > + Filesystems: []DomainFilesystem{ > > + DomainFilesystem{ > > + Type: "mount", > > + AccessMode: "mapped", > > + Driver: > > &DomainFilesystemDriver{ > > + Type: "path", > > + WRPolicy: > > "immediate", > > + }, > > + Source: > > &DomainFilesystemSource{ > > + Dir: > > "/home/user/test", > > + }, > > + Target: > > &DomainFilesystemTarget{ > > + Dir: > > "user-test-mount", > > + }, > > + }, > > + DomainFilesystem{ > > + Type: "file", > > + AccessMode: "passthrough", > > + Driver: > > &DomainFilesystemDriver{ > > + Name: "loop", > > + Type: "raw", > > + }, > > + Source: > > &DomainFilesystemSource{ > > + File: > > "/home/user/test.img", > > + }, > > + Target: > > &DomainFilesystemTarget{ > > + Dir: > > "user-file-test-mount", > > + }, > > + }, > > + }, > > + }, > > + }, > > + Expected: []string{ > > + `<domain type="kvm">`, > > + ` <name>test</name>`, > > + ` <devices>`, > > + ` <filesystem type="mount" > > accessmode="mapped">`, > > + ` <driver type="path" > > wrpolicy="immediate"></driver>`, > > + ` <source dir="/home/user/test"></source>`, > > + ` <target dir="user-test-mount"></target>`, > > + ` </filesystem>`, > > + ` <filesystem type="file" > > accessmode="passthrough">`, > > + ` <driver type="raw" name="loop"></driver>`, > > + ` <source file="/home/user/test.img"></ > > source>`, > > + ` <target dir="user-file-test-mount"></ > > target>`, > > + ` </filesystem>`, > > + ` </devices>`, > > + `</domain>`, > > + }, > > + }, > > } > > > > func TestDomain(t *testing.T) { > > -- > > 2.11.0 > > > > > > > -- > *ry**@isi* 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