summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Pepple <ken.pepple@gmail.com>2011-02-08 15:03:35 -0800
committerKen Pepple <ken.pepple@gmail.com>2011-02-08 15:03:35 -0800
commitcf562efb7441a761fcebf0653e4a886655826a10 (patch)
treea8a8f72cdf427b140b0397a93a52e9c973dc64b6
parent2f5d8a25c99875838a08ed06728bcd9d68cdd7f1 (diff)
added create and delete methods to instance_types in preparation to call them from nova-manage
-rw-r--r--nova/compute/instance_types.py39
1 files changed, 26 insertions, 13 deletions
diff --git a/nova/compute/instance_types.py b/nova/compute/instance_types.py
index 0e20982e3..af097672e 100644
--- a/nova/compute/instance_types.py
+++ b/nova/compute/instance_types.py
@@ -27,13 +27,28 @@ from nova import flags
from nova import exception
FLAGS = flags.FLAGS
-# FIXME(kpepple) for dynamic flavors
-# INSTANCE_TYPES = {
-# 'm1.tiny': dict(memory_mb=512, vcpus=1, local_gb=0, flavorid=1),
-# 'm1.small': dict(memory_mb=2048, vcpus=1, local_gb=20, flavorid=2),
-# 'm1.medium': dict(memory_mb=4096, vcpus=2, local_gb=40, flavorid=3),
-# 'm1.large': dict(memory_mb=8192, vcpus=4, local_gb=80, flavorid=4),
-# 'm1.xlarge': dict(memory_mb=16384, vcpus=8, local_gb=160, flavorid=5)}
+
+
+def create(name, memory, vcpus, local_gb, flavorid):
+ """Creates instance types / flavors
+ arguments: name memory_mb vcpus local_gb"""
+ for option in [memory, flavorid, local_gb, vcpus]:
+ if (option <= 0) or (option.__class__ == int):
+ raise InvalidParameters
+ db.instance_type_create(context.get_admin_context(),
+ dict(name=name, memory_mb=memory,
+ vcpus=vcpus, local_gb=local_gb,
+ flavorid=flavorid))
+
+
+def delete(name):
+ """Marks instance types / flavors as deleted
+ arguments: name"""
+ if name == None:
+ raise InvalidParameters
+ else:
+ records = db.instance_type_destroy(context.get_admin_context(),
+ name)
def get_all_types():
@@ -48,17 +63,15 @@ def get_all_flavors():
def get_by_type(instance_type):
"""retrieve instance_type details"""
- # FIXME(kpepple) for dynamic flavors
if instance_type is None:
return FLAGS.default_instance_type
try:
ctxt = context.get_admin_context()
inst_type = db.instance_type_get_by_name(ctxt, instance_type)
- except Exception, e:
- print e
+ return inst_type['name']
+ except exception.DBError:
raise exception.ApiError(_("Unknown instance type: %s"),
instance_type)
- return inst_type['name']
def get_by_flavor_id(flavor_id):
@@ -68,7 +81,7 @@ def get_by_flavor_id(flavor_id):
try:
ctxt = context.get_admin_context()
flavor = db.instance_type_get_by_flavor_id(ctxt, flavor_id)
- except Exception, e:
+ return flavor['name']
+ except exception.DBError:
raise exception.ApiError(_("Unknown flavor: %s"),
flavor_id)
- return flavor['name']