Rename oci_model to appr_model
This commit is contained in:
parent
f0d4841155
commit
6622f27c93
19 changed files with 222 additions and 171 deletions
141
data/database.py
141
data/database.py
|
@ -471,8 +471,7 @@ class User(BaseModel):
|
|||
TagManifest, AccessToken, OAuthAccessToken, BlobUpload,
|
||||
RepositoryNotification, OAuthAuthorizationCode,
|
||||
RepositoryActionCount, TagManifestLabel, Tag,
|
||||
ManifestLabel, BlobUploading, TeamSync,
|
||||
RepositorySearchScore, DeletedNamespace} | beta_classes
|
||||
TeamSync, RepositorySearchScore, DeletedNamespace} | cnr_classes
|
||||
delete_instance_filtered(self, User, delete_nullable, skip_transitive_deletes)
|
||||
|
||||
|
||||
|
@ -620,7 +619,7 @@ class Repository(BaseModel):
|
|||
# are cleaned up directly
|
||||
skip_transitive_deletes = {RepositoryTag, RepositoryBuild, RepositoryBuildTrigger, BlobUpload,
|
||||
Image, TagManifest, TagManifestLabel, Label, DerivedStorageForImage,
|
||||
RepositorySearchScore} | beta_classes
|
||||
RepositorySearchScore} | cnr_classes
|
||||
|
||||
delete_instance_filtered(self, Repository, delete_nullable, skip_transitive_deletes)
|
||||
|
||||
|
@ -1239,6 +1238,7 @@ class TagManifestLabel(BaseModel):
|
|||
class Blob(BaseModel):
|
||||
""" Blob represents a content-addressable object stored outside of the database.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
digest = CharField(index=True, unique=True)
|
||||
media_type = EnumField(MediaType)
|
||||
|
@ -1249,21 +1249,15 @@ class Blob(BaseModel):
|
|||
class BlobPlacementLocation(BaseModel):
|
||||
""" BlobPlacementLocation is an enumeration of the possible storage locations for Blobs.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
name = CharField(index=True, unique=True)
|
||||
|
||||
|
||||
class BlobPlacementLocationPreference(BaseModel):
|
||||
""" BlobPlacementLocationPreference is a location to which a user's data will be replicated.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
user = QuayUserField(index=True, allows_robots=False)
|
||||
location = EnumField(BlobPlacementLocation)
|
||||
|
||||
|
||||
class BlobPlacement(BaseModel):
|
||||
""" BlobPlacement represents the location of a Blob.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
blob = ForeignKeyField(Blob)
|
||||
location = EnumField(BlobPlacementLocation)
|
||||
|
@ -1276,58 +1270,20 @@ class BlobPlacement(BaseModel):
|
|||
)
|
||||
|
||||
|
||||
class BlobUploading(BaseModel):
|
||||
""" BlobUploading represents the state of a Blob currently being uploaded.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
uuid = CharField(index=True, unique=True)
|
||||
created = DateTimeField(default=datetime.now, index=True)
|
||||
repository = ForeignKeyField(Repository, index=True)
|
||||
location = ForeignKeyField(BlobPlacementLocation)
|
||||
byte_count = IntegerField(default=0)
|
||||
uncompressed_byte_count = IntegerField(null=True)
|
||||
chunk_count = IntegerField(default=0)
|
||||
storage_metadata = JSONField(null=True, default={})
|
||||
sha_state = ResumableSHA256Field(null=True, default=resumablehashlib.sha256)
|
||||
piece_sha_state = ResumableSHA1Field(null=True)
|
||||
piece_hashes = Base64BinaryField(null=True)
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
read_slaves = (read_slave,)
|
||||
indexes = (
|
||||
(('repository', 'uuid'), True),
|
||||
)
|
||||
|
||||
|
||||
class Manifest(BaseModel):
|
||||
""" Manifest represents the metadata and collection of blobs that comprise a container image.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
digest = CharField(index=True, unique=True)
|
||||
media_type = EnumField(MediaType)
|
||||
manifest_json = JSONField()
|
||||
|
||||
|
||||
class ManifestLabel(BaseModel):
|
||||
""" ManifestLabel represents label metadata annotating a Manifest.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
repository = ForeignKeyField(Repository, index=True)
|
||||
annotated = ForeignKeyField(Manifest, index=True)
|
||||
label = ForeignKeyField(Label)
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
read_slaves = (read_slave,)
|
||||
indexes = (
|
||||
(('repository', 'annotated', 'label'), True),
|
||||
)
|
||||
|
||||
|
||||
class ManifestBlob(BaseModel):
|
||||
""" ManifestBlob is a many-to-many relation table linking Manifests and Blobs.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
manifest = ForeignKeyField(Manifest, index=True)
|
||||
blob = ForeignKeyField(Blob, index=True)
|
||||
|
@ -1343,6 +1299,7 @@ class ManifestBlob(BaseModel):
|
|||
class ManifestList(BaseModel):
|
||||
""" ManifestList represents all of the various manifests that compose a Tag.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
digest = CharField(index=True, unique=True)
|
||||
manifest_list_json = JSONField()
|
||||
|
@ -1353,6 +1310,7 @@ class ManifestList(BaseModel):
|
|||
class TagKind(BaseModel):
|
||||
""" TagKind is a enumtable to reference tag kinds.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
name = CharField(index=True, unique=True)
|
||||
|
||||
|
@ -1360,6 +1318,7 @@ class TagKind(BaseModel):
|
|||
class Tag(BaseModel):
|
||||
""" Tag represents a user-facing alias for referencing a ManifestList.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
name = CharField()
|
||||
repository = ForeignKeyField(Repository)
|
||||
|
@ -1389,6 +1348,7 @@ Channel = Tag.alias()
|
|||
class ManifestListManifest(BaseModel):
|
||||
""" ManifestListManifest is a many-to-many relation table linking ManifestLists and Manifests.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
CNR
|
||||
"""
|
||||
manifest_list = ForeignKeyField(ManifestList, index=True)
|
||||
manifest = ForeignKeyField(Manifest, index=True)
|
||||
|
@ -1406,79 +1366,6 @@ class ManifestListManifest(BaseModel):
|
|||
)
|
||||
|
||||
|
||||
class ManifestLayer(BaseModel):
|
||||
""" ManifestLayer represents one of the layers that compose a Manifest.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
blob = ForeignKeyField(Blob, index=True)
|
||||
manifest = ForeignKeyField(Manifest)
|
||||
manifest_index = IntegerField(index=True) # index 0 is the last command in a Dockerfile
|
||||
metadata_json = JSONField()
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
read_slaves = (read_slave,)
|
||||
indexes = (
|
||||
(('manifest', 'manifest_index'), True),
|
||||
)
|
||||
|
||||
|
||||
class ManifestLayerDockerV1(BaseModel):
|
||||
""" ManifestLayerDockerV1 is the Docker v1 registry protocol metadata for a ManifestLayer.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
manifest_layer = ForeignKeyField(ManifestLayer)
|
||||
image_id = CharField(index=True)
|
||||
checksum = CharField()
|
||||
compat_json = JSONField()
|
||||
|
||||
|
||||
class ManifestLayerScan(BaseModel):
|
||||
""" ManifestLayerScan represents the state of security scanning for a ManifestLayer.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
layer = ForeignKeyField(ManifestLayer, unique=True)
|
||||
scannable = BooleanField()
|
||||
scanned_by = CharField()
|
||||
|
||||
|
||||
class DerivedImage(BaseModel):
|
||||
""" DerivedImage represents a Manifest transcoded into an alternative format.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
uuid = CharField(default=uuid_generator, unique=True)
|
||||
source_manifest = ForeignKeyField(Manifest)
|
||||
derived_manifest_json = JSONField()
|
||||
media_type = EnumField(MediaType)
|
||||
blob = ForeignKeyField(Blob, related_name='blob')
|
||||
uniqueness_hash = CharField(index=True, unique=True)
|
||||
signature_blob = ForeignKeyField(Blob, null=True, related_name='signature_blob')
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
read_slaves = (read_slave,)
|
||||
indexes = (
|
||||
(('source_manifest', 'blob'), True),
|
||||
(('source_manifest', 'media_type', 'uniqueness_hash'), True),
|
||||
)
|
||||
|
||||
|
||||
class BitTorrentPieces(BaseModel):
|
||||
""" BitTorrentPieces represents the BitTorrent piece metadata calculated from a Blob.
|
||||
This model is a part of the new OCI/CNR model set.
|
||||
"""
|
||||
blob = ForeignKeyField(Blob)
|
||||
pieces = Base64BinaryField()
|
||||
piece_length = IntegerField()
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
read_slaves = (read_slave,)
|
||||
indexes = (
|
||||
(('blob', 'piece_length'), True),
|
||||
)
|
||||
|
||||
|
||||
class AppSpecificAuthToken(BaseModel):
|
||||
""" AppSpecificAuthToken represents a token generated by a user for use with an external
|
||||
application where putting the user's credentials, even encrypted, is deemed too risky.
|
||||
|
@ -1499,9 +1386,7 @@ class AppSpecificAuthToken(BaseModel):
|
|||
)
|
||||
|
||||
|
||||
beta_classes = set([ManifestLayerScan, Tag, TagKind, BlobPlacementLocation, ManifestLayer, ManifestList,
|
||||
BitTorrentPieces, MediaType, Label, ManifestBlob, BlobUploading, Blob,
|
||||
ManifestLayerDockerV1, BlobPlacementLocationPreference, ManifestListManifest,
|
||||
Manifest, DerivedImage, BlobPlacement, ManifestLabel])
|
||||
cnr_classes = set([Tag, TagKind, BlobPlacementLocation, ManifestList, ManifestBlob, Blob,
|
||||
ManifestListManifest, Manifest, BlobPlacement])
|
||||
is_model = lambda x: inspect.isclass(x) and issubclass(x, BaseModel) and x is not BaseModel
|
||||
all_models = [model[1] for model in inspect.getmembers(sys.modules[__name__], is_model)]
|
||||
|
|
Reference in a new issue