Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
abf61480
Unverified
Commit
abf61480
authored
Jul 24, 2023
by
Bruce MacDonald
Committed by
GitHub
Jul 24, 2023
Browse files
remove file on digest mismatch
parents
a0dbbb23
5a5ca8e7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
1 deletion
+14
-1
server/images.go
server/images.go
+14
-1
No files found.
server/images.go
View file @
abf61480
...
@@ -700,6 +700,17 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon
...
@@ -700,6 +700,17 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon
fn
(
api
.
ProgressResponse
{
Status
:
"verifying sha256 digest"
})
fn
(
api
.
ProgressResponse
{
Status
:
"verifying sha256 digest"
})
for
_
,
layer
:=
range
layers
{
for
_
,
layer
:=
range
layers
{
if
err
:=
verifyBlob
(
layer
.
Digest
);
err
!=
nil
{
if
err
:=
verifyBlob
(
layer
.
Digest
);
err
!=
nil
{
if
errors
.
Is
(
err
,
errDigestMismatch
)
{
// something went wrong, delete the blob
fp
,
err
:=
GetBlobsPath
(
layer
.
Digest
)
if
err
!=
nil
{
return
err
}
if
err
:=
os
.
Remove
(
fp
);
err
!=
nil
{
// log this, but return the original error
log
.
Printf
(
"couldn't remove file with digest mismatch '%s': %v"
,
fp
,
err
)
}
}
return
err
return
err
}
}
}
}
...
@@ -1067,6 +1078,8 @@ func makeRequest(method, url string, headers map[string]string, body io.Reader,
...
@@ -1067,6 +1078,8 @@ func makeRequest(method, url string, headers map[string]string, body io.Reader,
return
resp
,
nil
return
resp
,
nil
}
}
var
errDigestMismatch
=
fmt
.
Errorf
(
"digest mismatch, file must be downloaded again"
)
func
verifyBlob
(
digest
string
)
error
{
func
verifyBlob
(
digest
string
)
error
{
fp
,
err
:=
GetBlobsPath
(
digest
)
fp
,
err
:=
GetBlobsPath
(
digest
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -1081,7 +1094,7 @@ func verifyBlob(digest string) error {
...
@@ -1081,7 +1094,7 @@ func verifyBlob(digest string) error {
fileDigest
,
_
:=
GetSHA256Digest
(
f
)
fileDigest
,
_
:=
GetSHA256Digest
(
f
)
if
digest
!=
fileDigest
{
if
digest
!=
fileDigest
{
return
fmt
.
Errorf
(
"
digest mismatch
: want %s, got %s"
,
digest
,
fileDigest
)
return
fmt
.
Errorf
(
"
%w
: want %s, got %s"
,
errDigestMismatch
,
digest
,
fileDigest
)
}
}
return
nil
return
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment