Merge pull request #10627 from ywk253100/200202_reference

Add child artifact digest in reference model
This commit is contained in:
Wenkai Yin(尹文开) 2020-02-05 13:31:12 +08:00 committed by GitHub
commit 260d43db4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 5 deletions

View File

@ -467,6 +467,9 @@ definitions:
type: integer type: integer
format: int64 format: int64
description: The child ID of the reference description: The child ID of the reference
child_digest:
type: string
description: The digest of the child artifact
platform: platform:
$ref: '#/definitions/Platform' $ref: '#/definitions/Platform'
Platform: Platform:

View File

@ -47,8 +47,9 @@ func (a *Artifact) ToSwagger() *models.Artifact {
} }
for _, reference := range a.References { for _, reference := range a.References {
ref := &models.Reference{ ref := &models.Reference{
ChildID: reference.ChildID, ChildID: reference.ChildID,
ParentID: reference.ParentID, ChildDigest: reference.ChildDigest,
ParentID: reference.ParentID,
} }
if reference.Platform != nil { if reference.Platform != nil {
ref.Platform = &models.Platform{ ref.Platform = &models.Platform{

View File

@ -127,6 +127,11 @@ func (m *manager) assemble(ctx context.Context, art *dao.Artifact) (*Artifact, e
for _, ref := range refs { for _, ref := range refs {
reference := &Reference{} reference := &Reference{}
reference.From(ref) reference.From(ref)
art, err := m.dao.Get(ctx, reference.ChildID)
if err != nil {
return nil, err
}
reference.ChildDigest = art.Digest
artifact.References = append(artifact.References, reference) artifact.References = append(artifact.References, reference)
} }
return artifact, nil return artifact, nil

View File

@ -105,6 +105,9 @@ func (m *managerTestSuite) TestAssemble() {
ChildID: 3, ChildID: 3,
}, },
}, nil) }, nil)
m.dao.On("Get").Return(&dao.Artifact{
Digest: "digest",
}, nil)
artifact, err := m.mgr.assemble(nil, art) artifact, err := m.mgr.assemble(nil, art)
m.Require().Nil(err) m.Require().Nil(err)
m.dao.AssertExpectations(m.T()) m.dao.AssertExpectations(m.T())

View File

@ -101,9 +101,10 @@ func (a *Artifact) To() *dao.Artifact {
// Reference records the child artifact referenced by parent artifact // Reference records the child artifact referenced by parent artifact
type Reference struct { type Reference struct {
ParentID int64 ParentID int64
ChildID int64 ChildID int64
Platform *v1.Platform ChildDigest string // As we only provide the API based on digest rather than ID, the digest of child artifact is needed
Platform *v1.Platform
} }
// From converts the data level reference to business level // From converts the data level reference to business level