Change metadata_int's value field to type bigint
Change-Id: Icac8bd1cf55da9f645b5e27c45b6c2c918dcdab3 Closes-Bug: 1254604
This commit is contained in:
parent
ff20b3986f
commit
75c382141c
@ -96,8 +96,8 @@ META_TYPE_MAP = {bool: models.MetaBool,
|
|||||||
str: models.MetaText,
|
str: models.MetaText,
|
||||||
unicode: models.MetaText,
|
unicode: models.MetaText,
|
||||||
types.NoneType: models.MetaText,
|
types.NoneType: models.MetaText,
|
||||||
int: models.MetaInt,
|
int: models.MetaBigInt,
|
||||||
long: models.MetaInt,
|
long: models.MetaBigInt,
|
||||||
float: models.MetaFloat}
|
float: models.MetaFloat}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
|
||||||
|
# Copyright 2013 OpenStack Foundation
|
||||||
|
# All Rights Reserved.
|
||||||
|
# Copyright 2013 IBM Corp.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from sqlalchemy import BigInteger
|
||||||
|
from sqlalchemy import Integer
|
||||||
|
from sqlalchemy import MetaData
|
||||||
|
from sqlalchemy import Table
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade(migrate_engine):
|
||||||
|
meta = MetaData(bind=migrate_engine)
|
||||||
|
resource = Table('metadata_int', meta, autoload=True)
|
||||||
|
resource.c.value.alter(type=BigInteger)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade(migrate_engine):
|
||||||
|
meta = MetaData(bind=migrate_engine)
|
||||||
|
resource = Table('metadata_int', meta, autoload=True)
|
||||||
|
resource.c.value.alter(type=Integer)
|
@ -23,7 +23,7 @@ import urlparse
|
|||||||
|
|
||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime, \
|
from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime, \
|
||||||
Index, UniqueConstraint
|
Index, UniqueConstraint, BigInteger
|
||||||
from sqlalchemy import Float, Boolean, Text
|
from sqlalchemy import Float, Boolean, Text
|
||||||
from sqlalchemy.dialects.mysql import DECIMAL
|
from sqlalchemy.dialects.mysql import DECIMAL
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
@ -165,7 +165,7 @@ class MetaBool(Base):
|
|||||||
value = Column(Boolean)
|
value = Column(Boolean)
|
||||||
|
|
||||||
|
|
||||||
class MetaInt(Base):
|
class MetaBigInt(Base):
|
||||||
"""Metering integer metadata."""
|
"""Metering integer metadata."""
|
||||||
|
|
||||||
__tablename__ = 'metadata_int'
|
__tablename__ = 'metadata_int'
|
||||||
@ -174,7 +174,7 @@ class MetaInt(Base):
|
|||||||
)
|
)
|
||||||
id = Column(Integer, ForeignKey('meter.id'), primary_key=True)
|
id = Column(Integer, ForeignKey('meter.id'), primary_key=True)
|
||||||
meta_key = Column(String(255), primary_key=True)
|
meta_key = Column(String(255), primary_key=True)
|
||||||
value = Column(Integer, default=False)
|
value = Column(BigInteger, default=False)
|
||||||
|
|
||||||
|
|
||||||
class MetaFloat(Base):
|
class MetaFloat(Base):
|
||||||
|
@ -2161,3 +2161,21 @@ class GetEventTest(EventTestBase):
|
|||||||
self.assertEqual(events[0].message_id, "id_notraits")
|
self.assertEqual(events[0].message_id, "id_notraits")
|
||||||
self.assertEqual(events[0].event_type, "NoTraits")
|
self.assertEqual(events[0].event_type, "NoTraits")
|
||||||
self.assertEqual(0, len(events[0].traits))
|
self.assertEqual(0, len(events[0].traits))
|
||||||
|
|
||||||
|
|
||||||
|
class BigIntegerTest(tests_db.TestBase,
|
||||||
|
tests_db.MixinTestsWithBackendScenarios):
|
||||||
|
def test_metadata_bigint(self):
|
||||||
|
metadata = {'bigint': 99999999999999}
|
||||||
|
s = sample.Sample(name='name',
|
||||||
|
type=sample.TYPE_GAUGE,
|
||||||
|
unit='B',
|
||||||
|
volume=1,
|
||||||
|
user_id='user-id',
|
||||||
|
project_id='project-id',
|
||||||
|
resource_id='resource-id',
|
||||||
|
timestamp=datetime.datetime.utcnow(),
|
||||||
|
resource_metadata=metadata)
|
||||||
|
msg = rpc.meter_message_from_counter(
|
||||||
|
s, self.CONF.publisher_rpc.metering_secret)
|
||||||
|
self.conn.record_metering_data(msg)
|
||||||
|
Loading…
Reference in New Issue
Block a user