mirror of
https://github.com/goharbor/harbor.git
synced 2024-10-01 23:07:39 +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(ResourceLabel),
|
||||||
new(JobLog),
|
new(JobLog),
|
||||||
new(OIDCUser),
|
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/manifestlist"
|
||||||
"github.com/docker/distribution/manifest/schema1"
|
"github.com/docker/distribution/manifest/schema1"
|
||||||
"github.com/docker/distribution/manifest/schema2"
|
"github.com/docker/distribution/manifest/schema2"
|
||||||
"github.com/goharbor/harbor/src/common/models"
|
|
||||||
v1 "github.com/opencontainers/image-spec/specs-go/v1"
|
v1 "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -29,13 +28,10 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
orm.RegisterModel(&Blob{})
|
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
|
the status are used for Garbage Collection
|
||||||
StatusNone, the blob is using in Harbor as normal.
|
StatusNone, the blob is using in Harbor as normal.
|
||||||
@ -69,6 +65,32 @@ var StatusMap = map[string][]string{
|
|||||||
StatusDeleteFailed: {StatusDeleting},
|
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.
|
// Blob holds the details of a blob.
|
||||||
type Blob struct {
|
type Blob struct {
|
||||||
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
ID int64 `orm:"pk;auto;column(id)" json:"id"`
|
||||||
@ -99,9 +121,6 @@ func (b *Blob) IsManifest() bool {
|
|||||||
b.ContentType == manifestlist.MediaTypeManifestList
|
b.ContentType == manifestlist.MediaTypeManifestList
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProjectBlob alias ProjectBlob model
|
|
||||||
type ProjectBlob = models.ProjectBlob
|
|
||||||
|
|
||||||
// FilterByArtifactDigest returns orm.QuerySeter with artifact digest filter
|
// FilterByArtifactDigest returns orm.QuerySeter with artifact digest filter
|
||||||
func (b *Blob) FilterByArtifactDigest(ctx context.Context, qs orm.QuerySeter, key string, value interface{}) orm.QuerySeter {
|
func (b *Blob) FilterByArtifactDigest(ctx context.Context, qs orm.QuerySeter, key string, value interface{}) orm.QuerySeter {
|
||||||
v, ok := value.(string)
|
v, ok := value.(string)
|
||||||
|
Loading…
Reference in New Issue
Block a user