Add the first part of the build worker that runs on quay.
This commit is contained in:
parent
9dc9e0c940
commit
847e91b696
10 changed files with 196 additions and 11 deletions
|
@ -150,6 +150,13 @@ class RepositoryTag(BaseModel):
|
|||
)
|
||||
|
||||
|
||||
class RepositoryBuild(BaseModel):
|
||||
digitalocean_build_node_id = IntegerField(null=True)
|
||||
phase = CharField(default='waiting')
|
||||
status_url = CharField(null=True)
|
||||
repository = ForeignKeyField(Repository)
|
||||
|
||||
|
||||
class QueueItem(BaseModel):
|
||||
queue_name = CharField(index=True)
|
||||
body = TextField()
|
||||
|
@ -162,7 +169,7 @@ def initialize_db():
|
|||
create_model_tables([User, Repository, Image, AccessToken, Role,
|
||||
RepositoryPermission, Visibility, RepositoryTag,
|
||||
EmailConfirmation, FederatedLogin, LoginService,
|
||||
QueueItem])
|
||||
QueueItem, RepositoryBuild])
|
||||
Role.create(name='admin')
|
||||
Role.create(name='write')
|
||||
Role.create(name='read')
|
||||
|
|
|
@ -30,6 +30,10 @@ class InvalidTokenException(DataModelException):
|
|||
pass
|
||||
|
||||
|
||||
class InvalidRepositoryBuildException(DataModelException):
|
||||
pass
|
||||
|
||||
|
||||
def create_user(username, password, email):
|
||||
if not validate_email(email):
|
||||
raise InvalidEmailAddressException('Invalid email address: %s' % email)
|
||||
|
@ -548,3 +552,11 @@ def load_token_data(code):
|
|||
return fetched[0]
|
||||
else:
|
||||
raise InvalidTokenException('Invalid delegate token code: %s' % code)
|
||||
|
||||
|
||||
def get_repository_build(request_dbid):
|
||||
try:
|
||||
return RepositoryBuild.get(RepositoryBuild == request_dbid)
|
||||
except RepositoryBuild.DoesNotExist:
|
||||
msg = 'Unable to locate a build by id: %s' % request_dbid
|
||||
raise InvalidRepositoryBuildException(msg)
|
||||
|
|
|
@ -56,3 +56,4 @@ class WorkQueue(object):
|
|||
|
||||
|
||||
image_diff_queue = WorkQueue('imagediff')
|
||||
dockerfile_build_queue = WorkQueue('dockerfilebuild')
|
||||
|
|
Reference in a new issue