summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/db/sqlalchemy/api.py6
-rw-r--r--nova/db/sqlalchemy/models.py25
-rw-r--r--nova/network/manager.py2
-rw-r--r--nova/utils.py10
4 files changed, 9 insertions, 34 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 0cbe56499..a3d8dde2f 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -19,6 +19,7 @@
Implementation of SQLAlchemy backend
"""
+import random
import warnings
from nova import db
@@ -542,7 +543,8 @@ def instance_create(context, values):
session = get_session()
with session.begin():
while instance_ref.internal_id == None:
- internal_id = utils.generate_uid(instance_ref.__prefix__)
+ # Instances have integer internal ids.
+ internal_id = random.randint(0, 2 ** 32 - 1)
if not instance_internal_id_exists(context, internal_id,
session=session):
instance_ref.internal_id = internal_id
@@ -1152,7 +1154,7 @@ def volume_create(context, values):
session = get_session()
with session.begin():
while volume_ref.ec2_id == None:
- ec2_id = utils.generate_uid(volume_ref.__prefix__)
+ ec2_id = utils.generate_uid('vol')
if not volume_ec2_id_exists(context, ec2_id, session=session):
volume_ref.ec2_id = ec2_id
volume_ref.save(session=session)
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index 38c96bdec..2a3cfa94c 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -20,11 +20,9 @@
SQLAlchemy models for nova data
"""
-import sys
import datetime
-# TODO(vish): clean up these imports
-from sqlalchemy.orm import relationship, backref, exc, object_mapper
+from sqlalchemy.orm import relationship, backref, object_mapper
from sqlalchemy import Column, Integer, String, schema
from sqlalchemy import ForeignKey, DateTime, Boolean, Text
from sqlalchemy.exc import IntegrityError
@@ -46,17 +44,11 @@ class NovaBase(object):
"""Base class for Nova Models"""
__table_args__ = {'mysql_engine': 'InnoDB'}
__table_initialized__ = False
- __prefix__ = 'none'
created_at = Column(DateTime, default=datetime.datetime.utcnow)
updated_at = Column(DateTime, onupdate=datetime.datetime.utcnow)
deleted_at = Column(DateTime)
deleted = Column(Boolean, default=False)
- @property
- def str_id(self):
- """Get string id of object (generally prefix + '-' + id)"""
- return "%s-%s" % (self.__prefix__, self.id)
-
def save(self, session=None):
"""Save this object"""
if not session:
@@ -94,7 +86,6 @@ class NovaBase(object):
#class Image(BASE, NovaBase):
# """Represents an image in the datastore"""
# __tablename__ = 'images'
-# __prefix__ = 'ami'
# id = Column(Integer, primary_key=True)
# ec2_id = Column(String(12), unique=True)
# user_id = Column(String(255))
@@ -150,7 +141,6 @@ class Service(BASE, NovaBase):
class Instance(BASE, NovaBase):
"""Represents a guest vm"""
__tablename__ = 'instances'
- __prefix__ = 'i'
id = Column(Integer, primary_key=True)
internal_id = Column(Integer, unique=True)
@@ -227,7 +217,6 @@ class Instance(BASE, NovaBase):
class Volume(BASE, NovaBase):
"""Represents a block storage device that can be attached to a vm"""
__tablename__ = 'volumes'
- __prefix__ = 'vol'
id = Column(Integer, primary_key=True)
ec2_id = Column(String(12), unique=True)
@@ -269,10 +258,6 @@ class Quota(BASE, NovaBase):
gigabytes = Column(Integer)
floating_ips = Column(Integer)
- @property
- def str_id(self):
- return self.project_id
-
class ExportDevice(BASE, NovaBase):
"""Represates a shelf and blade that a volume can be exported on"""
@@ -361,10 +346,6 @@ class KeyPair(BASE, NovaBase):
fingerprint = Column(String(255))
public_key = Column(Text)
- @property
- def str_id(self):
- return '%s.%s' % (self.user_id, self.name)
-
class Network(BASE, NovaBase):
"""Represents a network"""
@@ -426,10 +407,6 @@ class FixedIp(BASE, NovaBase):
leased = Column(Boolean, default=False)
reserved = Column(Boolean, default=False)
- @property
- def str_id(self):
- return self.address
-
class User(BASE, NovaBase):
"""Represents a user"""
diff --git a/nova/network/manager.py b/nova/network/manager.py
index fddb77663..8a20cb491 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -171,7 +171,7 @@ class NetworkManager(manager.Manager):
if not fixed_ip_ref['leased']:
logging.warn("IP %s released that was not leased", address)
self.db.fixed_ip_update(context,
- fixed_ip_ref['str_id'],
+ fixed_ip_ref['address'],
{'leased': False})
if not fixed_ip_ref['allocated']:
self.db.fixed_ip_disassociate(context, address)
diff --git a/nova/utils.py b/nova/utils.py
index e58302c11..2c53b027e 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -132,13 +132,9 @@ def runthis(prompt, cmd, check_exit_code=True):
def generate_uid(topic, size=8):
- if topic == "i":
- # Instances have integer internal ids.
- return random.randint(0, 2 ** 32 - 1)
- else:
- characters = '01234567890abcdefghijklmnopqrstuvwxyz'
- choices = [random.choice(characters) for x in xrange(size)]
- return '%s-%s' % (topic, ''.join(choices))
+ characters = '01234567890abcdefghijklmnopqrstuvwxyz'
+ choices = [random.choice(characters) for x in xrange(size)]
+ return '%s-%s' % (topic, ''.join(choices))
def generate_mac():