4bf4ce33c9
This change replaces the metricqueue library with a native Prometheus client implementation with the intention to aggregated results with the Prometheus PushGateway. This change also adds instrumentation for greenlet context switches.
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from datetime import datetime, timedelta
|
|
|
|
from data import model
|
|
from data.database import BlobUpload as BlobUploadTable
|
|
from workers.blobuploadcleanupworker.models_interface import (BlobUpload,
|
|
BlobUploadCleanupWorkerDataInterface)
|
|
|
|
|
|
class PreOCIModel(BlobUploadCleanupWorkerDataInterface):
|
|
def get_stale_blob_upload(self, stale_threshold):
|
|
blob_upload = model.blob.get_stale_blob_upload(stale_threshold)
|
|
if blob_upload is None:
|
|
return None
|
|
|
|
return BlobUpload(blob_upload.uuid, blob_upload.storage_metadata, blob_upload.location.name)
|
|
|
|
def delete_blob_upload(self, blob_upload):
|
|
blob_upload = model.blob.get_blob_upload_by_uuid(blob_upload.uuid)
|
|
if blob_upload is None:
|
|
return
|
|
|
|
try:
|
|
blob_upload.delete_instance()
|
|
except BlobUploadTable.DoesNotExist:
|
|
pass
|
|
|
|
def create_stale_upload_for_testing(self):
|
|
blob_upload = model.blob.initiate_upload('devtable', 'simple', 'foobarbaz', 'local_us', {})
|
|
blob_upload.created = datetime.now() - timedelta(days=60)
|
|
blob_upload.save()
|
|
return BlobUpload(blob_upload.uuid, blob_upload.storage_metadata, blob_upload.location.name)
|
|
|
|
def blob_upload_exists(self, upload_uuid):
|
|
blob_upload = model.blob.get_blob_upload_by_uuid(upload_uuid)
|
|
return blob_upload is not None
|
|
|
|
|
|
pre_oci_model = PreOCIModel()
|