Add automatic storage replication
Adds a worker to automatically replicate data between storages and update the database accordingly
This commit is contained in:
parent
c693afca6a
commit
724b1607d7
18 changed files with 259 additions and 35 deletions
12
initdb.py
12
initdb.py
|
@ -19,6 +19,7 @@ from data.database import (db, all_models, Role, TeamRole, Visibility, LoginServ
|
|||
ExternalNotificationEvent, ExternalNotificationMethod, NotificationKind)
|
||||
from data import model
|
||||
from app import app, storage as store
|
||||
from storage.basestorage import StoragePaths
|
||||
|
||||
from workers import repositoryactioncounter
|
||||
|
||||
|
@ -84,6 +85,17 @@ def __create_subtree(repo, structure, creator_username, parent, tag_map):
|
|||
new_image.storage.checksum = checksum
|
||||
new_image.storage.save()
|
||||
|
||||
# Write some data for the storage.
|
||||
if os.environ.get('WRITE_STORAGE_FILES'):
|
||||
storage_paths = StoragePaths()
|
||||
paths = [storage_paths.image_json_path,
|
||||
storage_paths.image_ancestry_path,
|
||||
storage_paths.image_layer_path]
|
||||
|
||||
for path_builder in paths:
|
||||
path = path_builder(new_image.storage.uuid)
|
||||
store.put_content('local_us', path, checksum)
|
||||
|
||||
creation_time = REFERENCE_DATE + timedelta(weeks=image_num) + timedelta(days=model_num)
|
||||
command_list = SAMPLE_CMDS[image_num % len(SAMPLE_CMDS)]
|
||||
command = json.dumps(command_list) if command_list else None
|
||||
|
|
Reference in a new issue