Merge remote-tracking branch 'origin/master' into rustedbuilds
Conflicts: data/database.py endpoints/api.py endpoints/common.py test/data/test.db
This commit is contained in:
commit
d5304f7db0
128 changed files with 845 additions and 207343 deletions
46
initdb.py
46
initdb.py
|
@ -17,6 +17,19 @@ store = app.config['STORAGE']
|
|||
|
||||
SAMPLE_DIFFS = ['test/data/sample/diffs/diffs%s.json' % i
|
||||
for i in range(1, 10)]
|
||||
|
||||
IMAGE_UUIDS = ['ab5160d1-8fb4-4022-a135-3c4de7f6ed97',
|
||||
'4259533e-868d-4db3-9a78-fc24ffc03a2b',
|
||||
'c2c6dc6e-24d1-4f15-a616-81c41e3e3629',
|
||||
'8ec59952-8f5a-4fa0-897e-57c3337e1914',
|
||||
'08a8ab1f-4aaa-4337-88ab-5b5c71a8d492',
|
||||
'4a71f3db-cbb1-4c3b-858f-1be032b3e875',
|
||||
'd40d531a-c70c-47f9-bf5b-2a4381db2d60',
|
||||
'6fe6cebb-52b2-4036-892e-b86d6487a56b',
|
||||
'e969ff76-e87d-4ea3-8cb3-0db9b5bcb8d9',
|
||||
'2e3b616b-301f-437c-98ab-37352f444a60',
|
||||
]
|
||||
|
||||
SAMPLE_CMDS = [["/bin/bash"],
|
||||
["/bin/sh", "-c",
|
||||
"echo \"PasswordAuthentication no\" >> /etc/ssh/sshd_config"],
|
||||
|
@ -43,7 +56,7 @@ def __gen_image_id(repo, image_num):
|
|||
|
||||
|
||||
global_image_num = [0]
|
||||
def __create_subtree(repo, structure, parent):
|
||||
def __create_subtree(repo, structure, creator_username, parent):
|
||||
num_nodes, subtrees, last_node_tags = structure
|
||||
|
||||
# create the nodes
|
||||
|
@ -54,7 +67,10 @@ def __create_subtree(repo, structure, parent):
|
|||
logger.debug('new docker id: %s' % docker_image_id)
|
||||
checksum = __gen_checksum(docker_image_id)
|
||||
|
||||
new_image = model.create_image(docker_image_id, repo)
|
||||
new_image = model.create_or_link_image(docker_image_id, repo, None, {}, {})
|
||||
new_image.storage.uuid = IMAGE_UUIDS[image_num % len(IMAGE_UUIDS)]
|
||||
new_image.storage.save()
|
||||
|
||||
model.set_image_checksum(docker_image_id, repo, checksum)
|
||||
|
||||
creation_time = REFERENCE_DATE + timedelta(days=image_num)
|
||||
|
@ -69,7 +85,8 @@ def __create_subtree(repo, structure, parent):
|
|||
|
||||
# Populate the diff file
|
||||
diff_path = store.image_file_diffs_path(repo.namespace, repo.name,
|
||||
docker_image_id)
|
||||
docker_image_id,
|
||||
new_image.storage.uuid)
|
||||
source_diff = SAMPLE_DIFFS[image_num % len(SAMPLE_DIFFS)]
|
||||
|
||||
with open(source_diff, 'r') as source_file:
|
||||
|
@ -86,7 +103,7 @@ def __create_subtree(repo, structure, parent):
|
|||
new_image.docker_image_id)
|
||||
|
||||
for subtree in subtrees:
|
||||
__create_subtree(repo, subtree, new_image)
|
||||
__create_subtree(repo, subtree, creator_username, new_image)
|
||||
|
||||
|
||||
def __generate_repository(user, name, description, is_public, permissions,
|
||||
|
@ -106,9 +123,9 @@ def __generate_repository(user, name, description, is_public, permissions,
|
|||
|
||||
if isinstance(structure, list):
|
||||
for s in structure:
|
||||
__create_subtree(repo, s, None)
|
||||
__create_subtree(repo, s, user.username, None)
|
||||
else:
|
||||
__create_subtree(repo, structure, None)
|
||||
__create_subtree(repo, structure, user.username, None)
|
||||
|
||||
return repo
|
||||
|
||||
|
@ -237,6 +254,10 @@ def populate_database():
|
|||
new_user_3.verified = True
|
||||
new_user_3.save()
|
||||
|
||||
new_user_4 = model.create_user('randomuser', 'password', 'no4@thanks.com')
|
||||
new_user_4.verified = True
|
||||
new_user_4.save()
|
||||
|
||||
reader = model.create_user('reader', 'password', 'no1@thanks.com')
|
||||
reader.verified = True
|
||||
reader.save()
|
||||
|
@ -245,6 +266,9 @@ def populate_database():
|
|||
outside_org.verified = True
|
||||
outside_org.save()
|
||||
|
||||
__generate_repository(new_user_4, 'randomrepo', 'Random repo repository.', False,
|
||||
[], (4, [], ['latest', 'prod']))
|
||||
|
||||
__generate_repository(new_user_1, 'simple', 'Simple repository.', False,
|
||||
[], (4, [], ['latest', 'prod']))
|
||||
|
||||
|
@ -270,6 +294,11 @@ def populate_database():
|
|||
'Public repository pullable by the world.', True,
|
||||
[], (10, [], 'latest'))
|
||||
|
||||
__generate_repository(outside_org, 'coolrepo',
|
||||
'Some cool repo.', False,
|
||||
[],
|
||||
(5, [], 'latest'))
|
||||
|
||||
__generate_repository(new_user_1, 'shared',
|
||||
'Shared repository, another user can write.', False,
|
||||
[(new_user_2, 'write'), (reader, 'read')],
|
||||
|
@ -311,6 +340,11 @@ def populate_database():
|
|||
[(outside_org, 'read')],
|
||||
(4, [], ['latest', 'prod']))
|
||||
|
||||
org_repo2 = __generate_repository(org, 'anotherorgrepo',
|
||||
'Another repository owned by an org.', False,
|
||||
[],
|
||||
(4, [], ['latest', 'prod']))
|
||||
|
||||
reader_team = model.create_team('readers', org, 'member',
|
||||
'Readers of orgrepo.')
|
||||
model.set_team_repo_permission(reader_team.name, org_repo.namespace,
|
||||
|
|
Reference in a new issue