summaryrefslogtreecommitdiffstats
path: root/nova/db/sqlalchemy/models.py
diff options
context:
space:
mode:
authorBoris Pavlovic <boris@pavlovic.me>2013-06-08 12:38:47 +0400
committerBoris Pavlovic <boris@pavlovic.me>2013-06-08 19:36:39 +0400
commitd8adce2e4a20915298804cff72bd60453be640d4 (patch)
treef11ccc78d6dd25a716b10f25d6f87ca8f731804b /nova/db/sqlalchemy/models.py
parent57290516365e2d786c50b1e99ddbefa75997ad6d (diff)
downloadnova-d8adce2e4a20915298804cff72bd60453be640d4.tar.gz
nova-d8adce2e4a20915298804cff72bd60453be640d4.tar.xz
nova-d8adce2e4a20915298804cff72bd60453be640d4.zip
Fix db.models.ComputeNode description
DB models definition should be up-to-date with DB schema obtained after applying of migrations. Currently, there are no tests enforcing this and it's really hard to analyze what indexes should be added, and what indexes we have at the moment. So the first step is it to fix all models, and add missing descriptions about Indexes and UniqueConstraints in __table_args__ and use explicit 'nullable' parameter in columns description. Add missing 'nullable' parameters to all Columns Add empty __table_args__ parameter to Table There is no indexes in ComputeNode model definition. blueprint db-sync-models-with-migrations Change-Id: I13c92bdd33eede97bb7b2fc45cbedca556992060
Diffstat (limited to 'nova/db/sqlalchemy/models.py')
-rw-r--r--nova/db/sqlalchemy/models.py31
1 files changed, 16 insertions, 15 deletions
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index 418e05cfa..d52f68740 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -59,8 +59,9 @@ class ComputeNode(BASE, NovaBase):
"""Represents a running compute service on a host."""
__tablename__ = 'compute_nodes'
+ __table_args__ = ()
id = Column(Integer, primary_key=True)
- service_id = Column(Integer, ForeignKey('services.id'), nullable=True)
+ service_id = Column(Integer, ForeignKey('services.id'), nullable=False)
service = relationship(Service,
backref=backref('compute_node'),
foreign_keys=service_id,
@@ -68,23 +69,23 @@ class ComputeNode(BASE, NovaBase):
'ComputeNode.service_id == Service.id,'
'ComputeNode.deleted == 0)')
- vcpus = Column(Integer)
- memory_mb = Column(Integer)
- local_gb = Column(Integer)
- vcpus_used = Column(Integer)
- memory_mb_used = Column(Integer)
- local_gb_used = Column(Integer)
- hypervisor_type = Column(Text)
- hypervisor_version = Column(Integer)
- hypervisor_hostname = Column(String(255))
+ vcpus = Column(Integer, nullable=False)
+ memory_mb = Column(Integer, nullable=False)
+ local_gb = Column(Integer, nullable=False)
+ vcpus_used = Column(Integer, nullable=False)
+ memory_mb_used = Column(Integer, nullable=False)
+ local_gb_used = Column(Integer, nullable=False)
+ hypervisor_type = Column(Text, nullable=False)
+ hypervisor_version = Column(Integer, nullable=False)
+ hypervisor_hostname = Column(String(255), nullable=True)
# Free Ram, amount of activity (resize, migration, boot, etc) and
# the number of running VM's are a good starting point for what's
# important when making scheduling decisions.
- free_ram_mb = Column(Integer)
- free_disk_gb = Column(Integer)
- current_workload = Column(Integer)
- running_vms = Column(Integer)
+ free_ram_mb = Column(Integer, nullable=True)
+ free_disk_gb = Column(Integer, nullable=True)
+ current_workload = Column(Integer, nullable=True)
+ running_vms = Column(Integer, nullable=True)
# Note(masumotok): Expected Strings example:
#
@@ -97,7 +98,7 @@ class ComputeNode(BASE, NovaBase):
# above, since it is copied from <cpu> tag of getCapabilities()
# (See libvirt.virtConnection).
cpu_info = Column(Text, nullable=True)
- disk_available_least = Column(Integer)
+ disk_available_least = Column(Integer, nullable=True)
class ComputeNodeStat(BASE, NovaBase):