Enable N302: Import modules only

Fix all N302 issues, and re-enable.

Change-Id: Ic94d144c915b228b7ff2fd9c5951875e159ffcdd
This commit is contained in:
Joe Gordon 2013-01-25 12:10:16 -05:00
parent c511d4dbb5
commit e515a666f3
7 changed files with 72 additions and 68 deletions

View File

@ -22,10 +22,7 @@
import os import os
import mox import mox
from testtools.matchers import Contains from testtools import matchers
from testtools.matchers import MatchesAll
from testtools.matchers import Not
from testtools.matchers import StartsWith
from nova import exception from nova import exception
from nova.openstack.common import cfg from nova.openstack.common import cfg
@ -120,26 +117,26 @@ class PXEClassMethodsTestCase(BareMetalPXETestCase):
'ari_path': 'ggg', 'ari_path': 'ggg',
} }
config = pxe.build_pxe_config(**args) config = pxe.build_pxe_config(**args)
self.assertThat(config, StartsWith('default deploy')) self.assertThat(config, matchers.StartsWith('default deploy'))
# deploy bits are in the deploy section # deploy bits are in the deploy section
start = config.index('label deploy') start = config.index('label deploy')
end = config.index('label boot') end = config.index('label boot')
self.assertThat(config[start:end], MatchesAll( self.assertThat(config[start:end], matchers.MatchesAll(
Contains('kernel ddd'), matchers.Contains('kernel ddd'),
Contains('initrd=eee'), matchers.Contains('initrd=eee'),
Contains('deployment_id=aaa'), matchers.Contains('deployment_id=aaa'),
Contains('deployment_key=bbb'), matchers.Contains('deployment_key=bbb'),
Contains('iscsi_target_iqn=ccc'), matchers.Contains('iscsi_target_iqn=ccc'),
Not(Contains('kernel fff')), matchers.Not(matchers.Contains('kernel fff')),
)) ))
# boot bits are in the boot section # boot bits are in the boot section
start = config.index('label boot') start = config.index('label boot')
self.assertThat(config[start:], MatchesAll( self.assertThat(config[start:], matchers.MatchesAll(
Contains('kernel fff'), matchers.Contains('kernel fff'),
Contains('initrd=ggg'), matchers.Contains('initrd=ggg'),
Not(Contains('kernel ddd')), matchers.Not(matchers.Contains('kernel ddd')),
)) ))
def test_build_network_config(self): def test_build_network_config(self):

View File

@ -12,4 +12,6 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from nova.virt.baremetal.driver import BareMetalDriver from nova.virt.baremetal import driver
BareMetalDriver = driver.BareMetalDriver

View File

