github.com/Cloud-Foundations/Dominator@v0.3.4/hypervisor/rpcd/getVmLastPatchLog.go (about) 1 package rpcd 2 3 import ( 4 "io" 5 "os" 6 7 "github.com/Cloud-Foundations/Dominator/lib/srpc" 8 proto "github.com/Cloud-Foundations/Dominator/proto/hypervisor" 9 ) 10 11 func (t *srpcType) GetVmLastPatchLog(conn *srpc.Conn) error { 12 var request proto.GetVmLastPatchLogRequest 13 if err := conn.Decode(&request); err != nil { 14 return err 15 } 16 rc, length, patchTime, err := t.manager.GetVmLastPatchLog(request.IpAddress) 17 if err != nil { 18 if os.IsNotExist(err) { 19 return conn.Encode(proto.GetVmLastPatchLogResponse{}) 20 } 21 return conn.Encode(proto.GetVmLastPatchLogResponse{Error: err.Error()}) 22 } 23 response := proto.GetVmLastPatchLogResponse{ 24 Length: length, 25 PatchTime: patchTime, 26 } 27 if err := conn.Encode(response); err != nil { 28 return err 29 } 30 _, err = io.CopyN(conn, rc, int64(length)) 31 return err 32 }