omaha: add/fix missing or outdated attributes

This commit is contained in:
Michael Marineau 2015-07-25 18:00:13 -07:00
parent 75a1125f53
commit a3bc668225
2 changed files with 37 additions and 25 deletions

View File

@ -30,18 +30,20 @@ import (
// Request sent by the Omaha client // Request sent by the Omaha client
type Request struct { type Request struct {
XMLName xml.Name `xml:"request" json:"-"` XMLName xml.Name `xml:"request" json:"-"`
OS *OS `xml:"os"` OS *OS `xml:"os"`
Apps []*AppRequest `xml:"app"` Apps []*AppRequest `xml:"app"`
Protocol string `xml:"protocol,attr"` Protocol string `xml:"protocol,attr"`
Version string `xml:"version,attr,omitempty"` Version string `xml:"version,attr,omitempty"`
IsMachine string `xml:"ismachine,attr,omitempty"` IsMachine string `xml:"ismachine,attr,omitempty"`
RequestId string `xml:"requestid,attr,omitempty"` RequestId string `xml:"requestid,attr,omitempty"`
SessionId string `xml:"sessionid,attr,omitempty"` SessionId string `xml:"sessionid,attr,omitempty"`
UserId string `xml:"userid,attr,omitempty"` UserId string `xml:"userid,attr,omitempty"`
InstallSource string `xml:"installsource,attr,omitempty"` InstallSource string `xml:"installsource,attr,omitempty"`
TestSource string `xml:"testsource,attr,omitempty"` TestSource string `xml:"testsource,attr,omitempty"`
UpdaterVersion string `xml:"updaterversion,attr,omitempty"`
// update engine extension, duplicates the version attribute.
UpdaterVersion string `xml:"updaterversion,attr,omitempty"`
} }
func NewRequest() *Request { func NewRequest() *Request {
@ -76,11 +78,15 @@ type AppRequest struct {
// update engine extensions // update engine extensions
Track string `xml:"track,attr,omitempty"` Track string `xml:"track,attr,omitempty"`
FromTrack string `xml:"from_track,attr,omitempty"` FromTrack string `xml:"from_track,attr,omitempty"`
Board string `xml:"board,attr,omitempty"`
DeltaOK bool `xml:"delta_okay,attr,omitempty"`
// coreos update engine extensions // coreos update engine extensions
BootId string `xml:"bootid,attr,omitempty"` BootId string `xml:"bootid,attr,omitempty"`
MachineID string `xml:"machineid,attr,omitempty"` MachineID string `xml:"machineid,attr,omitempty"`
OEM string `xml:"oem,attr,omitempty"` OEM string `xml:"oem,attr,omitempty"`
OEMVersion string `xml:"oemversion,attr,omitempty"`
AlephVersion string `xml:"alephversion,attr,omitempty"`
} }
func (a *AppRequest) AddUpdateCheck() *UpdateRequest { func (a *AppRequest) AddUpdateCheck() *UpdateRequest {
@ -89,7 +95,7 @@ func (a *AppRequest) AddUpdateCheck() *UpdateRequest {
} }
func (a *AppRequest) AddPing() *PingRequest { func (a *AppRequest) AddPing() *PingRequest {
a.Ping = new(PingRequest) a.Ping = &PingRequest{Active: 1}
return a.Ping return a.Ping
} }
@ -104,12 +110,15 @@ type UpdateRequest struct {
} }
type PingRequest struct { type PingRequest struct {
LastReportDays string `xml:"r,attr,omitempty"` Active int `xml:"active,attr,omitempty"`
LastActiveReportDays int `xml:"a,attr,omitempty"`
LastReportDays int `xml:"r,attr,omitempty"`
} }
type EventRequest struct { type EventRequest struct {
Type EventType `xml:"eventtype,attr"` Type EventType `xml:"eventtype,attr"`
Result EventResult `xml:"eventresult,attr"` Result EventResult `xml:"eventresult,attr"`
NextVersion string `xml:"nextversion,attr,omitempty"`
PreviousVersion string `xml:"previousversion,attr,omitempty"` PreviousVersion string `xml:"previousversion,attr,omitempty"`
ErrorCode string `xml:"errorcode,attr,omitempty"` ErrorCode string `xml:"errorcode,attr,omitempty"`
} }
@ -246,13 +255,16 @@ func (m *Manifest) AddAction(event string) *Action {
type Action struct { type Action struct {
Event string `xml:"event,attr"` Event string `xml:"event,attr"`
// Extensions added by update_engine // update engine extensions for event="postinstall"
ChromeOSVersion string `xml:"ChromeOSVersion,attr"` DisplayVersion string `xml:"DisplayVersion,attr,omitempty"`
Sha256 string `xml:"sha256,attr"` Sha256 string `xml:"sha256,attr,omitempty"`
NeedsAdmin bool `xml:"needsadmin,attr"` NeedsAdmin bool `xml:"needsadmin,attr,omitempty"`
IsDelta bool `xml:"IsDelta,attr"` IsDeltaPayload bool `xml:"IsDeltaPayload,attr,omitempty"`
DisablePayloadBackoff bool `xml:"DisablePayloadBackoff,attr,omitempty"` DisablePayloadBackoff bool `xml:"DisablePayloadBackoff,attr,omitempty"`
MaxFailureCountPerURL uint `xml:"MaxFailureCountPerUrl,attr,omitempty"`
MetadataSignatureRsa string `xml:"MetadataSignatureRsa,attr,omitempty"` MetadataSignatureRsa string `xml:"MetadataSignatureRsa,attr,omitempty"`
MetadataSize string `xml:"MetadataSize,attr,omitempty"` MetadataSize string `xml:"MetadataSize,attr,omitempty"`
Deadline string `xml:"deadline,attr,omitempty"` Deadline string `xml:"deadline,attr,omitempty"`
MoreInfo string `xml:"MoreInfo,attr,omitempty"`
Prompt bool `xml:"Prompt,attr,omitempty"`
} }

View File

@ -93,10 +93,10 @@ func ExampleNewResponse() {
k.Size = 67546213 k.Size = 67546213
k.Required = true k.Required = true
a := m.AddAction("postinstall") a := m.AddAction("postinstall")
a.ChromeOSVersion = "9999.0.0" a.DisplayVersion = "9999.0.0"
a.Sha256 = "0VAlQW3RE99SGtSB5R4m08antAHO8XDoBMKDyxQT/Mg=" a.Sha256 = "0VAlQW3RE99SGtSB5R4m08antAHO8XDoBMKDyxQT/Mg="
a.NeedsAdmin = false a.NeedsAdmin = false
a.IsDelta = true a.IsDeltaPayload = true
a.DisablePayloadBackoff = true a.DisablePayloadBackoff = true
if raw, err := xml.MarshalIndent(response, "", " "); err != nil { if raw, err := xml.MarshalIndent(response, "", " "); err != nil {
@ -121,7 +121,7 @@ func ExampleNewResponse() {
// <package hash="+LXvjiaPkeYDLHoNKlf9qbJwvnk=" name="update.gz" size="67546213" required="true"></package> // <package hash="+LXvjiaPkeYDLHoNKlf9qbJwvnk=" name="update.gz" size="67546213" required="true"></package>
// </packages> // </packages>
// <actions> // <actions>
// <action event="postinstall" ChromeOSVersion="9999.0.0" sha256="0VAlQW3RE99SGtSB5R4m08antAHO8XDoBMKDyxQT/Mg=" needsadmin="false" IsDelta="true" DisablePayloadBackoff="true"></action> // <action event="postinstall" DisplayVersion="9999.0.0" sha256="0VAlQW3RE99SGtSB5R4m08antAHO8XDoBMKDyxQT/Mg=" IsDeltaPayload="true" DisablePayloadBackoff="true"></action>
// </actions> // </actions>
// </manifest> // </manifest>
// </updatecheck> // </updatecheck>