updated tests and added more error checking
This commit is contained in:
		| @@ -623,15 +623,16 @@ class InstanceTypeCommands(object): | ||||
|            arguments: name memory_mb vcpus local_gb""" | ||||
|         try: | ||||
|             instance_types.create(name, memory, vcpus, local_gb, flavorid) | ||||
|         except exception.InvalidInputException: | ||||
|         except exception.InvalidInputException, e: | ||||
|             print "Must supply valid parameters to create instance type" | ||||
|             print e | ||||
|             sys.exit(1) | ||||
|         except exception.DBError, e: | ||||
|             print "DB Error: %s" % e | ||||
|             sys.exit(1) | ||||
|             sys.exit(2) | ||||
|         except: | ||||
|             print "Unknown error" | ||||
|             sys.exit(1) | ||||
|             sys.exit(3) | ||||
|         else: | ||||
|             print "%s created" % name | ||||
|  | ||||
| @@ -639,14 +640,10 @@ class InstanceTypeCommands(object): | ||||
|         """Marks instance types / flavors as deleted | ||||
|         arguments: name""" | ||||
|         try: | ||||
|             records = instance_types.destroy(name) | ||||
|         except exception.InvalidParameters: | ||||
|             instance_types.destroy(name) | ||||
|         except exception.ApiError: | ||||
|             print "Valid instance type name is required" | ||||
|             sys.exit(1) | ||||
|         except exception.NotFound, e: | ||||
|             print "Instance type name %s not found. \ | ||||
|                     No instance type deleted." % name | ||||
|             sys.exit(1) | ||||
|         else: | ||||
|             print "%s deleted" % name | ||||
|  | ||||
|   | ||||
| @@ -48,7 +48,7 @@ def create(name, memory, vcpus, local_gb, flavorid): | ||||
|                                 flavorid=flavorid)) | ||||
|     except exception.DBError: | ||||
|         raise exception.ApiError(_("Cannot create instance type: %s"), | ||||
|                                  instance_type, "Invalid") | ||||
|                                  name) | ||||
|  | ||||
|  | ||||
| def destroy(name): | ||||
| @@ -59,9 +59,9 @@ def destroy(name): | ||||
|     else: | ||||
|         try: | ||||
|             db.instance_type_destroy(context.get_admin_context(), name) | ||||
|         except exception.DBError: | ||||
|         except exception.NotFound: | ||||
|             raise exception.ApiError(_("Unknown instance type: %s"), | ||||
|                                      instance_type, "Invalid") | ||||
|                                      name) | ||||
|  | ||||
|  | ||||
| def get_all_types(inactive=0): | ||||
| @@ -86,7 +86,7 @@ def get_instance_type(name): | ||||
|         return inst_type | ||||
|     except exception.DBError: | ||||
|         raise exception.ApiError(_("Unknown instance type: %s"), | ||||
|                                  instance_type, "Invalid") | ||||
|                                  name) | ||||
|  | ||||
|  | ||||
| def get_by_type(instance_type): | ||||
| @@ -99,7 +99,7 @@ def get_by_type(instance_type): | ||||
|         return inst_type['name'] | ||||
|     except exception.DBError: | ||||
|         raise exception.ApiError(_("Unknown instance type: %s"), | ||||
|                                  instance_type, "Invalid") | ||||
|                                  instance_type) | ||||
|  | ||||
|  | ||||
| def get_by_flavor_id(flavor_id): | ||||
| @@ -112,4 +112,4 @@ def get_by_flavor_id(flavor_id): | ||||
|         return flavor['name'] | ||||
|     except exception.DBError: | ||||
|         raise exception.ApiError(_("Unknown flavor: %s"), | ||||
|                                  flavor_id, "Invalid") | ||||
|                                  flavor_id) | ||||
|   | ||||
| @@ -2086,10 +2086,10 @@ def instance_type_get_by_flavor_id(context, id): | ||||
| def instance_type_destroy(context, name): | ||||
|     """ Marks specific instance_type as deleted""" | ||||
|     session = get_session() | ||||
|     try: | ||||
|     instance_type_ref = session.query(models.InstanceTypes).\ | ||||
|                                       filter_by(name=name) | ||||
|         instance_type_ref.update(dict(deleted=1)) | ||||
|     except: | ||||
|         raise exception.DBError | ||||
|     records = instance_type_ref.update(dict(deleted=1)) | ||||
|     if records == 0: | ||||
|         raise exception.NotFound | ||||
|     else: | ||||
|         return instance_type_ref | ||||
|   | ||||
| @@ -62,3 +62,20 @@ class InstanceTypeTestCase(test.TestCase): | ||||
|                                             count() | ||||
|         inst_types = instance_types.get_all_types() | ||||
|         self.assertEqual(total_instance_types, len(inst_types)) | ||||
|  | ||||
|     def test_invalid_create_args_should_fail(self): | ||||
|         """Ensures that instance type creation fails with invalid args""" | ||||
|         self.assertRaises( | ||||
|                 exception.InvalidInputException, | ||||
|                 instance_types.create, self.name, 0, 1, 120, self.flavorid) | ||||
|         self.assertRaises( | ||||
|                 exception.InvalidInputException, | ||||
|                 instance_types.create, self.name, 256, -1, 120, self.flavorid) | ||||
|         self.assertRaises( | ||||
|                 exception.InvalidInputException, | ||||
|                 instance_types.create, self.name, 256, 1, "aa", self.flavorid) | ||||
|  | ||||
|     def test_non_existant_inst_type_shouldnt_delete(self): | ||||
|         """Ensures that instance type creation fails with invalid args""" | ||||
|         self.assertRaises(exception.ApiError, | ||||
|                           instance_types.destroy, "sfsfsdfdfs") | ||||
|   | ||||
| @@ -32,7 +32,6 @@ class NovaManageTestCase(test.TestCase): | ||||
|         max_flavorid = session.query(models.InstanceTypes).\ | ||||
|                                      order_by("flavorid desc").first() | ||||
|         self.flavorid = str(max_flavorid["flavorid"] + 1) | ||||
|         # self.flavorid = str(self.flavorid) | ||||
|         self.name = str(int(time.time())) | ||||
|  | ||||
|     def teardown(self): | ||||
| @@ -42,7 +41,7 @@ class NovaManageTestCase(test.TestCase): | ||||
|         fnull = open(os.devnull, 'w') | ||||
|         retcode = subprocess.call(["bin/nova-manage", "instance_type", | ||||
|                                     "create", self.name, "256", "1", | ||||
|                                     "120", self.flavorid], stdout=fnull) | ||||
|                                     "10", self.flavorid], stdout=fnull) | ||||
|         self.assertEqual(0, retcode) | ||||
|         retcode = subprocess.call(["bin/nova-manage", "instance_type",\ | ||||
|                                     "delete", self.name], stdout=fnull) | ||||
| @@ -67,16 +66,14 @@ class NovaManageTestCase(test.TestCase): | ||||
|         retcode = subprocess.call(["bin/nova-manage", "instance_type",\ | ||||
|                                     "create", self.name, "256", "0",\ | ||||
|                                     "120", self.flavorid], stdout=fnull) | ||||
|         # self.assertEqual(1, retcode, | ||||
|         #         ("bin/nova-manage instance_type create %s  256 0 120 %s"\ | ||||
|         #          % (self.name, self.flavorid))) | ||||
|         self.assertEqual(1, retcode) | ||||
|  | ||||
|     def test_should_fail_on_duplicate_flavorid(self): | ||||
|         fnull = open(os.devnull, 'w') | ||||
|         retcode = subprocess.call(["bin/nova-manage", "instance_type",\ | ||||
|                                     "create", self.name, "256", "1",\ | ||||
|                                     "120", "1"], stdout=fnull) | ||||
|         self.assertEqual(1, retcode) | ||||
|         self.assertEqual(3, retcode) | ||||
|  | ||||
|     def test_should_fail_on_duplicate_name(self): | ||||
|         fnull = open(os.devnull, 'w') | ||||
| @@ -87,10 +84,10 @@ class NovaManageTestCase(test.TestCase): | ||||
|         retcode = subprocess.call(["bin/nova-manage", "instance_type",\ | ||||
|                                     "create", "fsfsfsdfsdf", "256", "1",\ | ||||
|                                     "120", self.flavorid], stdout=fnull) | ||||
|         self.assertEqual(1, retcode) | ||||
|         self.assertEqual(3, retcode) | ||||
|  | ||||
|     # def test_instance_type_delete_should_fail_without_valid_name(self): | ||||
|     #     fnull = open(os.devnull, 'w') | ||||
|     #     retcode = subprocess.call(["bin/nova-manage", "instance_type",\ | ||||
|     #                                 "delete", "saefasff"], stdout=fnull) | ||||
|     #     self.assertEqual(1, retcode) | ||||
|     def test_instance_type_delete_should_fail_without_valid_name(self): | ||||
|         fnull = open(os.devnull, 'w') | ||||
|         retcode = subprocess.call(["bin/nova-manage", "instance_type",\ | ||||
|                                     "delete", "doesntexist"], stdout=fnull) | ||||
|         self.assertEqual(1, retcode) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ken Pepple
					Ken Pepple