diff --git a/bin/nova-manage b/bin/nova-manage index 92c5f3b9195..c68ff73c6d0 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -832,7 +832,7 @@ class InstanceTypeCommands(object): help='rxtx_factor') @args('--is_public', dest="is_public", metavar='', help='Make flavor accessible to the public') - def create(self, name, memory, vcpus, root_gb, ephemeral_gb, flavorid=None, + def create(self, name, memory, vcpus, root_gb, ephemeral_gb=0, flavorid=None, swap=0, rxtx_factor=1, is_public=True): """Creates instance types / flavors""" try: diff --git a/nova/compute/instance_types.py b/nova/compute/instance_types.py index eb8ac706d0c..d89e6409a2a 100644 --- a/nova/compute/instance_types.py +++ b/nova/compute/instance_types.py @@ -35,7 +35,7 @@ INVALID_NAME_REGEX = re.compile("[^\w\.\- ]") -def create(name, memory, vcpus, root_gb, ephemeral_gb, flavorid=None, +def create(name, memory, vcpus, root_gb, ephemeral_gb=None, flavorid=None, swap=None, rxtx_factor=None, is_public=True): """Creates instance types.""" @@ -45,6 +45,8 @@ def create(name, memory, vcpus, root_gb, ephemeral_gb, flavorid=None, swap = 0 if rxtx_factor is None: rxtx_factor = 1 + if ephemeral_gb is None: + ephemeral_gb = 0 kwargs = { 'memory_mb': memory, diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_instance_types.py index 5059b155a2a..43d698374df 100644 --- a/nova/tests/test_instance_types.py +++ b/nova/tests/test_instance_types.py @@ -56,6 +56,30 @@ def _existing_flavor(self): """return first instance type name""" return instance_types.get_all_types().keys()[0] + def test_instance_type_create(self): + """Ensure instance types can be created""" + name = 'Instance create test' + flavor_id = '512' + + original_list = instance_types.get_all_types() + + # create new type and make sure values stick + inst_type = instance_types.create(name, 256, 1, 120, + flavorid=flavor_id) + self.assertEqual(inst_type['flavorid'], flavor_id) + self.assertEqual(inst_type['name'], name) + self.assertEqual(inst_type['memory_mb'], 256) + self.assertEqual(inst_type['vcpus'], 1) + self.assertEqual(inst_type['root_gb'], 120) + self.assertEqual(inst_type['ephemeral_gb'], 0) + self.assertEqual(inst_type['swap'], 0) + self.assertEqual(inst_type['rxtx_factor'], 1) + + # make sure new type shows up in list + new_list = instance_types.get_all_types() + self.assertNotEqual(len(original_list), len(new_list), + 'instance type was not created') + def test_instance_type_create_then_delete(self): """Ensure instance types can be created""" name = 'Small Flavor'