working on publish with changelist

Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
This commit is contained in:
David Lawrence 2015-07-08 10:05:55 -07:00 committed by Diogo Monica
parent 3bcc0e1d4d
commit 12b4b3d80d
1 changed files with 33 additions and 7 deletions

View File

@ -284,32 +284,58 @@ func (r *NotaryRepository) GetTargetByName(name string) (*Target, error) {
// Publish pushes the local changes in signed material to the remote notary-server // Publish pushes the local changes in signed material to the remote notary-server
func (r *NotaryRepository) Publish() error { func (r *NotaryRepository) Publish() error {
r.bootstrapRepo() _, err := r.bootstrapClient() // just need the repo to be initialized from remote
if err != nil {
if _, ok := err.(*store.ErrMetaNotFound); ok {
// init or return error to make caller init, then publish again
} else {
return err
}
}
cl, err := changelist.NewFileChangelist(filepath.Join(r.tufRepoPath, "changelist"))
if err != nil {
return err
}
applyChangelist(r.tufRepo, cl)
remote, err := getRemoteStore(r.Gun) remote, err := getRemoteStore(r.Gun)
root, err := r.fileStore.GetMeta("root", 0) root, err := r.tufRepo.SignRoot(data.DefaultExpires("root"), r.signer)
if err != nil { if err != nil {
return err return err
} }
targets, err := r.fileStore.GetMeta("targets", 0) targets, err := r.tufRepo.SignTargets("targets", data.DefaultExpires("targets"), nil)
if err != nil { if err != nil {
return err return err
} }
snapshot, err := r.fileStore.GetMeta("snapshot", 0) snapshot, err := r.tufRepo.SignSnapshot(data.DefaultExpires("snapshot"), nil)
if err != nil { if err != nil {
return err return err
} }
err = remote.SetMeta("root", root) rootJSON, err := json.Marshal(root)
if err != nil { if err != nil {
return err return err
} }
err = remote.SetMeta("targets", targets) targetsJSON, err := json.Marshal(targets)
if err != nil { if err != nil {
return err return err
} }
err = remote.SetMeta("snapshot", snapshot) snapshotJSON, err := json.Marshal(snapshot)
if err != nil {
return err
}
err = remote.SetMeta("root", rootJSON)
if err != nil {
return err
}
err = remote.SetMeta("targets", targetsJSON)
if err != nil {
return err
}
err = remote.SetMeta("snapshot", snapshotJSON)
if err != nil { if err != nil {
return err return err
} }