コード例 #1
0
class Environment(Base, TimestampMixin):
    """Represents a Environment in the metadata-store."""
    __tablename__ = 'environment'

    id = sa.Column(sa.String(255),
                   primary_key=True,
                   default=uuidutils.generate_uuid)
    name = sa.Column(sa.String(255), nullable=False)
    tenant_id = sa.Column(sa.String(36), nullable=False)
    version = sa.Column(sa.BigInteger, nullable=False, default=0)
    description = sa.Column(st.JsonBlob(), nullable=False, default={})
    networking = sa.Column(st.JsonBlob(), nullable=True, default={})

    sessions = sa_orm.relationship("Session",
                                   backref='environment',
                                   cascade='save-update, merge, delete')

    tasks = sa_orm.relationship('Task',
                                backref='environment',
                                cascade='save-update, merge, delete')

    def to_dict(self):
        dictionary = super(Environment, self).to_dict()
        del dictionary['description']
        return dictionary
コード例 #2
0
ファイル: models.py プロジェクト: bopopescu/OpenStack-Ocata
class Environment(Base, TimestampMixin):
    """Represents an Environment in the metadata-store."""
    __tablename__ = 'environment'
    __table_args__ = (sa.Index(
        'ix_name_tenant_id', 'name', 'tenant_id', unique=True),)

    id = sa.Column(sa.String(255),
                   primary_key=True,
                   default=uuidutils.generate_uuid)
    name = sa.Column(sa.String(255), nullable=False)
    tenant_id = sa.Column(sa.String(36), nullable=False)
    description_text = sa.Column(sa.String(), nullable=False, default='')
    version = sa.Column(sa.BigInteger, nullable=False, default=0)
    description = sa.Column(st.JsonBlob(), nullable=False, default={})

    sessions = sa_orm.relationship("Session", backref='environment',
                                   cascade='save-update, merge, delete')

    tasks = sa_orm.relationship('Task', backref='environment',
                                cascade='save-update, merge, delete')

    cf_spaces = sa_orm.relationship("CFSpace", backref='environment',
                                    cascade='save-update, merge, delete')

    cf_serv_inst = sa_orm.relationship("CFServiceInstance",
                                       backref='environment',
                                       cascade='save-update, merge, delete')

    def to_dict(self):
        dictionary = super(Environment, self).to_dict()
        del dictionary['description']
        return dictionary
コード例 #3
0
class EnvironmentTemplate(Base, TimestampMixin):
    """Represents a Environment emplate in the metadata-store."""
    __tablename__ = 'environment-template'

    id = sa.Column(sa.String(36),
                   primary_key=True,
                   default=uuidutils.generate_uuid)
    name = sa.Column(sa.String(255), nullable=False)
    tenant_id = sa.Column(sa.String(36), nullable=False)
    version = sa.Column(sa.BigInteger, nullable=False, default=0)
    description = sa.Column(st.JsonBlob(), nullable=False, default={})
    networking = sa.Column(st.JsonBlob(), nullable=True, default={})

    def to_dict(self):
        dictionary = super(EnvironmentTemplate, self).to_dict()
        if 'description' in dictionary:
            del dictionary['description']
        return dictionary
コード例 #4
0
class Package(Base, TimestampMixin):
    """Represents a meta information about application package."""
    __tablename__ = 'package'
    __table_args__ = (sa.Index('ix_package_fqn_and_owner',
                               'fully_qualified_name',
                               'owner_id',
                               unique=True), )
    id = sa.Column(sa.String(36),
                   primary_key=True,
                   default=uuidutils.generate_uuid)
    archive = sa.Column(st.LargeBinary())
    fully_qualified_name = sa.Column(sa.String(128), nullable=False)
    type = sa.Column(sa.String(20), nullable=False, default='class')
    author = sa.Column(sa.String(80), default='OpenStack')
    supplier = sa.Column(st.JsonBlob(), nullable=True, default={})
    name = sa.Column(sa.String(80), nullable=False)
    enabled = sa.Column(sa.Boolean, default=True)
    description = sa.Column(sa.Text(),
                            nullable=False,
                            default='The description is not provided')
    is_public = sa.Column(sa.Boolean, default=False)
    tags = sa_orm.relationship("Tag",
                               secondary=package_to_tag,
                               cascade='save-update, merge',
                               lazy='joined')
    logo = sa.Column(st.LargeBinary(), nullable=True)
    owner_id = sa.Column(sa.String(64), nullable=False)
    ui_definition = sa.Column(sa.Text)
    supplier_logo = sa.Column(sa.LargeBinary, nullable=True)
    categories = sa_orm.relationship("Category",
                                     secondary=package_to_category,
                                     cascade='save-update, merge',
                                     lazy='joined')
    class_definitions = sa_orm.relationship(
        "Class",
        cascade='save-update, merge, delete',
        lazy='joined',
        backref='package')

    def to_dict(self):
        d = self.__dict__.copy()
        not_serializable = [
            '_sa_instance_state', 'archive', 'logo', 'ui_definition',
            'supplier_logo'
        ]
        nested_objects = ['categories', 'tags', 'class_definitions']
        for key in not_serializable:
            if key in d.keys():
                del d[key]
        for key in nested_objects:
            d[key] = [a.name for a in d.get(key, [])]
        return d
コード例 #5
0
ファイル: models.py プロジェクト: bopopescu/OpenStack-Ocata
class Task(Base, TimestampMixin):
    __tablename__ = 'task'

    id = sa.Column(sa.String(36), primary_key=True,
                   default=uuidutils.generate_uuid)
    started = sa.Column(sa.DateTime, default=timeutils.utcnow, nullable=False)
    finished = sa.Column(sa.DateTime, default=None, nullable=True)
    description = sa.Column(st.JsonBlob(), nullable=False)
    environment_id = sa.Column(sa.String(255), sa.ForeignKey('environment.id'))
    action = sa.Column(st.JsonBlob())

    statuses = sa_orm.relationship("Status", backref='task',
                                   cascade='save-update, merge, delete')
    result = sa.Column(st.JsonBlob(), nullable=True, default={})

    def to_dict(self):
        dictionary = super(Task, self).to_dict()
        if 'statuses' in dictionary:
            del dictionary['statuses']
        if 'environment' in dictionary:
            del dictionary['environment']
        return dictionary
コード例 #6
0
class Session(Base, TimestampMixin):
    __tablename__ = 'session'

    id = sa.Column(sa.String(36),
                   primary_key=True,
                   default=uuidutils.generate_uuid)
    environment_id = sa.Column(sa.String(255), sa.ForeignKey('environment.id'))

    user_id = sa.Column(sa.String(36), nullable=False)
    state = sa.Column(sa.String(36), nullable=False)
    description = sa.Column(st.JsonBlob(), nullable=False)
    version = sa.Column(sa.BigInteger, nullable=False, default=0)

    def to_dict(self):
        dictionary = super(Session, self).to_dict()
        del dictionary['description']
        #object relations may be not loaded yet
        if 'environment' in dictionary:
            del dictionary['environment']
        return dictionary