| OLD | NEW |
| 1 // Copyright 2015 The LUCI Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Package cipd implements client side of Chrome Infra Package Deployer. | 5 // Package cipd implements client side of Chrome Infra Package Deployer. |
| 6 // | 6 // |
| 7 // Binary package file format (in free form representation): | 7 // Binary package file format (in free form representation): |
| 8 // <binary package> := <zipped data> | 8 // <binary package> := <zipped data> |
| 9 // <zipped data> := DeterministicZip(<all input files> + <manifest json>) | 9 // <zipped data> := DeterministicZip(<all input files> + <manifest json>) |
| 10 // <manifest json> := File{ | 10 // <manifest json> := File{ |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 "sort" | 45 "sort" |
| 46 "sync" | 46 "sync" |
| 47 "time" | 47 "time" |
| 48 | 48 |
| 49 "golang.org/x/net/context" | 49 "golang.org/x/net/context" |
| 50 | 50 |
| 51 "github.com/luci/luci-go/common/clock" | 51 "github.com/luci/luci-go/common/clock" |
| 52 "github.com/luci/luci-go/common/data/stringset" | 52 "github.com/luci/luci-go/common/data/stringset" |
| 53 "github.com/luci/luci-go/common/errors" | 53 "github.com/luci/luci-go/common/errors" |
| 54 "github.com/luci/luci-go/common/logging" | 54 "github.com/luci/luci-go/common/logging" |
| 55 "github.com/luci/luci-go/common/retry/transient" |
| 55 | 56 |
| 56 "github.com/luci/luci-go/cipd/client/cipd/common" | 57 "github.com/luci/luci-go/cipd/client/cipd/common" |
| 57 "github.com/luci/luci-go/cipd/client/cipd/internal" | 58 "github.com/luci/luci-go/cipd/client/cipd/internal" |
| 58 "github.com/luci/luci-go/cipd/client/cipd/local" | 59 "github.com/luci/luci-go/cipd/client/cipd/local" |
| 59 "github.com/luci/luci-go/cipd/version" | 60 "github.com/luci/luci-go/cipd/version" |
| 60 ) | 61 ) |
| 61 | 62 |
| 62 // PackageACLChangeAction defines a flavor of PackageACLChange. | 63 // PackageACLChangeAction defines a flavor of PackageACLChange. |
| 63 type PackageACLChangeAction string | 64 type PackageACLChangeAction string |
| 64 | 65 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 77 ) | 78 ) |
| 78 | 79 |
| 79 // Environment variable definitions | 80 // Environment variable definitions |
| 80 const ( | 81 const ( |
| 81 EnvCacheDir = "CIPD_CACHE_DIR" | 82 EnvCacheDir = "CIPD_CACHE_DIR" |
| 82 EnvHTTPUserAgentPrefix = "CIPD_HTTP_USER_AGENT_PREFIX" | 83 EnvHTTPUserAgentPrefix = "CIPD_HTTP_USER_AGENT_PREFIX" |
| 83 ) | 84 ) |
| 84 | 85 |
| 85 var ( | 86 var ( |
| 86 // ErrFinalizationTimeout is returned if CAS service can not finalize up
load fast enough. | 87 // ErrFinalizationTimeout is returned if CAS service can not finalize up
load fast enough. |
| 87 » ErrFinalizationTimeout = errors.WrapTransient(errors.New("timeout while
waiting for CAS service to finalize the upload")) | 88 » ErrFinalizationTimeout = errors.New("timeout while waiting for CAS servi
ce to finalize the upload", transient.Tag) |
| 88 // ErrBadUpload is returned when a package file is uploaded, but servers
asks us to upload it again. | 89 // ErrBadUpload is returned when a package file is uploaded, but servers
asks us to upload it again. |
| 89 » ErrBadUpload = errors.WrapTransient(errors.New("package file is uploaded
, but servers asks us to upload it again")) | 90 » ErrBadUpload = errors.New("package file is uploaded, but servers asks us
to upload it again", transient.Tag) |
| 90 // ErrBadUploadSession is returned by UploadToCAS if provided UploadSess
ion is not valid. | 91 // ErrBadUploadSession is returned by UploadToCAS if provided UploadSess
ion is not valid. |
| 91 ErrBadUploadSession = errors.New("uploadURL must be set if UploadSession
ID is used") | 92 ErrBadUploadSession = errors.New("uploadURL must be set if UploadSession
ID is used") |
| 92 // ErrUploadSessionDied is returned by UploadToCAS if upload session sud
denly disappeared. | 93 // ErrUploadSessionDied is returned by UploadToCAS if upload session sud
denly disappeared. |
| 93 » ErrUploadSessionDied = errors.WrapTransient(errors.New("upload session i
s unexpectedly missing")) | 94 » ErrUploadSessionDied = errors.New("upload session is unexpectedly missin
g", transient.Tag) |
| 94 // ErrNoUploadSessionID is returned by UploadToCAS if server didn't prov
ide upload session ID. | 95 // ErrNoUploadSessionID is returned by UploadToCAS if server didn't prov
ide upload session ID. |
| 95 ErrNoUploadSessionID = errors.New("server didn't provide upload session
ID") | 96 ErrNoUploadSessionID = errors.New("server didn't provide upload session
ID") |
| 96 // ErrSetRefTimeout is returned when service refuses to move a ref for a
long time. | 97 // ErrSetRefTimeout is returned when service refuses to move a ref for a
long time. |
| 97 » ErrSetRefTimeout = errors.WrapTransient(errors.New("timeout while moving
a ref")) | 98 » ErrSetRefTimeout = errors.New("timeout while moving a ref", transient.Ta
g) |
| 98 // ErrAttachTagsTimeout is returned when service refuses to accept tags
for a long time. | 99 // ErrAttachTagsTimeout is returned when service refuses to accept tags
for a long time. |
| 99 » ErrAttachTagsTimeout = errors.WrapTransient(errors.New("timeout while at
taching tags")) | 100 » ErrAttachTagsTimeout = errors.New("timeout while attaching tags", transi
ent.Tag) |
| 100 // ErrDownloadError is returned by FetchInstance on download errors. | 101 // ErrDownloadError is returned by FetchInstance on download errors. |
| 101 » ErrDownloadError = errors.WrapTransient(errors.New("failed to download t
he package file after multiple attempts")) | 102 » ErrDownloadError = errors.New("failed to download the package file after
multiple attempts", transient.Tag) |
| 102 // ErrUploadError is returned by RegisterInstance and UploadToCAS on upl
oad errors. | 103 // ErrUploadError is returned by RegisterInstance and UploadToCAS on upl
oad errors. |
| 103 » ErrUploadError = errors.WrapTransient(errors.New("failed to upload the p
ackage file after multiple attempts")) | 104 » ErrUploadError = errors.New("failed to upload the package file after mul
tiple attempts", transient.Tag) |
| 104 // ErrAccessDenined is returned by calls talking to backend on 401 or 40
3 HTTP errors. | 105 // ErrAccessDenined is returned by calls talking to backend on 401 or 40
3 HTTP errors. |
| 105 ErrAccessDenined = errors.New("access denied (not authenticated or not e
nough permissions)") | 106 ErrAccessDenined = errors.New("access denied (not authenticated or not e
nough permissions)") |
| 106 // ErrBackendInaccessible is returned by calls talking to backed if it d
oesn't response. | 107 // ErrBackendInaccessible is returned by calls talking to backed if it d
oesn't response. |
| 107 » ErrBackendInaccessible = errors.WrapTransient(errors.New("request to the
backend failed after multiple attempts")) | 108 » ErrBackendInaccessible = errors.New("request to the backend failed after
multiple attempts", transient.Tag) |
| 108 // ErrEnsurePackagesFailed is returned by EnsurePackages if something is
not right. | 109 // ErrEnsurePackagesFailed is returned by EnsurePackages if something is
not right. |
| 109 ErrEnsurePackagesFailed = errors.New("failed to update packages, see the
log") | 110 ErrEnsurePackagesFailed = errors.New("failed to update packages, see the
log") |
| 110 // ErrPackageNotFound is returned by DeletePackage if the package doesn'
t exist. | 111 // ErrPackageNotFound is returned by DeletePackage if the package doesn'
t exist. |
| 111 ErrPackageNotFound = errors.New("no such package") | 112 ErrPackageNotFound = errors.New("no such package") |
| 112 ) | 113 ) |
| 113 | 114 |
| 114 var ( | 115 var ( |
| 115 // UserAgent is HTTP user agent string for CIPD client. | 116 // UserAgent is HTTP user agent string for CIPD client. |
| 116 UserAgent = "cipd 1.7.0" | 117 UserAgent = "cipd 1.7.0" |
| 117 ) | 118 ) |
| (...skipping 1408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1526 aMap[subdir] = &a | 1527 aMap[subdir] = &a |
| 1527 } | 1528 } |
| 1528 return true | 1529 return true |
| 1529 }) | 1530 }) |
| 1530 | 1531 |
| 1531 if len(aMap) == 0 { | 1532 if len(aMap) == 0 { |
| 1532 return nil | 1533 return nil |
| 1533 } | 1534 } |
| 1534 return | 1535 return |
| 1535 } | 1536 } |
| OLD | NEW |