Persisting resources
This commit is contained in:
@@ -64,6 +64,11 @@ def resource_get_all(context):
|
||||
def resource_create(context, values):
|
||||
return IMPL.resource_create(context, values)
|
||||
|
||||
def resource_get_all_by_stack(context, stack_id):
|
||||
return IMPL.resource_get_all_by_stack(context, stack_id)
|
||||
|
||||
def resource_get_by_name_and_stack(context, resource_name, stack_id):
|
||||
return IMPL.resource_get_by_name_and_stack(context, resource_name, stack_id)
|
||||
|
||||
def stack_get(context, stack_id):
|
||||
return IMPL.stack_get(context, stack_id)
|
||||
|
||||
@@ -84,6 +84,13 @@ def resource_get(context, resource_id):
|
||||
|
||||
return result
|
||||
|
||||
def resource_get_by_name_and_stack(context, resource_name, stack_id):
|
||||
result = model_query(context, models.Resource).\
|
||||
filter_by(name=resource_name).\
|
||||
filter_by(stack_id=stack_id).first()
|
||||
|
||||
return result
|
||||
|
||||
def resource_get_all(context):
|
||||
results = model_query(context, models.Resource).all()
|
||||
|
||||
@@ -98,6 +105,15 @@ def resource_create(context, values):
|
||||
resource_ref.save()
|
||||
return resource_ref
|
||||
|
||||
def resource_get_all_by_stack(context, stack_id):
|
||||
results = model_query(context, models.Resource).\
|
||||
filter_by(stack_id=stack_id).all()
|
||||
|
||||
if not results:
|
||||
raise Exception("no resources for stack_id %s were found" % stack_id)
|
||||
|
||||
return results
|
||||
|
||||
def stack_get(context, stack_id):
|
||||
result = model_query(context, models.Stack).\
|
||||
filter_by(name=stack_id).first()
|
||||
@@ -118,8 +134,8 @@ def stack_delete(context, stack_name):
|
||||
if not s:
|
||||
raise Exception('Attempt to delete a stack with id: %s that does not exist' % stack_name)
|
||||
|
||||
for e in s.events:
|
||||
e.delete()
|
||||
#for e in s.events:
|
||||
# e.delete()
|
||||
s.delete()
|
||||
|
||||
def event_get(context, event_id):
|
||||
|
||||
@@ -38,17 +38,26 @@ def upgrade(migrate_engine):
|
||||
resource = Table(
|
||||
'resource', meta,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('instance_id', String(length=255, convert_unicode=False,
|
||||
Column('nova_instance', String(length=255, convert_unicode=False,
|
||||
assert_unicode=None,
|
||||
unicode_error=None, _warn_on_bytestring=False)),
|
||||
Column('name', String(length=255, convert_unicode=False,
|
||||
assert_unicode=None,
|
||||
unicode_error=None, _warn_on_bytestring=False)),
|
||||
|
||||
Column('created_at', DateTime(timezone=False)),
|
||||
Column('updated_at', DateTime(timezone=False)),
|
||||
Column('state', Integer()),
|
||||
Column('state', String(length=255, convert_unicode=False,
|
||||
assert_unicode=None,
|
||||
unicode_error=None,
|
||||
_warn_on_bytestring=False)),
|
||||
Column('state_description', String(length=255, convert_unicode=False,
|
||||
assert_unicode=None,
|
||||
unicode_error=None,
|
||||
_warn_on_bytestring=False)),
|
||||
Column('parsed_template_id', Integer, ForeignKey("parsed_template.id"), nullable=False),
|
||||
Column('parsed_template_id', Integer, ForeignKey("parsed_template.id"), nullable=True),
|
||||
Column('stack_id', Integer, ForeignKey("stack.id"), nullable=False),
|
||||
Column('depends_on', Integer),
|
||||
)
|
||||
|
||||
parsedtemplate = Table(
|
||||
|
||||
@@ -16,7 +16,7 @@ SQLAlchemy models for heat data.
|
||||
"""
|
||||
|
||||
from sqlalchemy import *
|
||||
from sqlalchemy.orm import relationship, backref
|
||||
from sqlalchemy.orm import relationship, backref, object_mapper
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.schema import ForeignKeyConstraint
|
||||
@@ -143,10 +143,17 @@ class Resource(BASE, HeatBase):
|
||||
__tablename__ = 'resource'
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
state = Column(String)
|
||||
state = Column('state', String)
|
||||
name = Column('name', String, nullable=False)
|
||||
nova_instance = Column('nova_instance', String)
|
||||
state_description = Column('state_description', String)
|
||||
parsed_template_id = Column(Integer, ForeignKey('parsed_template.id'),\
|
||||
nullable=False)
|
||||
nullable=True)
|
||||
parsed_template = relationship(ParsedTemplate,
|
||||
backref=backref('resources'))
|
||||
|
||||
stack_id = Column(Integer, ForeignKey('stack.id'),\
|
||||
nullable=False)
|
||||
stack = relationship(Stack, backref=backref('resources'), cascade="all, delete", passive_deletes=True)
|
||||
|
||||
depends_on = Column(Integer)
|
||||
|
||||
Reference in New Issue
Block a user