@ -23,14 +23,13 @@
from sqlalchemy.sql.expression import asc from sqlalchemy.sql.expression import asc
from sqlalchemy.sql.expression import literal_column from sqlalchemy.sql.expression import literal_column
from nova.db.sqlalchemy.api import is_user_context from nova.db.sqlalchemy import api as sqlalchemy_api
from nova.db.sqlalchemy.api import require_admin_context
from nova import exception from nova import exception
from nova.openstack.common import log as logging from nova.openstack.common import log as logging
from nova.openstack.common import timeutils from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils from nova.openstack.common import uuidutils
from nova.virt.baremetal.db.sqlalchemy import models from nova.virt.baremetal.db.sqlalchemy import models
from nova.virt.baremetal.db.sqlalchemy.session import get_session from nova.virt.baremetal.db.sqlalchemy import session as db_session
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -44,7 +43,7 @@ def model_query(context, *args, **kwargs):
:param project_only: if present and context is user-type, then restrict :param project_only: if present and context is user-type, then restrict
query to match the context's project_id. query to match the context's project_id.
""" """
session = kwargs.get('session') or get_session() session = kwargs.get('session') or db_session.get_session()
read_deleted = kwargs.get('read_deleted') or context.read_deleted read_deleted = kwargs.get('read_deleted') or context.read_deleted
project_only = kwargs.get('project_only') project_only = kwargs.get('project_only')
@ -60,7 +59,7 @@ def model_query(context, *args, **kwargs):
raise Exception( raise Exception(
_("Unrecognized read_deleted value '%s'") % read_deleted) _("Unrecognized read_deleted value '%s'") % read_deleted)
if project_only and is_user_context(context): if project_only and sqlalchemy_api.is_user_context(context):
query = query.filter_by(project_id=context.project_id) query = query.filter_by(project_id=context.project_id)
return query return query
@ -68,7 +67,7 @@ def model_query(context, *args, **kwargs):
def _save(ref, session=None): def _save(ref, session=None):
if not session: if not session:
session = get_session() session = db_session.get_session()
# We must not call ref.save() with session=None, otherwise NovaBase # We must not call ref.save() with session=None, otherwise NovaBase
# uses nova-db's session, which cannot access bm-db. # uses nova-db's session, which cannot access bm-db.
ref.save(session=session) ref.save(session=session)
@ -81,7 +80,7 @@ def _build_node_order_by(query):
return query return query
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_get_all(context, service_host=None): def bm_node_get_all(context, service_host=None):
query = model_query(context, models.BareMetalNode, read_deleted="no") query = model_query(context, models.BareMetalNode, read_deleted="no")
if service_host: if service_host:
@ -89,7 +88,7 @@ def bm_node_get_all(context, service_host=None):
return query.all() return query.all()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_find_free(context, service_host=None, def bm_node_find_free(context, service_host=None,
cpus=None, memory_mb=None, local_gb=None): cpus=None, memory_mb=None, local_gb=None):
query = model_query(context, models.BareMetalNode, read_deleted="no") query = model_query(context, models.BareMetalNode, read_deleted="no")
@ -106,7 +105,7 @@ def bm_node_find_free(context, service_host=None,
return query.first() return query.first()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_get(context, bm_node_id): def bm_node_get(context, bm_node_id):
# bm_node_id may be passed as a string. Convert to INT to improve DB perf. # bm_node_id may be passed as a string. Convert to INT to improve DB perf.
bm_node_id = int(bm_node_id) bm_node_id = int(bm_node_id)
@ -120,7 +119,7 @@ def bm_node_get(context, bm_node_id):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_get_by_instance_uuid(context, instance_uuid): def bm_node_get_by_instance_uuid(context, instance_uuid):
if not uuidutils.is_uuid_like(instance_uuid): if not uuidutils.is_uuid_like(instance_uuid):
raise exception.InstanceNotFound(instance_id=instance_uuid) raise exception.InstanceNotFound(instance_id=instance_uuid)
@ -135,7 +134,7 @@ def bm_node_get_by_instance_uuid(context, instance_uuid):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_create(context, values): def bm_node_create(context, values):
bm_node_ref = models.BareMetalNode() bm_node_ref = models.BareMetalNode()
bm_node_ref.update(values) bm_node_ref.update(values)
@ -143,14 +142,14 @@ def bm_node_create(context, values):
return bm_node_ref return bm_node_ref
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_update(context, bm_node_id, values): def bm_node_update(context, bm_node_id, values):
model_query(context, models.BareMetalNode, read_deleted="no").\ model_query(context, models.BareMetalNode, read_deleted="no").\
filter_by(id=bm_node_id).\ filter_by(id=bm_node_id).\
update(values) update(values)
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_set_uuid_safe(context, bm_node_id, values): def bm_node_set_uuid_safe(context, bm_node_id, values):
"""Associate an instance to a node safely """Associate an instance to a node safely
@ -164,7 +163,7 @@ def bm_node_set_uuid_safe(context, bm_node_id, values):
raise exception.NovaException(_( raise exception.NovaException(_(
"instance_uuid must be supplied to bm_node_set_uuid_safe")) "instance_uuid must be supplied to bm_node_set_uuid_safe"))
session = get_session() session = db_session.get_session()
with session.begin(): with session.begin():
query = model_query(context, models.BareMetalNode, query = model_query(context, models.BareMetalNode,
session=session, read_deleted="no").\ session=session, read_deleted="no").\
@ -181,7 +180,7 @@ def bm_node_set_uuid_safe(context, bm_node_id, values):
return ref return ref
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_node_destroy(context, bm_node_id): def bm_node_destroy(context, bm_node_id):
model_query(context, models.BareMetalNode).\ model_query(context, models.BareMetalNode).\
filter_by(id=bm_node_id).\ filter_by(id=bm_node_id).\
@ -190,13 +189,13 @@ def bm_node_destroy(context, bm_node_id):
'updated_at': literal_column('updated_at')}) 'updated_at': literal_column('updated_at')})
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_get_all(context): def bm_pxe_ip_get_all(context):
query = model_query(context, models.BareMetalPxeIp, read_deleted="no") query = model_query(context, models.BareMetalPxeIp, read_deleted="no")
return query.all() return query.all()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_create(context, address, server_address): def bm_pxe_ip_create(context, address, server_address):
ref = models.BareMetalPxeIp() ref = models.BareMetalPxeIp()
ref.address = address ref.address = address
@ -205,7 +204,7 @@ def bm_pxe_ip_create(context, address, server_address):
return ref return ref
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_create_direct(context, bm_pxe_ip): def bm_pxe_ip_create_direct(context, bm_pxe_ip):
ref = bm_pxe_ip_create(context, ref = bm_pxe_ip_create(context,
address=bm_pxe_ip['address'], address=bm_pxe_ip['address'],
@ -213,7 +212,7 @@ def bm_pxe_ip_create_direct(context, bm_pxe_ip):
return ref return ref
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_destroy(context, ip_id): def bm_pxe_ip_destroy(context, ip_id):
# Delete physically since it has unique columns # Delete physically since it has unique columns
model_query(context, models.BareMetalPxeIp, read_deleted="no").\ model_query(context, models.BareMetalPxeIp, read_deleted="no").\
@ -221,7 +220,7 @@ def bm_pxe_ip_destroy(context, ip_id):
delete() delete()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_destroy_by_address(context, address): def bm_pxe_ip_destroy_by_address(context, address):
# Delete physically since it has unique columns # Delete physically since it has unique columns
model_query(context, models.BareMetalPxeIp, read_deleted="no").\ model_query(context, models.BareMetalPxeIp, read_deleted="no").\
@ -229,7 +228,7 @@ def bm_pxe_ip_destroy_by_address(context, address):
delete() delete()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_get(context, ip_id): def bm_pxe_ip_get(context, ip_id):
result = model_query(context, models.BareMetalPxeIp, read_deleted="no").\ result = model_query(context, models.BareMetalPxeIp, read_deleted="no").\
filter_by(id=ip_id).\ filter_by(id=ip_id).\
@ -238,7 +237,7 @@ def bm_pxe_ip_get(context, ip_id):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_get_by_bm_node_id(context, bm_node_id): def bm_pxe_ip_get_by_bm_node_id(context, bm_node_id):
result = model_query(context, models.BareMetalPxeIp, read_deleted="no").\ result = model_query(context, models.BareMetalPxeIp, read_deleted="no").\
filter_by(bm_node_id=bm_node_id).\ filter_by(bm_node_id=bm_node_id).\
@ -250,9 +249,9 @@ def bm_pxe_ip_get_by_bm_node_id(context, bm_node_id):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_associate(context, bm_node_id): def bm_pxe_ip_associate(context, bm_node_id):
session = get_session() session = db_session.get_session()
with session.begin(): with session.begin():
# Check if the node really exists # Check if the node really exists
node_ref = model_query(context, models.BareMetalNode, node_ref = model_query(context, models.BareMetalNode,
@ -288,14 +287,14 @@ def bm_pxe_ip_associate(context, bm_node_id):
return ip_ref.id return ip_ref.id
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_pxe_ip_disassociate(context, bm_node_id): def bm_pxe_ip_disassociate(context, bm_node_id):
model_query(context, models.BareMetalPxeIp, read_deleted="no").\ model_query(context, models.BareMetalPxeIp, read_deleted="no").\
filter_by(bm_node_id=bm_node_id).\ filter_by(bm_node_id=bm_node_id).\
update({'bm_node_id': None}) update({'bm_node_id': None})
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_get(context, if_id): def bm_interface_get(context, if_id):
result = model_query(context, models.BareMetalInterface, result = model_query(context, models.BareMetalInterface,
read_deleted="no").\ read_deleted="no").\
@ -309,14 +308,14 @@ def bm_interface_get(context, if_id):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_get_all(context): def bm_interface_get_all(context):
query = model_query(context, models.BareMetalInterface, query = model_query(context, models.BareMetalInterface,
read_deleted="no") read_deleted="no")
return query.all() return query.all()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_destroy(context, if_id): def bm_interface_destroy(context, if_id):
# Delete physically since it has unique columns # Delete physically since it has unique columns
model_query(context, models.BareMetalInterface, read_deleted="no").\ model_query(context, models.BareMetalInterface, read_deleted="no").\
@ -324,7 +323,7 @@ def bm_interface_destroy(context, if_id):
delete() delete()
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_create(context, bm_node_id, address, datapath_id, port_no): def bm_interface_create(context, bm_node_id, address, datapath_id, port_no):
ref = models.BareMetalInterface() ref = models.BareMetalInterface()
ref.bm_node_id = bm_node_id ref.bm_node_id = bm_node_id
@ -335,9 +334,9 @@ def bm_interface_create(context, bm_node_id, address, datapath_id, port_no):
return ref.id return ref.id
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_set_vif_uuid(context, if_id, vif_uuid): def bm_interface_set_vif_uuid(context, if_id, vif_uuid):
session = get_session() session = db_session.get_session()
with session.begin(): with session.begin():
bm_interface = model_query(context, models.BareMetalInterface, bm_interface = model_query(context, models.BareMetalInterface,
read_deleted="no", session=session).\ read_deleted="no", session=session).\
@ -361,7 +360,7 @@ def bm_interface_set_vif_uuid(context, if_id, vif_uuid):
raise e raise e
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_get_by_vif_uuid(context, vif_uuid): def bm_interface_get_by_vif_uuid(context, vif_uuid):
result = model_query(context, models.BareMetalInterface, result = model_query(context, models.BareMetalInterface,
read_deleted="no").\ read_deleted="no").\
@ -375,7 +374,7 @@ def bm_interface_get_by_vif_uuid(context, vif_uuid):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_interface_get_all_by_bm_node_id(context, bm_node_id): def bm_interface_get_all_by_bm_node_id(context, bm_node_id):
result = model_query(context, models.BareMetalInterface, result = model_query(context, models.BareMetalInterface,
read_deleted="no").\ read_deleted="no").\
@ -388,7 +387,7 @@ def bm_interface_get_all_by_bm_node_id(context, bm_node_id):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_deployment_create(context, key, image_path, pxe_config_path, root_mb, def bm_deployment_create(context, key, image_path, pxe_config_path, root_mb,
swap_mb): swap_mb):
ref = models.BareMetalDeployment() ref = models.BareMetalDeployment()
@ -401,7 +400,7 @@ def bm_deployment_create(context, key, image_path, pxe_config_path, root_mb,
return ref.id return ref.id
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_deployment_get(context, dep_id): def bm_deployment_get(context, dep_id):
result = model_query(context, models.BareMetalDeployment, result = model_query(context, models.BareMetalDeployment,
read_deleted="no").\ read_deleted="no").\
@ -410,7 +409,7 @@ def bm_deployment_get(context, dep_id):
return result return result
@require_admin_context @sqlalchemy_api.require_admin_context
def bm_deployment_destroy(context, dep_id): def bm_deployment_destroy(context, dep_id):
model_query(context, models.BareMetalDeployment).\ model_query(context, models.BareMetalDeployment).\
filter_by(id=dep_id).\ filter_by(id=dep_id).\

View File

@ -25,7 +25,7 @@ import sqlalchemy
from nova import exception from nova import exception
from nova.openstack.common import log as logging from nova.openstack.common import log as logging
from nova.virt.baremetal.db import migration from nova.virt.baremetal.db import migration
from nova.virt.baremetal.db.sqlalchemy.session import get_engine from nova.virt.baremetal.db.sqlalchemy import session
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -71,24 +71,25 @@ def db_sync(version=None):
current_version = db_version() current_version = db_version()
repository = _find_migrate_repo() repository = _find_migrate_repo()
if version is None or version > current_version: if version is None or version > current_version:
return versioning_api.upgrade(get_engine(), repository, version) return versioning_api.upgrade(session.get_engine(), repository,
version)
else: else:
return versioning_api.downgrade(get_engine(), repository, return versioning_api.downgrade(session.get_engine(), repository,
version) version)
def db_version(): def db_version():
repository = _find_migrate_repo() repository = _find_migrate_repo()
try: try:
return versioning_api.db_version(get_engine(), repository) return versioning_api.db_version(session.get_engine(), repository)
except versioning_exceptions.DatabaseNotControlledError: except versioning_exceptions.DatabaseNotControlledError:
meta = sqlalchemy.MetaData() meta = sqlalchemy.MetaData()
engine = get_engine() engine = session.get_engine()
meta.reflect(bind=engine) meta.reflect(bind=engine)
tables = meta.tables tables = meta.tables
if len(tables) == 0: if len(tables) == 0:
db_version_control(migration.INIT_VERSION) db_version_control(migration.INIT_VERSION)
return versioning_api.db_version(get_engine(), repository) return versioning_api.db_version(session.get_engine(), repository)
else: else:
# Some pre-Essex DB's may not be version controlled. # Some pre-Essex DB's may not be version controlled.
# Require them to upgrade using Essex first. # Require them to upgrade using Essex first.
@ -98,7 +99,7 @@ def db_version():
def db_version_control(version=None): def db_version_control(version=None):
repository = _find_migrate_repo() repository = _find_migrate_repo()
versioning_api.version_control(get_engine(), repository, version) versioning_api.version_control(session.get_engine(), repository, version)
return version return version

View File

@ -17,7 +17,7 @@
# under the License. # under the License.
from nova.virt.baremetal import base from nova.virt.baremetal import base
from nova.virt.firewall import NoopFirewallDriver from nova.virt import firewall
class FakeDriver(base.NodeDriver): class FakeDriver(base.NodeDriver):
@ -52,7 +52,7 @@ class FakePowerManager(base.PowerManager):
super(FakePowerManager, self).__init__(**kwargs) super(FakePowerManager, self).__init__(**kwargs)
class FakeFirewallDriver(NoopFirewallDriver): class FakeFirewallDriver(firewall.NoopFirewallDriver):
def __init__(self): def __init__(self):
super(FakeFirewallDriver, self).__init__() super(FakeFirewallDriver, self).__init__()

View File

@ -25,7 +25,7 @@ import os
import stat import stat
import tempfile import tempfile
from nova.exception import InvalidParameterValue from nova import exception
from nova.openstack.common import cfg from nova.openstack.common import cfg
from nova.openstack.common import log as logging from nova.openstack.common import log as logging
from nova import paths from nova import paths
@ -104,13 +104,17 @@ class IPMI(base.PowerManager):
self.port = node['terminal_port'] self.port = node['terminal_port']
if self.node_id == None: if self.node_id == None:
raise InvalidParameterValue(_("Node id not supplied to IPMI")) raise exception.InvalidParameterValue(_("Node id not supplied "
"to IPMI"))
if self.address == None: if self.address == None:
raise InvalidParameterValue(_("Address not supplied to IPMI")) raise exception.InvalidParameterValue(_("Address not supplied "
"to IPMI"))
if self.user == None: if self.user == None:
raise InvalidParameterValue(_("User not supplied to IPMI")) raise exception.InvalidParameterValue(_("User not supplied "
"to IPMI"))
if self.password == None: if self.password == None:
raise InvalidParameterValue(_("Password not supplied to IPMI")) raise exception.InvalidParameterValue(_("Password not supplied "
"to IPMI"))
def _exec_ipmitool(self, command): def _exec_ipmitool(self, command):
args = ['ipmitool', args = ['ipmitool',

View File

@ -66,7 +66,8 @@ CHEETAH = None
def _get_cheetah(): def _get_cheetah():
global CHEETAH global CHEETAH
if CHEETAH is None: if CHEETAH is None:
from Cheetah.Template import Template as CHEETAH from Cheetah import Template
CHEETAH = Template.Template
return CHEETAH return CHEETAH