diff --git a/portas/portas/common/service.py b/portas/portas/common/service.py index a5dabec..ba62045 100644 --- a/portas/portas/common/service.py +++ b/portas/portas/common/service.py @@ -42,8 +42,8 @@ class TaskResultHandlerService(service.Service): bind(conf.results_exchange, conf.results_queue) bind(conf.reports_exchange, conf.reports_queue) - ch.basic_consume(conf.results_exchange, callback=handle_result) - ch.basic_consume(conf.reports_exchange, callback=handle_report) + ch.basic_consume(conf.results_exchange, callback=handle_result, no_ack=True) + ch.basic_consume(conf.reports_exchange, callback=handle_report, no_ack=True) while ch.callbacks: ch.wait() @@ -51,8 +51,12 @@ class TaskResultHandlerService(service.Service): def handle_report(msg): log.debug(_('Got report message from orchestration engine:\n{0}'.format(msg.body))) + params = anyjson.deserialize(msg.body) + params['entity_id'] = params['id'] + del params['id'] + status = Status() - status.update(anyjson.deserialize(msg.body)) + status.update(params) session = get_session() #connect with session diff --git a/portas/portas/db/migrate_repo/versions/006_add_entity_id_column_to_status.py b/portas/portas/db/migrate_repo/versions/006_add_entity_id_column_to_status.py new file mode 100644 index 0000000..e96dd7d --- /dev/null +++ b/portas/portas/db/migrate_repo/versions/006_add_entity_id_column_to_status.py @@ -0,0 +1,17 @@ +from sqlalchemy.schema import MetaData, Table, Column +from sqlalchemy.types import String + +meta = MetaData() + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + status = Table('status', meta, autoload=True) + entity_id = Column('entity_id', String(32), nullable=True) + entity_id.create(status) + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + status = Table('status', meta, autoload=True) + status.c.entity_id.drop() diff --git a/portas/portas/db/models.py b/portas/portas/db/models.py index bdfa0e6..412d1fb 100644 --- a/portas/portas/db/models.py +++ b/portas/portas/db/models.py @@ -132,7 +132,8 @@ class Session(BASE, ModelBase): class Status(BASE, ModelBase): __tablename__ = 'status' - id = Column(String(32), primary_key=True) + id = Column(String(32), primary_key=True, default=uuidutils.generate_uuid) + entity_id = Column(String(32), nullable=False) entity = Column(String(10), nullable=False) environment_id = Column(String(32), ForeignKey('environment.id')) session_id = Column(String(32), ForeignKey('session.id'))