Source code for slave.models

#!/usr/bin/env python
# encoding: utf-8

import datetime
from mongoengine import *
import os

[docs]def do_connect(host): connect("talus", host=host, port=27017)
class Result(Document): job = ReferenceField("Job", required=True) timestamps = DictField() data = StringField() class Task(Document): name = StringField(unique_with="tool") tool = ReferenceField("Code", required=True) params = DictField() version = StringField() # intended to be used for git versioning status = DictField() limit = IntField(default=1) class Job(Document): name = StringField() task = ReferenceField("Task", required=True) params = DictField() status = DictField() timestamps = DictField() queue = StringField() priority = IntField(default=50) # 0-100 limit = IntField(default=1) progress = IntField(default=0) image = ReferenceField("Image", required=True) network = StringField() class Code(Document): name = StringField(unique_with="type") type = StringField() params = ListField() bases = ListField() desc = StringField() timestamps = DictField() class TmpFile(Document): path = StringField(unique=True) class OS(Document): name = StringField() version = StringField() type = StringField() arch = StringField() class Image(Document): name = StringField(required=True) os = ReferenceField("OS", required=True) desc = StringField(required=False) tags = ListField(StringField()) status = DictField() base_image = ReferenceField("Image", null=True, required=False) username = StringField(required=True, default="user") password = StringField(required=True, default="password") md5 = StringField(required=False, null=True) timestamps = DictField() class Slave(Document): hostname = StringField() uuid = StringField() ip = StringField() max_vms = IntField(default=1) running_vms = IntField(default=0) total_jobs_run = IntField(default=0)