mirror of
https://github.com/goharbor/harbor.git
synced 2024-09-30 06:18:02 +02:00
move blob models (#14776)
1, move project_blob into pkg 2, move artifact_blob into pkg Signed-off-by: Wang Yan <wangyan@vmware.com>
This commit is contained in:
parent
9bbffa06db
commit
f3260fdad1
@ -1,18 +0,0 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// ArtifactAndBlob holds the relationship between manifest and blob.
|
||||
type ArtifactAndBlob struct {
|
||||
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
||||
DigestAF string `orm:"column(digest_af)" json:"digest_af"`
|
||||
DigestBlob string `orm:"column(digest_blob)" json:"digest_blob"`
|
||||
CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"`
|
||||
}
|
||||
|
||||
// TableName ...
|
||||
func (afb *ArtifactAndBlob) TableName() string {
|
||||
return "artifact_blob"
|
||||
}
|
@ -28,7 +28,5 @@ func init() {
|
||||
new(ResourceLabel),
|
||||
new(JobLog),
|
||||
new(OIDCUser),
|
||||
new(ProjectBlob),
|
||||
new(ArtifactAndBlob),
|
||||
)
|
||||
}
|
||||
|
@ -1,32 +0,0 @@
|
||||
// Copyright Project Harbor Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// ProjectBlob holds the relationship between manifest and blob.
|
||||
type ProjectBlob struct {
|
||||
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
||||
ProjectID int64 `orm:"column(project_id)" json:"project_id"`
|
||||
BlobID int64 `orm:"column(blob_id)" json:"blob_id"`
|
||||
CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"`
|
||||
}
|
||||
|
||||
// TableName ...
|
||||
func (*ProjectBlob) TableName() string {
|
||||
return "project_blob"
|
||||
}
|
@ -21,7 +21,6 @@ import (
|
||||
"github.com/docker/distribution/manifest/manifestlist"
|
||||
"github.com/docker/distribution/manifest/schema1"
|
||||
"github.com/docker/distribution/manifest/schema2"
|
||||
"github.com/goharbor/harbor/src/common/models"
|
||||
v1 "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"strings"
|
||||
"time"
|
||||
@ -29,13 +28,10 @@ import (
|
||||
|
||||
func init() {
|
||||
orm.RegisterModel(&Blob{})
|
||||
orm.RegisterModel(&ArtifactAndBlob{})
|
||||
orm.RegisterModel(&ProjectBlob{})
|
||||
}
|
||||
|
||||
// TODO: move ArtifactAndBlob, ProjectBlob to here
|
||||
|
||||
// ArtifactAndBlob alias ArtifactAndBlob model
|
||||
type ArtifactAndBlob = models.ArtifactAndBlob
|
||||
|
||||
/*
|
||||
the status are used for Garbage Collection
|
||||
StatusNone, the blob is using in Harbor as normal.
|
||||
@ -69,6 +65,32 @@ var StatusMap = map[string][]string{
|
||||
StatusDeleteFailed: {StatusDeleting},
|
||||
}
|
||||
|
||||
// ArtifactAndBlob holds the relationship between manifest and blob.
|
||||
type ArtifactAndBlob struct {
|
||||
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
||||
DigestAF string `orm:"column(digest_af)" json:"digest_af"`
|
||||
DigestBlob string `orm:"column(digest_blob)" json:"digest_blob"`
|
||||
CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"`
|
||||
}
|
||||
|
||||
// TableName ...
|
||||
func (afb *ArtifactAndBlob) TableName() string {
|
||||
return "artifact_blob"
|
||||
}
|
||||
|
||||
// ProjectBlob holds the relationship between manifest and blob.
|
||||
type ProjectBlob struct {
|
||||
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
||||
ProjectID int64 `orm:"column(project_id)" json:"project_id"`
|
||||
BlobID int64 `orm:"column(blob_id)" json:"blob_id"`
|
||||
CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"`
|
||||
}
|
||||
|
||||
// TableName ...
|
||||
func (*ProjectBlob) TableName() string {
|
||||
return "project_blob"
|
||||
}
|
||||
|
||||
// Blob holds the details of a blob.
|
||||
type Blob struct {
|
||||
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
||||
@ -99,9 +121,6 @@ func (b *Blob) IsManifest() bool {
|
||||
b.ContentType == manifestlist.MediaTypeManifestList
|
||||
}
|
||||
|
||||
// ProjectBlob alias ProjectBlob model
|
||||
type ProjectBlob = models.ProjectBlob
|
||||
|
||||
// FilterByArtifactDigest returns orm.QuerySeter with artifact digest filter
|
||||
func (b *Blob) FilterByArtifactDigest(ctx context.Context, qs orm.QuerySeter, key string, value interface{}) orm.QuerySeter {
|
||||
v, ok := value.(string)
|
||||
|
Loading…
Reference in New Issue
Block a user