domain.go | 40 ++++++++++++++++++++++++++++++++++++++++ domain_test.go | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+)
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
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
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. On Tue, Apr 18, 2017 at 3:01 PM, Ryan Goodfellow <rgoodfel@isi.edu> 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* -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
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@isi.edu> 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@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On Tue, Apr 18, 2017 at 03:01:18PM -0700, Ryan Goodfellow 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(+) Thanks, I've pushed this to master now. 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@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2024 Red Hat, Inc.