From b138117a8df51afeaa0e8e43a75b02c4b56418b6 Mon Sep 17 00:00:00 2001 From: Victor Sergeyev Date: Thu, 13 Jun 2013 19:20:18 +0300 Subject: Drop `bm_pxe_ips` table from baremetal database. - added migration and tests - removed model `BareMetalPxeIp` - from nova/virt/baremetal/db/sqlalchemy/api.py removed functions `bm_pxe_ip_get_all`, `bm_pxe_ip_create`, `bm_pxe_ip_create_direct`, `bm_pxe_ip_destroy`, `bm_pxe_ip_destroy_by_address`, 'bm_pxe_ip_get`, `bm_pxe_ip_get_by_bm_node_id`, `bm_pxe_ip_associate`, 'bm_pxe_ip_disassociate` - from nova/virt/baremetal/db/api.py removed functions `bm_node_associate_and_update`, `bm_pxe_ip_create`, `bm_pxe_ip_create_direct`, `bm_pxe_ip_destroy`, `bm_pxe_ip_destroy_by_address`, `bm_pxe_ip_get_all`, `bm_pxe_ip_get`, `bm_pxe_ip_get_by_bm_node_id, `bm_pxe_ip_associate`, `bm_pxe_ip_disassociate` - from nova/tests/virt/baremetal/db/utils.py removed function `new_bm_pxe_ip` - removed nova/tests/virt/baremetal/db/test_bm_pxe_ip.py - modified `baremetal/volume_driver.py` - now we get `address` using nova db api Fixes bug 1156745 Change-Id: I61f78d692da276694d79a7c1a8d45a466d124c70 --- nova/tests/db/test_migrations.py | 7 ++ nova/tests/virt/baremetal/db/test_bm_pxe_ip.py | 94 -------------------------- nova/tests/virt/baremetal/db/utils.py | 12 ---- 3 files changed, 7 insertions(+), 106 deletions(-) delete mode 100644 nova/tests/virt/baremetal/db/test_bm_pxe_ip.py (limited to 'nova/tests') diff --git a/nova/tests/db/test_migrations.py b/nova/tests/db/test_migrations.py index dc77a27d7..f895c03da 100644 --- a/nova/tests/db/test_migrations.py +++ b/nova/tests/db/test_migrations.py @@ -1746,6 +1746,13 @@ class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn): columns = [c.name for c in bm_nodes.columns] self.assertNotIn(u'prov_mac_address', columns) + def _check_008(self, engine, data): + self.assertRaises(sqlalchemy.exc.NoSuchTableError, + db_utils.get_table, engine, 'bm_pxe_ips') + + def _post_downgrade_008(self, engine): + db_utils.get_table(engine, 'bm_pxe_ips') + class ProjectTestCase(test.TestCase): diff --git a/nova/tests/virt/baremetal/db/test_bm_pxe_ip.py b/nova/tests/virt/baremetal/db/test_bm_pxe_ip.py deleted file mode 100644 index 85f3e2f4b..000000000 --- a/nova/tests/virt/baremetal/db/test_bm_pxe_ip.py +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (c) 2012 NTT DOCOMO, INC. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -Bare-metal DB testcase for BareMetalPxeIp -""" - -from nova import exception -from nova.openstack.common.db import exception as db_exc -from nova.tests.virt.baremetal.db import base -from nova.tests.virt.baremetal.db import utils -from nova.virt.baremetal import db - - -class BareMetalPxeIpTestCase(base.BMDBTestCase): - - def _create_pxe_ip(self): - i1 = utils.new_bm_pxe_ip(address='10.1.1.1', - server_address='10.1.1.101') - i2 = utils.new_bm_pxe_ip(address='10.1.1.2', - server_address='10.1.1.102') - - i1_ref = db.bm_pxe_ip_create_direct(self.context, i1) - self.assertTrue(i1_ref['id'] is not None) - self.assertEqual(i1_ref['address'], '10.1.1.1') - self.assertEqual(i1_ref['server_address'], '10.1.1.101') - - i2_ref = db.bm_pxe_ip_create_direct(self.context, i2) - self.assertTrue(i2_ref['id'] is not None) - self.assertEqual(i2_ref['address'], '10.1.1.2') - self.assertEqual(i2_ref['server_address'], '10.1.1.102') - - self.i1 = i1_ref - self.i2 = i2_ref - - def test_unuque_address(self): - self._create_pxe_ip() - - # address duplicates - i = utils.new_bm_pxe_ip(address='10.1.1.1', - server_address='10.1.1.201') - self.assertRaises(db_exc.DBError, - db.bm_pxe_ip_create_direct, - self.context, i) - - # server_address duplicates - i = utils.new_bm_pxe_ip(address='10.1.1.3', - server_address='10.1.1.101') - self.assertRaises(db_exc.DBError, - db.bm_pxe_ip_create_direct, - self.context, i) - - db.bm_pxe_ip_destroy(self.context, self.i1['id']) - i = utils.new_bm_pxe_ip(address='10.1.1.1', - server_address='10.1.1.101') - ref = db.bm_pxe_ip_create_direct(self.context, i) - self.assertTrue(ref is not None) - - def test_bm_pxe_ip_associate(self): - self._create_pxe_ip() - node = db.bm_node_create(self.context, utils.new_bm_node()) - ip_id = db.bm_pxe_ip_associate(self.context, node['id']) - ref = db.bm_pxe_ip_get(self.context, ip_id) - self.assertEqual(ref['bm_node_id'], node['id']) - - def test_bm_pxe_ip_associate_raise(self): - self._create_pxe_ip() - node_id = 123 - self.assertRaises(exception.NovaException, - db.bm_pxe_ip_associate, - self.context, node_id) - - def test_delete_by_address(self): - self._create_pxe_ip() - db.bm_pxe_ip_destroy_by_address(self.context, '10.1.1.1') - del_ref = db.bm_pxe_ip_get(self.context, self.i1['id']) - self.assertTrue(del_ref is None) - - def test_delete_by_address_not_exist(self): - self._create_pxe_ip() - del_ref = db.bm_pxe_ip_destroy_by_address(self.context, '10.11.12.13') - self.assertTrue(del_ref is None) diff --git a/nova/tests/virt/baremetal/db/utils.py b/nova/tests/virt/baremetal/db/utils.py index c3b3cff5f..6faeb13d8 100644 --- a/nova/tests/virt/baremetal/db/utils.py +++ b/nova/tests/virt/baremetal/db/utils.py @@ -39,18 +39,6 @@ def new_bm_node(**kwargs): return h -def new_bm_pxe_ip(**kwargs): - x = bm_models.BareMetalPxeIp() - x.id = kwargs.pop('id', None) - x.address = kwargs.pop('address', None) - x.server_address = kwargs.pop('server_address', None) - x.bm_node_id = kwargs.pop('bm_node_id', None) - if len(kwargs) > 0: - raise test.TestingException("unknown field: %s" - % ','.join(kwargs.keys())) - return x - - def new_bm_interface(**kwargs): x = bm_models.BareMetalInterface() x.id = kwargs.pop('id', None) -- cgit