Start on UI for Quay

This commit is contained in:
Joseph Schorr 2013-09-26 17:59:20 -04:00
parent 9278871381
commit 27ce5c00b2
10 changed files with 258 additions and 17 deletions

View file

@ -7,6 +7,8 @@ from functools import wraps
from data import model
from app import app
from util.names import parse_repository_name
from auth.permissions import (ReadRepositoryPermission,
ModifyRepositoryPermission)
logger = logging.getLogger(__name__)
@ -23,6 +25,7 @@ def create_repo_api():
pass
@app.route('/api/repository/', methods=['GET'])
@login_required
def list_repos_api():
@ -46,11 +49,59 @@ def list_repos_api():
@login_required
@parse_repository_name
def update_repo_api(namespace, repository):
pass
permission = ModifyRepositoryPermission(namespace, repository)
if permission.can():
repo = model.get_repository(namespace, repository)
if repo:
values = request.get_json()
repo.description = values['description']
repo.save()
return jsonify({
'success': True
})
abort(404)
@app.route('/api/repository/<path:repository>', methods=['GET'])
@login_required
@parse_repository_name
def get_repo_api(namespace, repository):
pass
def image_view(image):
return {
'id': image.image_id,
'created': image.created,
'comment': image.comment
}
def tag_view(tag):
image = model.get_tag_image(namespace, repository, tag.name)
if not image:
return {}
return {
'name': tag.name,
'image': image_view(image)
}
def repo_view(repository, tags = []):
tag_list = []
for tag in tags:
tag_list.append(tag_view(tag))
return {
'namespace': repository.namespace,
'name': repository.name,
'description': repository.description,
'tags': tag_list,
'can_write': ModifyRepositoryPermission(repository.namespace, repository.name).can()
}
permission = ReadRepositoryPermission(namespace, repository)
if permission.can():
repo = model.get_repository(namespace, repository)
if repo:
tags = model.list_repository_tags(namespace, repository)
return jsonify(repo_view(repo, tags = tags))
abort(404)