change to ListRoles, and GetAllLoadedRoles

Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
This commit is contained in:
Riyaz Faizullabhoy 2016-01-20 09:27:32 -08:00
parent a052d9e105
commit 25a1e9aed7
5 changed files with 19 additions and 34 deletions

View File

@ -577,20 +577,17 @@ type RoleWithSignatures struct {
data.Role
}
// GetRepoRoleMetaInfo returns a list of RoleWithSignatures objects for this repo
// ListRoles returns a list of RoleWithSignatures objects for this repo
// This represents the latest metadata for each role in this repo
func (r *NotaryRepository) GetRepoRoleMetaInfo() ([]RoleWithSignatures, error) {
func (r *NotaryRepository) ListRoles() ([]RoleWithSignatures, error) {
// Update to latest repo state
_, err := r.Update(false)
if err != nil {
return nil, err
}
// Get all role info from our updated keysDB
roles, err := r.tufRepo.GetAllRoles()
if err != nil {
return nil, err
}
// Get all role info from our updated keysDB, can be empty
roles := r.tufRepo.GetAllLoadedRoles()
var roleWithSigs []RoleWithSignatures

View File

@ -2950,8 +2950,8 @@ func TestDeleteRepoNoCerts(t *testing.T) {
assertRepoHasExpectedKeys(t, repo, rootKeyID, true)
}
// Test that we get a correct map of key IDs
func TestGetRepoRoleMetaInfo(t *testing.T) {
// Test that we get a correct list of roles with keys and signatures
func TestListRoles(t *testing.T) {
ts := fullTestServer(t)
defer ts.Close()
@ -2960,7 +2960,7 @@ func TestGetRepoRoleMetaInfo(t *testing.T) {
assert.NoError(t, repo.Publish())
rolesWithSigs, err := repo.GetRepoRoleMetaInfo()
rolesWithSigs, err := repo.ListRoles()
assert.NoError(t, err)
// Should only have base roles at this point
@ -2980,7 +2980,7 @@ func TestGetRepoRoleMetaInfo(t *testing.T) {
assert.NoError(t, repo.Publish())
rolesWithSigs, err = repo.GetRepoRoleMetaInfo()
rolesWithSigs, err = repo.ListRoles()
assert.NoError(t, err)
assert.Len(t, rolesWithSigs, len(data.BaseRoles)+1)
@ -2998,7 +2998,7 @@ func TestGetRepoRoleMetaInfo(t *testing.T) {
addTarget(t, repo, "current", "../fixtures/intermediate-ca.crt", "targets/a")
assert.NoError(t, repo.Publish())
rolesWithSigs, err = repo.GetRepoRoleMetaInfo()
rolesWithSigs, err = repo.ListRoles()
assert.NoError(t, err)
assert.Len(t, rolesWithSigs, len(data.BaseRoles)+1)
@ -3017,7 +3017,7 @@ func TestGetRepoRoleMetaInfo(t *testing.T) {
assert.NoError(t, repo.Publish())
rolesWithSigs, err = repo.GetRepoRoleMetaInfo()
rolesWithSigs, err = repo.ListRoles()
assert.NoError(t, err)
assert.Len(t, rolesWithSigs, len(data.BaseRoles)+2)
@ -3039,12 +3039,12 @@ func TestGetRepoRoleMetaInfo(t *testing.T) {
assert.NoError(t, repo2.Publish())
// repo2 only has the base roles
rolesWithSigs2, err := repo2.GetRepoRoleMetaInfo()
rolesWithSigs2, err := repo2.ListRoles()
assert.NoError(t, err)
assert.Len(t, rolesWithSigs2, len(data.BaseRoles))
// original repo stays in same state (base roles + 2 delegations)
rolesWithSigs, err = repo.GetRepoRoleMetaInfo()
rolesWithSigs, err = repo.ListRoles()
assert.NoError(t, err)
assert.Len(t, rolesWithSigs, len(data.BaseRoles)+2)
}

View File

@ -37,13 +37,6 @@ func (e ErrNoSuchRole) Error() string {
return fmt.Sprintf("role does not exist: %s", e.Role)
}
// ErrNoRoles indicates no roles exist for this repo
type ErrNoRoles struct{}
func (e ErrNoRoles) Error() string {
return fmt.Sprintf("no roles exist")
}
// ErrInvalidRole represents an error regarding a role. Typically
// something like a role for which sone of the public keys were
// not found in the TUF repo.

View File

@ -173,13 +173,9 @@ func (tr *Repo) RemoveBaseKeys(role string, keyIDs ...string) error {
return nil
}
// GetAllRoles returns a list of all role entries for this TUF repo
func (tr *Repo) GetAllRoles() ([]*data.Role, error) {
roles := tr.keysDB.GetAllRoles()
if len(roles) == 0 {
return nil, data.ErrNoRoles{}
}
return roles, nil
// GetAllLoadedRoles returns a list of all role entries loaded in this TUF repo, could be empty
func (tr *Repo) GetAllLoadedRoles() []*data.Role {
return tr.keysDB.GetAllRoles()
}
// GetDelegation finds the role entry representing the provided

View File

@ -943,12 +943,11 @@ func TestGetAllRoles(t *testing.T) {
repo := initRepo(t, ed25519, keyDB)
// After we init, we get the base roles
roles, err := repo.GetAllRoles()
roles := repo.GetAllLoadedRoles()
assert.Len(t, roles, len(data.BaseRoles))
// Clear the keysDB, check that we error
// Clear the keysDB, check that we get an empty list
repo.keysDB = keys.NewDB()
roles, err = repo.GetAllRoles()
assert.Error(t, err)
assert.IsType(t, data.ErrNoRoles{}, err)
roles = repo.GetAllLoadedRoles()
assert.Len(t, roles, 0)
}