Skip to content

Commit c21a4c7

Browse files
committed
qemu: use raw.Monitor in Domain, implement in Domain.Status
1 parent 7452ece commit c21a4c7

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

domain.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ var (
4141
type Domain struct {
4242
Name string
4343
m qmp.Monitor
44+
rm *raw.Monitor
4445
done chan struct{}
4546
connect chan chan qmp.Event
4647
disconnect chan chan qmp.Event
@@ -296,7 +297,7 @@ const (
296297

297298
// Status returns the current status of the domain.
298299
func (d *Domain) Status() (Status, error) {
299-
out, err := d.Run(qmp.Command{Execute: "query-status"})
300+
status, err := d.rm.QueryStatus()
300301
if err != nil {
301302
// libvirt returns an error if the domain is not running
302303
if strings.Contains(err.Error(), "not running") {
@@ -306,16 +307,7 @@ func (d *Domain) Status() (Status, error) {
306307
return 0, err
307308
}
308309

309-
var response struct {
310-
ID string `json:"id"`
311-
Return raw.StatusInfo `json:"return"`
312-
}
313-
314-
if err = json.Unmarshal(out, &response); err != nil {
315-
return 0, err
316-
}
317-
318-
return Status(response.Return.Status), nil
310+
return Status(status.Status), nil
319311
}
320312

321313
// Supported returns true if the provided command is supported by the domain.
@@ -449,6 +441,7 @@ func NewDomain(m qmp.Monitor, name string) (*Domain, error) {
449441
d := &Domain{
450442
Name: name,
451443
m: m,
444+
rm: raw.NewMonitor(m),
452445
done: make(chan struct{}),
453446
connect: make(chan chan qmp.Event),
454447
disconnect: make(chan chan qmp.Event),

0 commit comments

Comments
 (0)