[libvirt] [PATCH go-xml] Support network backed serial interfaces

Jeroen Simonetti posted 1 patch 6 years, 5 months ago
Failed in applying to current master (apply log)
domain.go      | 26 +++++++++++++++++---------
domain_test.go | 26 +++++++++++++++++++++++---
2 files changed, 40 insertions(+), 12 deletions(-)
[libvirt] [PATCH go-xml] Support network backed serial interfaces
Posted by Jeroen Simonetti 6 years, 5 months ago
Adds network backing for a DomainChardevSource and
protocol selection for serial device of type tcp.

Signed-off-by: Jeroen Simonetti <jeroen@simonetti.nl>
---
 domain.go      | 26 +++++++++++++++++---------
 domain_test.go | 26 +++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/domain.go b/domain.go
index f4ef35c..47e9dc6 100644
--- a/domain.go
+++ b/domain.go
@@ -256,9 +256,12 @@ type DomainInterface struct {
 }
 
 type DomainChardevSource struct {
-	Mode   string `xml:"mode,attr,omitempty"`
-	Path   string `xml:"path,attr"`
-	Append string `xml:"append,attr,omitempty"`
+	Mode    string `xml:"mode,attr,omitempty"`
+	Path    string `xml:"path,attr,omitempty"`
+	Append  string `xml:"append,attr,omitempty"`
+	Host    string `xml:"host,attr,omitempty"`
+	Service string `xml:"service,attr,omitempty"`
+	TLS     string `xml:"tls,attr,omitempty"`
 }
 
 type DomainChardevTarget struct {
@@ -329,12 +332,17 @@ type DomainConsole struct {
 }
 
 type DomainSerial struct {
-	XMLName xml.Name             `xml:"serial"`
-	Type    string               `xml:"type,attr"`
-	Source  *DomainChardevSource `xml:"source"`
-	Target  *DomainSerialTarget  `xml:"target"`
-	Alias   *DomainAlias         `xml:"alias"`
-	Address *DomainAddress       `xml:"address"`
+	XMLName  xml.Name              `xml:"serial"`
+	Type     string                `xml:"type,attr"`
+	Source   *DomainChardevSource  `xml:"source"`
+	Protocol *DomainSerialProtocol `xml:"protocol"`
+	Target   *DomainSerialTarget   `xml:"target"`
+	Alias    *DomainAlias          `xml:"alias"`
+	Address  *DomainAddress        `xml:"address"`
+}
+
+type DomainSerialProtocol struct {
+	Type string `xml:"type,attr"`
 }
 
 type DomainChannel struct {
diff --git a/domain_test.go b/domain_test.go
index 1ad5125..99d5022 100644
--- a/domain_test.go
+++ b/domain_test.go
@@ -330,6 +330,21 @@ var domainTestData = []struct {
 							Port: &serialPort,
 						},
 					},
+					DomainSerial{
+						Type: "tcp",
+						Source: &DomainChardevSource{
+							Mode:    "bind",
+							Host:    "127.0.0.1",
+							Service: "1234",
+							TLS:     "yes",
+						},
+						Protocol: &DomainSerialProtocol{
+							Type: "telnet",
+						},
+						Target: &DomainSerialTarget{
+							Port: &serialPort,
+						},
+					},
 				},
 				Channels: []DomainChannel{
 					DomainChannel{
@@ -415,6 +430,11 @@ var domainTestData = []struct {
 			`      <source path="/tmp/serial.log" append="off"></source>`,
 			`      <target port="0"></target>`,
 			`    </serial>`,
+			`    <serial type="tcp">`,
+			`      <source mode="bind" host="127.0.0.1" service="1234" tls="yes"></source>`,
+			`      <protocol type="telnet"></protocol>`,
+			`      <target port="0"></target>`,
+			`    </serial>`,
 			`    <console type="pty">`,
 			`      <target type="virtio" port="0"></target>`,
 			`    </console>`,
@@ -1725,9 +1745,9 @@ var domainTestData = []struct {
 	/* Host Bootloader -- bhyve, Xen */
 	{
 		Object: &Domain{
-			Type: "bhyve",
-			Name: "test",
-			Bootloader: "/usr/local/sbin/grub-bhyve",
+			Type:           "bhyve",
+			Name:           "test",
+			Bootloader:     "/usr/local/sbin/grub-bhyve",
 			BootloaderArgs: "-r cd0 -m /tmp/test-device.map -M 1024M linuxguest",
 		},
 		Expected: []string{
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH go-xml] Support network backed serial interfaces
Posted by Daniel P. Berrange 6 years, 5 months ago
On Tue, Nov 14, 2017 at 01:57:53PM +0100, Jeroen Simonetti wrote:
> Adds network backing for a DomainChardevSource and
> protocol selection for serial device of type tcp.
> 
> Signed-off-by: Jeroen Simonetti <jeroen@simonetti.nl>
> ---
>  domain.go      | 26 +++++++++++++++++---------
>  domain_test.go | 26 +++++++++++++++++++++++---
>  2 files changed, 40 insertions(+), 12 deletions(-)

Reviewed-by: Daniel P. Berrange <berrange@redhat.com>

Will push to git shortly, thanks for your contribution.

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