def _aggregate_create_in_db(context, values, metadata=None): query = context.session.query(api_models.Aggregate) query = query.filter(api_models.Aggregate.name == values['name']) aggregate = query.first() if not aggregate: aggregate = api_models.Aggregate() # These created_at and updated_at was added because the original values # contained time zones and tried to push does values into the database. # it might be that the output to the database will be incorrect after this. created_at = values['created_at'].replace(tzinfo=None) updated_at = values['updated_at'].replace(tzinfo=None) values['created_at'] = created_at values['updated_at'] = updated_at aggregate.update(values) aggregate.save(context.session) # We don't want these to be lazy loaded later. We know there is # nothing here since we just created this aggregate. aggregate._hosts = [] aggregate._metadata = [] else: raise exception.AggregateNameExists(aggregate_name=values['name']) if metadata: _metadata_add_to_db(context, aggregate.id, metadata) context.session.expire(aggregate, ['_metadata']) aggregate._metadata return aggregate
def _create_aggregate(context, values=fake_db_aggregate_values, metadata=fake_db_aggregate_metadata): aggregate = api_models.Aggregate() aggregate.update(values) aggregate.save(context.session) if metadata: for key, value in metadata.items(): aggregate_metadata = api_models.AggregateMetadata() aggregate_metadata.update({'key': key, 'value': value, 'aggregate_id': aggregate['id']}) aggregate_metadata.save(context.session) return aggregate
def _create_aggregate(context, values=_get_fake_aggregate(1, result=False), metadata=_get_fake_metadata(1)): aggregate = api_models.Aggregate() aggregate.update(values) aggregate.save(context.session) if metadata: for key, value in metadata.items(): aggregate_metadata = api_models.AggregateMetadata() aggregate_metadata.update({'key': key, 'value': value, 'aggregate_id': aggregate['id']}) aggregate_metadata.save(context.session) return aggregate
def _aggregate_create_in_db(context, values, metadata=None): query = context.session.query(api_models.Aggregate) query = query.filter(api_models.Aggregate.name == values['name']) aggregate = query.first() if not aggregate: aggregate = api_models.Aggregate() aggregate.update(values) aggregate.save(context.session) # We don't want these to be lazy loaded later. We know there is # nothing here since we just created this aggregate. aggregate._hosts = [] aggregate._metadata = [] else: raise exception.AggregateNameExists(aggregate_name=values['name']) if metadata: _metadata_add_to_db(context, aggregate.id, metadata) context.session.expire(aggregate, ['_metadata']) aggregate._metadata return aggregate
def test_tables_aggregates(self): self._compare_models(api_models.Aggregate(), models.Aggregate())