Lock instances support in Mogan(part 1)
This patch adds locked and locked_by columes to the data model of mogan instances. Change-Id: I12a10277a86809e5a5e89fbe81c5910f37de21fd Partially-Implements: bp lock-instances
This commit is contained in:
parent
ccfdc3b5cb
commit
79174c35b8
|
@ -88,6 +88,8 @@ def upgrade():
|
|||
sa.Column('node_uuid', sa.String(length=36), nullable=True),
|
||||
sa.Column('extra', sa.Text(), nullable=True),
|
||||
sa.Column('deleted', sa.Integer(), nullable=False),
|
||||
sa.Column('locked', sa.Boolean(), nullable=True),
|
||||
sa.Column('locked_by', sa.Enum('admin', 'owner'), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
sa.UniqueConstraint('uuid', name='uniq_instances0uuid'),
|
||||
mysql_ENGINE='InnoDB',
|
||||
|
|
|
@ -21,7 +21,7 @@ from oslo_db import options as db_options
|
|||
from oslo_db.sqlalchemy import models
|
||||
from oslo_db.sqlalchemy import types as db_types
|
||||
import six.moves.urllib.parse as urlparse
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey
|
||||
from sqlalchemy import Boolean, Column, DateTime, Enum, ForeignKey
|
||||
from sqlalchemy import orm
|
||||
from sqlalchemy import schema, String, Integer
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
@ -84,6 +84,9 @@ class Instance(Base):
|
|||
extra = Column(db_types.JsonEncodedDict)
|
||||
deleted = Column(Boolean, default=False)
|
||||
|
||||
locked = Column(Boolean)
|
||||
locked_by = Column(Enum('owner', 'admin'))
|
||||
|
||||
|
||||
class InstanceTypes(Base):
|
||||
"""Represents possible types for instances."""
|
||||
|
|
|
@ -46,6 +46,8 @@ class Instance(base.MoganObject, object_base.VersionedObjectDictCompat):
|
|||
'extra': object_fields.FlexibleDictField(nullable=True),
|
||||
'deleted': object_fields.BooleanField(default=False),
|
||||
'deleted_at': object_fields.DateTimeField(nullable=True),
|
||||
'locked': object_fields.BooleanField(default=False),
|
||||
'locked_by': object_fields.StringField(nullable=True),
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -62,6 +62,8 @@ def get_test_instance(**kw):
|
|||
'deleted': kw.get('deleted', False),
|
||||
'updated_at': kw.get('updated_at'),
|
||||
'created_at': kw.get('created_at'),
|
||||
'locked': kw.get('locked', False),
|
||||
'locked_by': kw.get('locked_by', None),
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -382,7 +382,7 @@ class _TestObject(object):
|
|||
# version bump. It is md5 hash of object fields and remotable methods.
|
||||
# The fingerprint values should only be changed if there is a version bump.
|
||||
expected_object_fingerprints = {
|
||||
'Instance': '1.0-c3a73e3ec189aa09dc430b389c81b11f',
|
||||
'Instance': '1.0-51d866ba4ccec2e2e17ead134ad13e95',
|
||||
'InstanceType': '1.0-589b096651fcdb30898ff50f748dd948',
|
||||
'MyObj': '1.1-aad62eedc5a5cc8bcaf2982c285e753f',
|
||||
'FakeNode': '1.0-07813a70fee67557d8a71ad96f31cee7',
|
||||
|
|
Loading…
Reference in New Issue