Skip to content
Snippets Groups Projects
Unverified Commit 285afebb authored by Kamil Trzcinski's avatar Kamil Trzcinski
Browse files

Fix support for uploads, signatures and deletes

parent 32bb484b
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -11,6 +11,7 @@ import (
var (
deletedLinks int
deletedBlobs int
deletedOther int
deletedBlobSize int64
)
 
Loading
Loading
@@ -30,19 +31,29 @@ func (d *deletesData) schedule(path string, size int64) {
deletedLinks++
} else if name == "data" {
deletedBlobs++
} else {
deletedOther++
}
deletedBlobSize += size
if *dryRun {
return
}
*d = append(*d, path)
}
 
func (d *deletesData) info() {
logrus.Warningln("DELETEABLE INFO:", deletedLinks, "links,",
deletedBlobs, "blobs,",
deletedOther, "other,",
humanize.Bytes(uint64(deletedBlobSize)),
)
}
 
func (d *deletesData) run() {
if *dryRun {
return
}
jg := jobsRunner.group()
 
for _, path_ := range *d {
Loading
Loading
Loading
Loading
@@ -78,19 +78,17 @@ func verifyLink(link string, path string, etag string) error {
content := "sha256:" + link
if compareEtag([]byte(content), etag) {
return nil
} else {
return fmt.Errorf("etag for %s is not equal %s", link, etag)
}
} else {
readed, err := readLink(path, etag)
if err != nil {
return err
}
}
 
if readed != link {
return fmt.Errorf("%s: readed link for %s is not equal %s", path, link, readed)
}
readed, err := readLink(path, etag)
if err != nil {
return err
}
 
return nil
if readed != link {
return fmt.Errorf("%s: readed link for %s is not equal %s", path, link, readed)
}
return nil
}
Loading
Loading
@@ -19,7 +19,7 @@ type repositoryData struct {
manifests map[string]int
manifestSignatures map[string][]string
tags map[string]*tag
uploads map[string]int
uploads []string
lock sync.Mutex
}
 
Loading
Loading
@@ -37,7 +37,6 @@ func newRepositoryData(name string) *repositoryData {
manifests: make(map[string]int),
manifestSignatures: make(map[string][]string),
tags: make(map[string]*tag),
uploads: make(map[string]int),
}
}
 
Loading
Loading
@@ -232,7 +231,7 @@ func (r *repositoryData) addManifestRevision(args []string, info fileInfo) error
 
link, signature, err := analyzeLinkSignature(args)
if err == nil {
err = verifyLink(link, r.manifestRevisionSignaturePath(link, signature), info.etag)
err = verifyLink(signature, r.manifestRevisionSignaturePath(link, signature), info.etag)
if err != nil {
return err
}
Loading
Loading
@@ -278,13 +277,16 @@ func (r *repositoryData) addManifest(args []string, info fileInfo) error {
}
 
func (r *repositoryData) addUpload(args []string, info fileInfo) error {
// /test/_uploads/579c7fc9b0d60a19706cd6c1573fec9a28fa758bfe1ece86a1e5c68ad6f4e9d1
if len(args) != 1 {
// logrus.Warningln("invalid args for uploads: %v", args)
return nil
// /test/_uploads/f82d2b61-f130-4be5-b4f6-92cb18c7cf89/startedat
// /test/_uploads/f82d2b61-f130-4be5-b4f6-92cb18c7cf89/hashstates/sha256/0
if len(args) < 1 {
return fmt.Errorf("invalid args for uploads: %v", args)
}
 
r.uploads[args[0]] = 1
r.lock.Lock()
defer r.lock.Unlock()
r.uploads = append(r.uploads, strings.Join(args, "/"))
return nil
}
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment