diff options
| author | Eric Day <eday@oddments.org> | 2010-12-30 19:35:02 -0800 |
|---|---|---|
| committer | Eric Day <eday@oddments.org> | 2010-12-30 19:35:02 -0800 |
| commit | e0c83a438eb780407e94a7b48ff8f20fb1783a9f (patch) | |
| tree | dc704dd3ca533f9448a1a75477703f3415c0dce8 /nova/db | |
| parent | 6debe20395d6ab476bfd2a237df8c2b08050e0e6 (diff) | |
| parent | 7080fb40cae33017b0365bb8e2c94f515bf39d3d (diff) | |
| download | nova-e0c83a438eb780407e94a7b48ff8f20fb1783a9f.tar.gz nova-e0c83a438eb780407e94a7b48ff8f20fb1783a9f.tar.xz nova-e0c83a438eb780407e94a7b48ff8f20fb1783a9f.zip | |
Merged trunk.
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/api.py | 5 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 12 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/models.py | 26 |
3 files changed, 24 insertions, 19 deletions
diff --git a/nova/db/api.py b/nova/db/api.py index d4fe4a7c8..5bf5b2b7e 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -383,6 +383,11 @@ def instance_action_create(context, values): return IMPL.instance_action_create(context, values) +def instance_get_actions(context, instance_id): + """Get instance actions by instance id.""" + return IMPL.instance_get_actions(context, instance_id) + + ################### diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 50f833a5f..0cff88bb4 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -838,6 +838,18 @@ def instance_action_create(context, values): return action_ref +@require_admin_context +def instance_get_actions(context, instance_id): + """Return the actions associated to the given instance id""" + session = get_session() + actions = {} + for action in session.query(models.InstanceActions).\ + filter_by(instance_id=instance_id).\ + all(): + actions[action.action] = action.error + return actions + + ################### diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 418c8914e..da9058a6c 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -22,7 +22,8 @@ SQLAlchemy models for nova data. import datetime import uuid -from sqlalchemy import Column, Integer, Float, String, schema +from sqlalchemy.orm import relationship, backref, object_mapper +from sqlalchemy import Column, Integer, String, schema from sqlalchemy import ForeignKey, DateTime, Boolean, Text from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.exc import IntegrityError @@ -67,7 +68,9 @@ class GUID(TypeDecorator): elif dialect.name == 'postgresql': return str(value) else: - if not isinstance(value, uuid.UUID): + if isinstance(value, int): + return "%.32x" % uuid.UUID(int=value) + elif not isinstance(value, uuid.UUID): return "%.32x" % uuid.UUID(value) else: # hexstring @@ -275,21 +278,6 @@ class Instance(BASE, NovaBase): # 'shutdown', 'shutoff', 'crashed']) -class InstanceDiagnostics(BASE, NovaBase): - """Represents a guest VM's diagnostics""" - __tablename__ = "instance_diagnostics" - id = Column(Integer, primary_key=True) - instance_id = Column(GUID, ForeignKey('instances.id')) - - memory_available = Column(Float) - memory_free = Column(Float) - cpu_load = Column(Float) - disk_read = Column(Float) - disk_write = Column(Float) - net_tx = Column(Float) - net_rx = Column(Float) - - class InstanceActions(BASE, NovaBase): """Represents a guest VM's actions and results""" __tablename__ = "instance_actions" @@ -490,7 +478,7 @@ class AuthToken(BASE, NovaBase): """ __tablename__ = 'auth_tokens' token_hash = Column(String(255), primary_key=True) - user_id = Column(Integer) + user_id = Column(String(255)) server_manageent_url = Column(String(255)) storage_url = Column(String(255)) cdn_management_url = Column(String(255)) @@ -599,7 +587,7 @@ def register_models(): it will never need to be called explicitly elsewhere. """ from sqlalchemy import create_engine - models = (Service, Instance, InstanceDiagnostics, InstanceActions, + models = (Service, Instance, InstanceActions, Volume, ExportDevice, IscsiTarget, FixedIp, FloatingIp, Network, SecurityGroup, SecurityGroupIngressRule, SecurityGroupInstanceAssociation, AuthToken, User, |
