Use functions from oslo.utils

Functions is_int_like(), generate_uuid() is_uuid_like() available in
oslo.utils, so we can use them from there and remove duplicates from
Ironic code

Change-Id: I2a319e633a835dbca6831148acaf425e4ff6a725
This commit is contained in:
Victor Sergeyev 2015-02-23 12:46:30 +02:00
parent b1f932a5c1
commit fe6be4d49f
33 changed files with 186 additions and 230 deletions

View File

@ -17,6 +17,7 @@ import ast
import datetime import datetime
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
import pecan import pecan
from pecan import rest from pecan import rest
import wsme import wsme
@ -88,7 +89,7 @@ def allow_logical_names():
def is_valid_name(name): def is_valid_name(name):
return utils.is_hostname_safe(name) and (not utils.is_uuid_like(name)) return utils.is_hostname_safe(name) and (not uuidutils.is_uuid_like(name))
def _get_rpc_node(node_ident): def _get_rpc_node(node_ident):
@ -103,7 +104,7 @@ def _get_rpc_node(node_ident):
""" """
# Check to see if the node_ident is a valid UUID. If it is, treat it # Check to see if the node_ident is a valid UUID. If it is, treat it
# as a UUID. # as a UUID.
if utils.is_uuid_like(node_ident): if uuidutils.is_uuid_like(node_ident):
return objects.Node.get_by_uuid(pecan.request.context, node_ident) return objects.Node.get_by_uuid(pecan.request.context, node_ident)
# If it was not UUID-like, but it is name-like, and we allow names, # If it was not UUID-like, but it is name-like, and we allow names,
@ -920,7 +921,7 @@ class NodesController(rest.RestController):
if node: if node:
# We're invoking this interface using positional notation, or # We're invoking this interface using positional notation, or
# explicitly using 'node'. Try and determine which one. # explicitly using 'node'. Try and determine which one.
if not allow_logical_names() and not utils.is_uuid_like(node): if not allow_logical_names() and not uuidutils.is_uuid_like(node):
raise exception.NotAcceptable() raise exception.NotAcceptable()
rpc_node = _get_rpc_node(node_uuid or node) rpc_node = _get_rpc_node(node_uuid or node)
@ -955,7 +956,7 @@ class NodesController(rest.RestController):
# We need to ensure that node has a UUID before it can # We need to ensure that node has a UUID before it can
# be mapped onto the hash ring. # be mapped onto the hash ring.
if not node.uuid: if not node.uuid:
node.uuid = utils.generate_uuid() node.uuid = uuidutils.generate_uuid()
try: try:
pecan.request.rpcapi.get_topic_for(node) pecan.request.rpcapi.get_topic_for(node)

View File

@ -18,6 +18,7 @@
import json import json
from oslo_utils import strutils from oslo_utils import strutils
from oslo_utils import uuidutils
import six import six
import wsme import wsme
from wsme import types as wtypes from wsme import types as wtypes
@ -62,7 +63,8 @@ class UuidOrNameType(wtypes.UserType):
@staticmethod @staticmethod
def validate(value): def validate(value):
if not (utils.is_uuid_like(value) or utils.is_hostname_safe(value)): if not (uuidutils.is_uuid_like(value)
or utils.is_hostname_safe(value)):
raise exception.InvalidUuidOrName(name=value) raise exception.InvalidUuidOrName(name=value)
return value return value
@ -110,7 +112,7 @@ class UuidType(wtypes.UserType):
@staticmethod @staticmethod
def validate(value): def validate(value):
if not utils.is_uuid_like(value): if not uuidutils.is_uuid_like(value):
raise exception.InvalidUUID(uuid=value) raise exception.InvalidUUID(uuid=value)
return value return value

View File

@ -14,6 +14,7 @@
# under the License. # under the License.
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
from swiftclient import utils as swift_utils from swiftclient import utils as swift_utils
from ironic.common import exception as exc from ironic.common import exception as exc
@ -21,7 +22,6 @@ from ironic.common.glance_service import base_image_service
from ironic.common.glance_service import service from ironic.common.glance_service import service
from ironic.common.glance_service import service_utils from ironic.common.glance_service import service_utils
from ironic.common.i18n import _ from ironic.common.i18n import _
from ironic.common import utils
glance_opts = [ glance_opts = [
@ -135,7 +135,7 @@ class GlanceImageService(base_image_service.BaseImageService,
self._validate_temp_url_config() self._validate_temp_url_config()
if ('id' not in image_info or not if ('id' not in image_info or not
utils.is_uuid_like(image_info['id'])): uuidutils.is_uuid_like(image_info['id'])):
raise exc.ImageUnacceptable(_( raise exc.ImageUnacceptable(_(
'The given image info does not have a valid image id: %s') 'The given image info does not have a valid image id: %s')
% image_info) % image_info)

View File

@ -26,7 +26,6 @@ import random
import re import re
import shutil import shutil
import tempfile import tempfile
import uuid
import netaddr import netaddr
from oslo_concurrency import processutils from oslo_concurrency import processutils
@ -157,14 +156,6 @@ def delete_if_exists(pathname):
raise raise
def is_int_like(val):
"""Check if a value looks like an int."""
try:
return str(int(val)) == str(val)
except Exception:
return False
def is_valid_boolstr(val): def is_valid_boolstr(val):
"""Check if the provided string is a valid bool string or not.""" """Check if the provided string is a valid bool string or not."""
boolstrs = ('true', 'false', 'yes', 'no', 'y', 'n', '1', '0') boolstrs = ('true', 'false', 'yes', 'no', 'y', 'n', '1', '0')
@ -488,23 +479,6 @@ def safe_rstrip(value, chars=None):
return value.rstrip(chars) or value return value.rstrip(chars) or value
def generate_uuid():
return str(uuid.uuid4())
def is_uuid_like(val):
"""Returns validation of a value as a UUID.
For our purposes, a UUID is a canonical form string:
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
"""
try:
return str(uuid.UUID(val)) == val
except (TypeError, ValueError, AttributeError):
return False
def mount(src, dest, *args): def mount(src, dest, *args):
"""Mounts a device/image file on specified location. """Mounts a device/image file on specified location.

View File

@ -54,6 +54,7 @@ from oslo_concurrency import lockutils
from oslo_config import cfg from oslo_config import cfg
from oslo_db import exception as db_exception from oslo_db import exception as db_exception
from oslo_utils import excutils from oslo_utils import excutils
from oslo_utils import uuidutils
from ironic.common import dhcp_factory from ironic.common import dhcp_factory
from ironic.common import driver_factory from ironic.common import driver_factory
@ -68,7 +69,6 @@ from ironic.common import keystone
from ironic.common import rpc from ironic.common import rpc
from ironic.common import states from ironic.common import states
from ironic.common import swift from ironic.common import swift
from ironic.common import utils as ironic_utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.conductor import utils from ironic.conductor import utils
from ironic.db import api as dbapi from ironic.db import api as dbapi
@ -1210,7 +1210,7 @@ class ConductorManager(periodic_task.PeriodicTasks):
continue continue
# populate the message which will be sent to ceilometer # populate the message which will be sent to ceilometer
message = {'message_id': ironic_utils.generate_uuid(), message = {'message_id': uuidutils.generate_uuid(),
'instance_uuid': instance_uuid, 'instance_uuid': instance_uuid,
'node_uuid': node_uuid, 'node_uuid': node_uuid,
'timestamp': datetime.datetime.utcnow(), 'timestamp': datetime.datetime.utcnow(),

View File

@ -133,7 +133,7 @@ class Connection(object):
:: ::
{ {
'uuid': utils.generate_uuid(), 'uuid': uuidutils.generate_uuid(),
'instance_uuid': None, 'instance_uuid': None,
'power_state': states.POWER_OFF, 'power_state': states.POWER_OFF,
'provision_state': states.AVAILABLE, 'provision_state': states.AVAILABLE,

View File

@ -23,7 +23,9 @@ from oslo_config import cfg
from oslo_db import exception as db_exc from oslo_db import exception as db_exc
from oslo_db.sqlalchemy import session as db_session from oslo_db.sqlalchemy import session as db_session
from oslo_db.sqlalchemy import utils as db_utils from oslo_db.sqlalchemy import utils as db_utils
from oslo_utils import strutils
from oslo_utils import timeutils from oslo_utils import timeutils
from oslo_utils import uuidutils
from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.orm.exc import NoResultFound
from ironic.common import exception from ironic.common import exception
@ -89,9 +91,9 @@ def add_identity_filter(query, value):
:param value: Value for filtering results by. :param value: Value for filtering results by.
:return: Modified query. :return: Modified query.
""" """
if utils.is_int_like(value): if strutils.is_int_like(value):
return query.filter_by(id=value) return query.filter_by(id=value)
elif utils.is_uuid_like(value): elif uuidutils.is_uuid_like(value):
return query.filter_by(uuid=value) return query.filter_by(uuid=value)
else: else:
raise exception.InvalidIdentity(identity=value) raise exception.InvalidIdentity(identity=value)
@ -114,7 +116,7 @@ def add_port_filter(query, value):
def add_port_filter_by_node(query, value): def add_port_filter_by_node(query, value):
if utils.is_int_like(value): if strutils.is_int_like(value):
return query.filter_by(node_id=value) return query.filter_by(node_id=value)
else: else:
query = query.join(models.Node, query = query.join(models.Node,
@ -123,7 +125,7 @@ def add_port_filter_by_node(query, value):
def add_node_filter_by_chassis(query, value): def add_node_filter_by_chassis(query, value):
if utils.is_int_like(value): if strutils.is_int_like(value):
return query.filter_by(chassis_id=value) return query.filter_by(chassis_id=value)
else: else:
query = query.join(models.Chassis, query = query.join(models.Chassis,
@ -254,7 +256,7 @@ class Connection(api.Connection):
def create_node(self, values): def create_node(self, values):
# ensure defaults are present for new nodes # ensure defaults are present for new nodes
if 'uuid' not in values: if 'uuid' not in values:
values['uuid'] = utils.generate_uuid() values['uuid'] = uuidutils.generate_uuid()
if 'power_state' not in values: if 'power_state' not in values:
values['power_state'] = states.NOSTATE values['power_state'] = states.NOSTATE
if 'provision_state' not in values: if 'provision_state' not in values:
@ -297,7 +299,7 @@ class Connection(api.Connection):
raise exception.NodeNotFound(node=node_name) raise exception.NodeNotFound(node=node_name)
def get_node_by_instance(self, instance): def get_node_by_instance(self, instance):
if not utils.is_uuid_like(instance): if not uuidutils.is_uuid_like(instance):
raise exception.InvalidUUID(uuid=instance) raise exception.InvalidUUID(uuid=instance)
query = (model_query(models.Node) query = (model_query(models.Node)
@ -323,7 +325,7 @@ class Connection(api.Connection):
# Get node ID, if an UUID was supplied. The ID is # Get node ID, if an UUID was supplied. The ID is
# required for deleting all ports, attached to the node. # required for deleting all ports, attached to the node.
if utils.is_uuid_like(node_id): if uuidutils.is_uuid_like(node_id):
node_id = node_ref['id'] node_id = node_ref['id']
port_query = model_query(models.Port, session=session) port_query = model_query(models.Port, session=session)
@ -408,7 +410,7 @@ class Connection(api.Connection):
def create_port(self, values): def create_port(self, values):
if not values.get('uuid'): if not values.get('uuid'):
values['uuid'] = utils.generate_uuid() values['uuid'] = uuidutils.generate_uuid()
port = models.Port() port = models.Port()
port.update(values) port.update(values)
try: try:
@ -473,7 +475,7 @@ class Connection(api.Connection):
def create_chassis(self, values): def create_chassis(self, values):
if not values.get('uuid'): if not values.get('uuid'):
values['uuid'] = utils.generate_uuid() values['uuid'] = uuidutils.generate_uuid()
chassis = models.Chassis() chassis = models.Chassis()
chassis.update(values) chassis.update(values)
try: try:

View File

@ -15,11 +15,11 @@ import ConfigParser
import os import os
import sys import sys
from oslo_utils import uuidutils
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from ironic.common import states as ironic_states from ironic.common import states as ironic_states
from ironic.common import utils
from ironic.db.sqlalchemy import models as ironic_models from ironic.db.sqlalchemy import models as ironic_models
from ironic.migrate_nova import nova_baremetal_states as nova_states from ironic.migrate_nova import nova_baremetal_states as nova_states
from ironic.migrate_nova import nova_models from ironic.migrate_nova import nova_models
@ -186,7 +186,7 @@ def convert_nova_ports(ports):
i_port = ironic_models.Port() i_port = ironic_models.Port()
i_port.id = n_port.id i_port.id = n_port.id
i_port.uuid = utils.generate_uuid() i_port.uuid = uuidutils.generate_uuid()
i_port.address = n_port.address i_port.address = n_port.address
i_port.node_id = n_port.bm_node_id i_port.node_id = n_port.bm_node_id

View File

@ -13,8 +13,10 @@
# 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 oslo_utils import strutils
from oslo_utils import uuidutils
from ironic.common import exception from ironic.common import exception
from ironic.common import utils
from ironic.db import api as dbapi from ironic.db import api as dbapi
from ironic.objects import base from ironic.objects import base
from ironic.objects import utils as obj_utils from ironic.objects import utils as obj_utils
@ -58,9 +60,9 @@ class Chassis(base.IronicObject):
:param chassis_id: the id *or* uuid of a chassis. :param chassis_id: the id *or* uuid of a chassis.
:returns: a :class:`Chassis` object. :returns: a :class:`Chassis` object.
""" """
if utils.is_int_like(chassis_id): if strutils.is_int_like(chassis_id):
return cls.get_by_id(context, chassis_id) return cls.get_by_id(context, chassis_id)
elif utils.is_uuid_like(chassis_id): elif uuidutils.is_uuid_like(chassis_id):
return cls.get_by_uuid(context, chassis_id) return cls.get_by_uuid(context, chassis_id)
else: else:
raise exception.InvalidIdentity(identity=chassis_id) raise exception.InvalidIdentity(identity=chassis_id)

View File

@ -13,8 +13,10 @@
# 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 oslo_utils import strutils
from oslo_utils import uuidutils
from ironic.common import exception from ironic.common import exception
from ironic.common import utils
from ironic.db import api as db_api from ironic.db import api as db_api
from ironic.objects import base from ironic.objects import base
from ironic.objects import utils as obj_utils from ironic.objects import utils as obj_utils
@ -95,9 +97,9 @@ class Node(base.IronicObject):
:param node_id: the id *or* uuid of a node. :param node_id: the id *or* uuid of a node.
:returns: a :class:`Node` object. :returns: a :class:`Node` object.
""" """
if utils.is_int_like(node_id): if strutils.is_int_like(node_id):
return cls.get_by_id(context, node_id) return cls.get_by_id(context, node_id)
elif utils.is_uuid_like(node_id): elif uuidutils.is_uuid_like(node_id):
return cls.get_by_uuid(context, node_id) return cls.get_by_uuid(context, node_id)
else: else:
raise exception.InvalidIdentity(identity=node_id) raise exception.InvalidIdentity(identity=node_id)

View File

@ -13,6 +13,9 @@
# 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 oslo_utils import strutils
from oslo_utils import uuidutils
from ironic.common import exception from ironic.common import exception
from ironic.common import utils from ironic.common import utils
from ironic.db import api as dbapi from ironic.db import api as dbapi
@ -60,9 +63,9 @@ class Port(base.IronicObject):
:param port_id: the id *or* uuid of a port. :param port_id: the id *or* uuid of a port.
:returns: a :class:`Port` object. :returns: a :class:`Port` object.
""" """
if utils.is_int_like(port_id): if strutils.is_int_like(port_id):
return cls.get_by_id(context, port_id) return cls.get_by_id(context, port_id)
elif utils.is_uuid_like(port_id): elif uuidutils.is_uuid_like(port_id):
return cls.get_by_uuid(context, port_id) return cls.get_by_uuid(context, port_id)
elif utils.is_valid_mac(port_id): elif utils.is_valid_mac(port_id):
return cls.get_by_address(context, port_id) return cls.get_by_address(context, port_id)

View File

@ -20,11 +20,11 @@ import datetime
import mock import mock
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import timeutils from oslo_utils import timeutils
from oslo_utils import uuidutils
from six.moves.urllib import parse as urlparse from six.moves.urllib import parse as urlparse
from wsme import types as wtypes from wsme import types as wtypes
from ironic.api.controllers.v1 import chassis as api_chassis from ironic.api.controllers.v1 import chassis as api_chassis
from ironic.common import utils
from ironic.tests.api import base as api_base from ironic.tests.api import base as api_base
from ironic.tests.api import utils as apiutils from ironic.tests.api import utils as apiutils
from ironic.tests import base from ironic.tests import base
@ -76,8 +76,8 @@ class TestListChassis(api_base.FunctionalTest):
def test_many(self): def test_many(self):
ch_list = [] ch_list = []
for id_ in range(5): for id_ in range(5):
chassis = obj_utils.create_test_chassis(self.context, id=id_, chassis = obj_utils.create_test_chassis(
uuid=utils.generate_uuid()) self.context, id=id_, uuid=uuidutils.generate_uuid())
ch_list.append(chassis.uuid) ch_list.append(chassis.uuid)
data = self.get_json('/chassis') data = self.get_json('/chassis')
self.assertEqual(len(ch_list), len(data['chassis'])) self.assertEqual(len(ch_list), len(data['chassis']))
@ -85,7 +85,7 @@ class TestListChassis(api_base.FunctionalTest):
self.assertEqual(ch_list.sort(), uuids.sort()) self.assertEqual(ch_list.sort(), uuids.sort())
def test_links(self): def test_links(self):
uuid = utils.generate_uuid() uuid = uuidutils.generate_uuid()
obj_utils.create_test_chassis(self.context, id=1, uuid=uuid) obj_utils.create_test_chassis(self.context, id=1, uuid=uuid)
data = self.get_json('/chassis/%s' % uuid) data = self.get_json('/chassis/%s' % uuid)
self.assertIn('links', data.keys()) self.assertIn('links', data.keys())
@ -98,7 +98,7 @@ class TestListChassis(api_base.FunctionalTest):
def test_collection_links(self): def test_collection_links(self):
for id in range(5): for id in range(5):
obj_utils.create_test_chassis(self.context, id=id, obj_utils.create_test_chassis(self.context, id=id,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
data = self.get_json('/chassis/?limit=3') data = self.get_json('/chassis/?limit=3')
self.assertEqual(3, len(data['chassis'])) self.assertEqual(3, len(data['chassis']))
@ -109,7 +109,7 @@ class TestListChassis(api_base.FunctionalTest):
cfg.CONF.set_override('max_limit', 3, 'api') cfg.CONF.set_override('max_limit', 3, 'api')
for id_ in range(5): for id_ in range(5):
obj_utils.create_test_chassis(self.context, id=id_, obj_utils.create_test_chassis(self.context, id=id_,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
data = self.get_json('/chassis') data = self.get_json('/chassis')
self.assertEqual(3, len(data['chassis'])) self.assertEqual(3, len(data['chassis']))
@ -127,7 +127,7 @@ class TestListChassis(api_base.FunctionalTest):
for id_ in range(2): for id_ in range(2):
obj_utils.create_test_node(self.context, obj_utils.create_test_node(self.context,
chassis_id=chassis.id, chassis_id=chassis.id,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
data = self.get_json('/chassis/%s/nodes' % chassis.uuid) data = self.get_json('/chassis/%s/nodes' % chassis.uuid)
self.assertEqual(2, len(data['nodes'])) self.assertEqual(2, len(data['nodes']))
@ -156,7 +156,7 @@ class TestPatch(api_base.FunctionalTest):
obj_utils.create_test_chassis(self.context) obj_utils.create_test_chassis(self.context)
def test_update_not_found(self): def test_update_not_found(self):
uuid = utils.generate_uuid() uuid = uuidutils.generate_uuid()
response = self.patch_json('/chassis/%s' % uuid, response = self.patch_json('/chassis/%s' % uuid,
[{'path': '/extra/a', 'value': 'b', [{'path': '/extra/a', 'value': 'b',
'op': 'add'}], 'op': 'add'}],
@ -186,7 +186,7 @@ class TestPatch(api_base.FunctionalTest):
def test_replace_multi(self): def test_replace_multi(self):
extra = {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"} extra = {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}
chassis = obj_utils.create_test_chassis(self.context, extra=extra, chassis = obj_utils.create_test_chassis(self.context, extra=extra,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
id=1) id=1)
new_value = 'new value' new_value = 'new value'
response = self.patch_json('/chassis/%s' % chassis.uuid, response = self.patch_json('/chassis/%s' % chassis.uuid,
@ -201,7 +201,7 @@ class TestPatch(api_base.FunctionalTest):
def test_remove_singular(self): def test_remove_singular(self):
chassis = obj_utils.create_test_chassis(self.context, extra={'a': 'b'}, chassis = obj_utils.create_test_chassis(self.context, extra={'a': 'b'},
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
id=1) id=1)
response = self.patch_json('/chassis/%s' % chassis.uuid, response = self.patch_json('/chassis/%s' % chassis.uuid,
[{'path': '/description', 'op': 'remove'}]) [{'path': '/description', 'op': 'remove'}])
@ -218,7 +218,7 @@ class TestPatch(api_base.FunctionalTest):
extra = {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"} extra = {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}
chassis = obj_utils.create_test_chassis(self.context, extra=extra, chassis = obj_utils.create_test_chassis(self.context, extra=extra,
description="foobar", description="foobar",
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
id=1) id=1)
# Removing one item from the collection # Removing one item from the collection
@ -339,7 +339,7 @@ class TestPost(api_base.FunctionalTest):
result = self.get_json('/chassis') result = self.get_json('/chassis')
self.assertEqual(cdict['description'], self.assertEqual(cdict['description'],
result['chassis'][0]['description']) result['chassis'][0]['description'])
self.assertTrue(utils.is_uuid_like(result['chassis'][0]['uuid'])) self.assertTrue(uuidutils.is_uuid_like(result['chassis'][0]['uuid']))
def test_post_nodes_subresource(self): def test_post_nodes_subresource(self):
chassis = obj_utils.create_test_chassis(self.context) chassis = obj_utils.create_test_chassis(self.context)
@ -388,7 +388,7 @@ class TestDelete(api_base.FunctionalTest):
self.assertIn(chassis.uuid, response.json['error_message']) self.assertIn(chassis.uuid, response.json['error_message'])
def test_delete_chassis_not_found(self): def test_delete_chassis_not_found(self):
uuid = utils.generate_uuid() uuid = uuidutils.generate_uuid()
response = self.delete('/chassis/%s' % uuid, expect_errors=True) response = self.delete('/chassis/%s' % uuid, expect_errors=True)
self.assertEqual(404, response.status_int) self.assertEqual(404, response.status_int)
self.assertEqual('application/json', response.content_type) self.assertEqual('application/json', response.content_type)

View File

@ -21,6 +21,7 @@ import json
import mock import mock
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import timeutils from oslo_utils import timeutils
from oslo_utils import uuidutils
import pecan import pecan
from six.moves.urllib import parse as urlparse from six.moves.urllib import parse as urlparse
from testtools.matchers import HasLength from testtools.matchers import HasLength
@ -32,7 +33,6 @@ from ironic.api.controllers.v1 import node as api_node
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
from ironic.common import utils
from ironic.conductor import rpcapi from ironic.conductor import rpcapi
from ironic import objects from ironic import objects
from ironic.tests.api import base as test_api_base from ironic.tests.api import base as test_api_base
@ -57,7 +57,7 @@ class TestTopLevelFunctions(base.TestCase):
def setUp(self): def setUp(self):
super(TestTopLevelFunctions, self).setUp() super(TestTopLevelFunctions, self).setUp()
self.valid_name = 'my-host' self.valid_name = 'my-host'
self.valid_uuid = utils.generate_uuid() self.valid_uuid = uuidutils.generate_uuid()
self.invalid_name = 'Mr Plow' self.invalid_name = 'Mr Plow'
self.invalid_uuid = '636-555-3226-' self.invalid_uuid = '636-555-3226-'
self.node = post_get_test_node() self.node = post_get_test_node()
@ -141,15 +141,15 @@ class TestListNodes(test_api_base.FunctionalTest):
unassociated_nodes = [] unassociated_nodes = []
for id in range(3): for id in range(3):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
unassociated_nodes.append(node.uuid) unassociated_nodes.append(node.uuid)
# created some associated nodes # created some associated nodes
associated_nodes = [] associated_nodes = []
for id in range(4): for id in range(4):
node = obj_utils.create_test_node( node = obj_utils.create_test_node(
self.context, uuid=utils.generate_uuid(), self.context, uuid=uuidutils.generate_uuid(),
instance_uuid=utils.generate_uuid()) instance_uuid=uuidutils.generate_uuid())
associated_nodes.append(node.uuid) associated_nodes.append(node.uuid)
return {'associated': associated_nodes, return {'associated': associated_nodes,
'unassociated': unassociated_nodes} 'unassociated': unassociated_nodes}
@ -266,7 +266,7 @@ class TestListNodes(test_api_base.FunctionalTest):
nodes = [] nodes = []
for id in range(5): for id in range(5):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
nodes.append(node.uuid) nodes.append(node.uuid)
data = self.get_json('/nodes') data = self.get_json('/nodes')
self.assertEqual(len(nodes), len(data['nodes'])) self.assertEqual(len(nodes), len(data['nodes']))
@ -280,7 +280,7 @@ class TestListNodes(test_api_base.FunctionalTest):
for id in range(5): for id in range(5):
name = 'node-%s' % id name = 'node-%s' % id
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
name=name) name=name)
nodes.append(node.uuid) nodes.append(node.uuid)
node_names.append(name) node_names.append(name)
@ -291,7 +291,7 @@ class TestListNodes(test_api_base.FunctionalTest):
self.assertEqual(sorted(node_names), sorted(names)) self.assertEqual(sorted(node_names), sorted(names))
def test_links(self): def test_links(self):
uuid = utils.generate_uuid() uuid = uuidutils.generate_uuid()
obj_utils.create_test_node(self.context, uuid=uuid) obj_utils.create_test_node(self.context, uuid=uuid)
data = self.get_json('/nodes/%s' % uuid) data = self.get_json('/nodes/%s' % uuid)
self.assertIn('links', data.keys()) self.assertIn('links', data.keys())
@ -305,7 +305,7 @@ class TestListNodes(test_api_base.FunctionalTest):
nodes = [] nodes = []
for id in range(5): for id in range(5):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
nodes.append(node.uuid) nodes.append(node.uuid)
data = self.get_json('/nodes/?limit=3') data = self.get_json('/nodes/?limit=3')
self.assertEqual(3, len(data['nodes'])) self.assertEqual(3, len(data['nodes']))
@ -318,7 +318,7 @@ class TestListNodes(test_api_base.FunctionalTest):
nodes = [] nodes = []
for id in range(5): for id in range(5):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
nodes.append(node.uuid) nodes.append(node.uuid)
data = self.get_json('/nodes') data = self.get_json('/nodes')
self.assertEqual(3, len(data['nodes'])) self.assertEqual(3, len(data['nodes']))
@ -336,7 +336,7 @@ class TestListNodes(test_api_base.FunctionalTest):
for id_ in range(2): for id_ in range(2):
obj_utils.create_test_port(self.context, node_id=node.id, obj_utils.create_test_port(self.context, node_id=node.id,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
address='52:54:00:cf:2d:3%s' % id_) address='52:54:00:cf:2d:3%s' % id_)
data = self.get_json('/nodes/%s/ports' % node.uuid) data = self.get_json('/nodes/%s/ports' % node.uuid)
@ -412,9 +412,10 @@ class TestListNodes(test_api_base.FunctionalTest):
self.assertFalse(data['console_enabled']) self.assertFalse(data['console_enabled'])
def test_node_by_instance_uuid(self): def test_node_by_instance_uuid(self):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(
uuid=utils.generate_uuid(), self.context,
instance_uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid(),
instance_uuid=uuidutils.generate_uuid())
instance_uuid = node.instance_uuid instance_uuid = node.instance_uuid
data = self.get_json('/nodes?instance_uuid=%s' % instance_uuid, data = self.get_json('/nodes?instance_uuid=%s' % instance_uuid,
@ -425,9 +426,10 @@ class TestListNodes(test_api_base.FunctionalTest):
data['nodes'][0]["instance_uuid"]) data['nodes'][0]["instance_uuid"])
def test_node_by_instance_uuid_wrong_uuid(self): def test_node_by_instance_uuid_wrong_uuid(self):
obj_utils.create_test_node(self.context, uuid=utils.generate_uuid(), obj_utils.create_test_node(
instance_uuid=utils.generate_uuid()) self.context, uuid=uuidutils.generate_uuid(),
wrong_uuid = utils.generate_uuid() instance_uuid=uuidutils.generate_uuid())
wrong_uuid = uuidutils.generate_uuid()
data = self.get_json('/nodes?instance_uuid=%s' % wrong_uuid) data = self.get_json('/nodes?instance_uuid=%s' % wrong_uuid)
@ -505,9 +507,10 @@ class TestListNodes(test_api_base.FunctionalTest):
self.assertIn('associated=True', data['next']) self.assertIn('associated=True', data['next'])
def test_detail_with_instance_uuid(self): def test_detail_with_instance_uuid(self):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(
uuid=utils.generate_uuid(), self.context,
instance_uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid(),
instance_uuid=uuidutils.generate_uuid())
instance_uuid = node.instance_uuid instance_uuid = node.instance_uuid
data = self.get_json('/nodes/detail?instance_uuid=%s' % instance_uuid) data = self.get_json('/nodes/detail?instance_uuid=%s' % instance_uuid)
@ -526,7 +529,7 @@ class TestListNodes(test_api_base.FunctionalTest):
nodes = [] nodes = []
for id in range(5): for id in range(5):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
maintenance=id % 2) maintenance=id % 2)
nodes.append(node) nodes.append(node)
@ -549,8 +552,9 @@ class TestListNodes(test_api_base.FunctionalTest):
def test_maintenance_nodes_associated(self): def test_maintenance_nodes_associated(self):
self._create_association_test_nodes() self._create_association_test_nodes()
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(
instance_uuid=utils.generate_uuid(), self.context,
instance_uuid=uuidutils.generate_uuid(),
maintenance=True) maintenance=True)
data = self.get_json('/nodes?associated=true&maintenance=false') data = self.get_json('/nodes?associated=true&maintenance=false')
@ -884,7 +888,7 @@ class TestPatch(test_api_base.FunctionalTest):
def test_update_state_in_progress(self): def test_update_state_in_progress(self):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
target_power_state=states.POWER_OFF) target_power_state=states.POWER_OFF)
response = self.patch_json('/nodes/%s' % node.uuid, response = self.patch_json('/nodes/%s' % node.uuid,
[{'path': '/extra/foo', 'value': 'bar', [{'path': '/extra/foo', 'value': 'bar',
@ -895,7 +899,7 @@ class TestPatch(test_api_base.FunctionalTest):
def test_add_state_in_deployfail(self): def test_add_state_in_deployfail(self):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
provision_state=states.DEPLOYFAIL, provision_state=states.DEPLOYFAIL,
target_provision_state=states.ACTIVE) target_provision_state=states.ACTIVE)
self.mock_update_node.return_value = node self.mock_update_node.return_value = node
@ -1097,7 +1101,7 @@ class TestPatch(test_api_base.FunctionalTest):
def test_patch_duplicate_name(self): def test_patch_duplicate_name(self):
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid()) uuid=uuidutils.generate_uuid())
test_name = "this-is-my-node" test_name = "this-is-my-node"
self.mock_update_node.side_effect = exception.DuplicateName(test_name) self.mock_update_node.side_effect = exception.DuplicateName(test_name)
response = self.patch_json('/nodes/%s' % node.uuid, response = self.patch_json('/nodes/%s' % node.uuid,

View File

@ -20,13 +20,13 @@ import datetime
import mock import mock
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import timeutils from oslo_utils import timeutils
from oslo_utils import uuidutils
from six.moves.urllib import parse as urlparse from six.moves.urllib import parse as urlparse
from testtools.matchers import HasLength from testtools.matchers import HasLength
from wsme import types as wtypes from wsme import types as wtypes
from ironic.api.controllers.v1 import port as api_port from ironic.api.controllers.v1 import port as api_port
from ironic.common import exception from ironic.common import exception
from ironic.common import utils
from ironic.conductor import rpcapi from ironic.conductor import rpcapi
from ironic.tests.api import base as api_base from ironic.tests.api import base as api_base
from ironic.tests.api import utils as apiutils from ironic.tests.api import utils as apiutils
@ -102,7 +102,7 @@ class TestListPorts(api_base.FunctionalTest):
for id_ in range(5): for id_ in range(5):
port = obj_utils.create_test_port(self.context, port = obj_utils.create_test_port(self.context,
node_id=self.node.id, node_id=self.node.id,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
address='52:54:00:cf:2d:3%s' % id_) address='52:54:00:cf:2d:3%s' % id_)
ports.append(port.uuid) ports.append(port.uuid)
data = self.get_json('/ports') data = self.get_json('/ports')
@ -112,7 +112,7 @@ class TestListPorts(api_base.FunctionalTest):
self.assertEqual(ports.sort(), uuids.sort()) self.assertEqual(ports.sort(), uuids.sort())
def test_links(self): def test_links(self):
uuid = utils.generate_uuid() uuid = uuidutils.generate_uuid()
obj_utils.create_test_port(self.context, obj_utils.create_test_port(self.context,
uuid=uuid, uuid=uuid,
node_id=self.node.id) node_id=self.node.id)
@ -129,7 +129,7 @@ class TestListPorts(api_base.FunctionalTest):
for id_ in range(5): for id_ in range(5):
port = obj_utils.create_test_port(self.context, port = obj_utils.create_test_port(self.context,
node_id=self.node.id, node_id=self.node.id,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
address='52:54:00:cf:2d:3%s' % id_) address='52:54:00:cf:2d:3%s' % id_)
ports.append(port.uuid) ports.append(port.uuid)
data = self.get_json('/ports/?limit=3') data = self.get_json('/ports/?limit=3')
@ -144,7 +144,7 @@ class TestListPorts(api_base.FunctionalTest):
for id_ in range(5): for id_ in range(5):
port = obj_utils.create_test_port(self.context, port = obj_utils.create_test_port(self.context,
node_id=self.node.id, node_id=self.node.id,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
address='52:54:00:cf:2d:3%s' % id_) address='52:54:00:cf:2d:3%s' % id_)
ports.append(port.uuid) ports.append(port.uuid)
data = self.get_json('/ports') data = self.get_json('/ports')
@ -158,7 +158,7 @@ class TestListPorts(api_base.FunctionalTest):
for id_ in range(3): for id_ in range(3):
obj_utils.create_test_port(self.context, obj_utils.create_test_port(self.context,
node_id=self.node.id, node_id=self.node.id,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
address=address_template % id_) address=address_template % id_)
target_address = address_template % 1 target_address = address_template % 1
@ -225,7 +225,7 @@ class TestPatch(api_base.FunctionalTest):
self.assertFalse(mock_upd.called) self.assertFalse(mock_upd.called)
def test_update_not_found(self, mock_upd): def test_update_not_found(self, mock_upd):
uuid = utils.generate_uuid() uuid = uuidutils.generate_uuid()
response = self.patch_json('/ports/%s' % uuid, response = self.patch_json('/ports/%s' % uuid,
[{'path': '/extra/foo', [{'path': '/extra/foo',
'value': 'bar', 'value': 'bar',
@ -524,7 +524,7 @@ class TestPost(api_base.FunctionalTest):
response = self.post_json('/ports', pdict) response = self.post_json('/ports', pdict)
result = self.get_json('/ports/%s' % response.json['uuid']) result = self.get_json('/ports/%s' % response.json['uuid'])
self.assertEqual(pdict['address'], result['address']) self.assertEqual(pdict['address'], result['address'])
self.assertTrue(utils.is_uuid_like(result['uuid'])) self.assertTrue(uuidutils.is_uuid_like(result['uuid']))
def test_create_port_valid_extra(self): def test_create_port_valid_extra(self):
pdict = post_get_test_port(extra={'str': 'foo', 'int': 123, pdict = post_get_test_port(extra={'str': 'foo', 'int': 123,
@ -601,7 +601,7 @@ class TestPost(api_base.FunctionalTest):
address = 'AA:AA:AA:11:22:33' address = 'AA:AA:AA:11:22:33'
pdict = post_get_test_port(address=address) pdict = post_get_test_port(address=address)
self.post_json('/ports', pdict) self.post_json('/ports', pdict)
pdict['uuid'] = utils.generate_uuid() pdict['uuid'] = uuidutils.generate_uuid()
response = self.post_json('/ports', pdict, expect_errors=True) response = self.post_json('/ports', pdict, expect_errors=True)
self.assertEqual(409, response.status_int) self.assertEqual(409, response.status_int)
self.assertEqual('application/json', response.content_type) self.assertEqual('application/json', response.content_type)

View File

@ -16,6 +16,7 @@
# under the License. # under the License.
import mock import mock
from oslo_utils import uuidutils
import webtest import webtest
import wsme import wsme
from wsme import types as wtypes from wsme import types as wtypes
@ -63,7 +64,7 @@ class TestNameType(base.TestCase):
class TestUuidOrNameType(base.TestCase): class TestUuidOrNameType(base.TestCase):
@mock.patch.object(utils, 'is_uuid_like') @mock.patch.object(uuidutils, 'is_uuid_like')
@mock.patch.object(utils, 'is_hostname_safe') @mock.patch.object(utils, 'is_hostname_safe')
def test_valid_uuid(self, host_mock, uuid_mock): def test_valid_uuid(self, host_mock, uuid_mock):
test_uuid = '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' test_uuid = '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
@ -72,7 +73,7 @@ class TestUuidOrNameType(base.TestCase):
self.assertTrue(types.UuidOrNameType.validate(test_uuid)) self.assertTrue(types.UuidOrNameType.validate(test_uuid))
uuid_mock.assert_called_once_with(test_uuid) uuid_mock.assert_called_once_with(test_uuid)
@mock.patch.object(utils, 'is_uuid_like') @mock.patch.object(uuidutils, 'is_uuid_like')
@mock.patch.object(utils, 'is_hostname_safe') @mock.patch.object(utils, 'is_hostname_safe')
def test_valid_name(self, host_mock, uuid_mock): def test_valid_name(self, host_mock, uuid_mock):
test_name = 'dc16-database5' test_name = 'dc16-database5'

View File

@ -11,11 +11,11 @@
# under the License. # under the License.
import mock import mock
from oslo_utils import uuidutils
from ironic.common import driver_factory from ironic.common import driver_factory
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
from ironic.common import utils as cmn_utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.conductor import utils as conductor_utils from ironic.conductor import utils as conductor_utils
from ironic import objects from ironic import objects
@ -33,7 +33,7 @@ class NodeSetBootDeviceTestCase(base.DbTestCase):
self.driver = driver_factory.get_driver("fake_ipmitool") self.driver = driver_factory.get_driver("fake_ipmitool")
ipmi_info = utils.get_test_ipmi_info() ipmi_info = utils.get_test_ipmi_info()
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake_ipmitool', driver='fake_ipmitool',
driver_info=ipmi_info) driver_info=ipmi_info)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -47,7 +47,7 @@ class NodeSetBootDeviceTestCase(base.DbTestCase):
self.driver = driver_factory.get_driver("fake_ipmitool") self.driver = driver_factory.get_driver("fake_ipmitool")
ipmi_info = utils.get_test_ipmi_info() ipmi_info = utils.get_test_ipmi_info()
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake_ipmitool', driver='fake_ipmitool',
driver_info=ipmi_info) driver_info=ipmi_info)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -71,7 +71,7 @@ class NodePowerActionTestCase(base.DbTestCase):
def test_node_power_action_power_on(self): def test_node_power_action_power_on(self):
"""Test node_power_action to turn node power on.""" """Test node_power_action to turn node power on."""
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_OFF) power_state=states.POWER_OFF)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -91,7 +91,7 @@ class NodePowerActionTestCase(base.DbTestCase):
def test_node_power_action_power_off(self): def test_node_power_action_power_off(self):
"""Test node_power_action to turn node power off.""" """Test node_power_action to turn node power off."""
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_ON) power_state=states.POWER_ON)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -111,7 +111,7 @@ class NodePowerActionTestCase(base.DbTestCase):
def test_node_power_action_power_reboot(self): def test_node_power_action_power_reboot(self):
"""Test for reboot a node.""" """Test for reboot a node."""
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_ON) power_state=states.POWER_ON)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -128,7 +128,7 @@ class NodePowerActionTestCase(base.DbTestCase):
def test_node_power_action_invalid_state(self): def test_node_power_action_invalid_state(self):
"""Test for exception when changing to an invalid power state.""" """Test for exception when changing to an invalid power state."""
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_ON) power_state=states.POWER_ON)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -165,7 +165,7 @@ class NodePowerActionTestCase(base.DbTestCase):
and the user is attempting to power-off again.) and the user is attempting to power-off again.)
""" """
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_ON, power_state=states.POWER_ON,
target_power_state=states.POWER_OFF) target_power_state=states.POWER_OFF)
@ -185,7 +185,7 @@ class NodePowerActionTestCase(base.DbTestCase):
state is the same as the current state. state is the same as the current state.
""" """
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
last_error='anything but None', last_error='anything but None',
power_state=states.POWER_ON) power_state=states.POWER_ON)
@ -214,7 +214,7 @@ class NodePowerActionTestCase(base.DbTestCase):
information, make sure we fix it. information, make sure we fix it.
""" """
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
last_error='anything but None', last_error='anything but None',
power_state=states.POWER_ON) power_state=states.POWER_ON)
@ -239,7 +239,7 @@ class NodePowerActionTestCase(base.DbTestCase):
def test_node_power_action_failed_getting_state(self): def test_node_power_action_failed_getting_state(self):
"""Test for exception when we can't get the current power state.""" """Test for exception when we can't get the current power state."""
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_ON) power_state=states.POWER_ON)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)
@ -263,7 +263,7 @@ class NodePowerActionTestCase(base.DbTestCase):
def test_node_power_action_set_power_failure(self): def test_node_power_action_set_power_failure(self):
"""Test if an exception is thrown when the set_power call fails.""" """Test if an exception is thrown when the set_power call fails."""
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=cmn_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake', driver='fake',
power_state=states.POWER_OFF) power_state=states.POWER_OFF)
task = task_manager.TaskManager(self.context, node.uuid) task = task_manager.TaskManager(self.context, node.uuid)

View File

@ -25,6 +25,8 @@ import mock
from oslo import messaging from oslo import messaging
from oslo_config import cfg from oslo_config import cfg
from oslo_db import exception as db_exception from oslo_db import exception as db_exception
from oslo_utils import strutils
from oslo_utils import uuidutils
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import driver_factory from ironic.common import driver_factory
@ -32,7 +34,6 @@ from ironic.common import exception
from ironic.common import keystone from ironic.common import keystone
from ironic.common import states from ironic.common import states
from ironic.common import swift from ironic.common import swift
from ironic.common import utils as ironic_utils
from ironic.conductor import manager from ironic.conductor import manager
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.conductor import utils as conductor_utils from ironic.conductor import utils as conductor_utils
@ -53,7 +54,7 @@ class _CommonMixIn(object):
@staticmethod @staticmethod
def _create_node(**kwargs): def _create_node(**kwargs):
attrs = {'id': 1, attrs = {'id': 1,
'uuid': ironic_utils.generate_uuid(), 'uuid': uuidutils.generate_uuid(),
'power_state': states.POWER_OFF, 'power_state': states.POWER_OFF,
'maintenance': False, 'maintenance': False,
'reservation': None} 'reservation': None}
@ -127,7 +128,7 @@ class _CommonMixIn(object):
# NOTE(comstud): Not ideal to throw this into # NOTE(comstud): Not ideal to throw this into
# a helper, however it's the cleanest way # a helper, however it's the cleanest way
# to verify we're dealing with the correct task/node. # to verify we're dealing with the correct task/node.
if ironic_utils.is_int_like(fa_self.node_id): if strutils.is_int_like(fa_self.node_id):
self.assertEqual(fa_self.node_id, task.node.id) self.assertEqual(fa_self.node_id, task.node.id)
else: else:
self.assertEqual(fa_self.node_id, task.node.uuid) self.assertEqual(fa_self.node_id, task.node.uuid)
@ -1371,7 +1372,7 @@ class DoNodeDeployTearDownTestCase(_ServiceSetUpMixin,
def _test_do_node_tear_down_from_state(self, init_state, mock_tear_down): def _test_do_node_tear_down_from_state(self, init_state, mock_tear_down):
mock_tear_down.return_value = states.DELETED mock_tear_down.return_value = states.DELETED
node = obj_utils.create_test_node(self.context, driver='fake', node = obj_utils.create_test_node(self.context, driver='fake',
uuid=ironic_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
provision_state=init_state, provision_state=init_state,
target_provision_state=states.NOSTATE) target_provision_state=states.NOSTATE)
@ -2371,7 +2372,7 @@ class ManagerSyncPowerStatesTestCase(_CommonMixIn, tests_db_base.DbTestCase):
mapped_map = {} mapped_map = {}
for i in range(1, 12): for i in range(1, 12):
attrs = {'id': i, attrs = {'id': i,
'uuid': ironic_utils.generate_uuid()} 'uuid': uuidutils.generate_uuid()}
if i == 3: if i == 3:
attrs['provision_state'] = states.DEPLOYWAIT attrs['provision_state'] = states.DEPLOYWAIT
attrs['target_provision_state'] = states.ACTIVE attrs['target_provision_state'] = states.ACTIVE

View File

@ -20,12 +20,12 @@
import eventlet import eventlet
from eventlet import greenpool from eventlet import greenpool
import mock import mock
from oslo_utils import uuidutils
from ironic.common import driver_factory from ironic.common import driver_factory
from ironic.common import exception from ironic.common import exception
from ironic.common import fsm from ironic.common import fsm
from ironic.common import states from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic import objects from ironic import objects
from ironic.tests import base as tests_base from ironic.tests import base as tests_base
@ -89,7 +89,7 @@ class TaskManagerTestCase(tests_db_base.DbTestCase):
reserve_mock, release_mock, reserve_mock, release_mock,
node_get_mock): node_get_mock):
node2 = obj_utils.create_test_node(self.context, node2 = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake') driver='fake')
reserve_mock.return_value = self.node reserve_mock.return_value = self.node

View File

@ -48,11 +48,11 @@ from oslo_db import exception as db_exc
from oslo_db.sqlalchemy import test_base from oslo_db.sqlalchemy import test_base
from oslo_db.sqlalchemy import test_migrations from oslo_db.sqlalchemy import test_migrations
from oslo_db.sqlalchemy import utils as db_utils from oslo_db.sqlalchemy import utils as db_utils
from oslo_utils import uuidutils
import sqlalchemy import sqlalchemy
import sqlalchemy.exc import sqlalchemy.exc
from ironic.common.i18n import _LE from ironic.common.i18n import _LE
from ironic.common import utils
from ironic.db.sqlalchemy import migration from ironic.db.sqlalchemy import migration
from ironic.db.sqlalchemy import models from ironic.db.sqlalchemy import models
from ironic.openstack.common import log as logging from ironic.openstack.common import log as logging
@ -310,10 +310,10 @@ class MigrationCheckersMixin(object):
nodes = db_utils.get_table(engine, 'nodes') nodes = db_utils.get_table(engine, 'nodes')
instance_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' instance_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
data = {'driver': 'fake', data = {'driver': 'fake',
'uuid': utils.generate_uuid(), 'uuid': uuidutils.generate_uuid(),
'instance_uuid': instance_uuid} 'instance_uuid': instance_uuid}
nodes.insert().values(data).execute() nodes.insert().values(data).execute()
data['uuid'] = utils.generate_uuid() data['uuid'] = uuidutils.generate_uuid()
# TODO(viktors): Remove check on sqlalchemy.exc.IntegrityError, when # TODO(viktors): Remove check on sqlalchemy.exc.IntegrityError, when
# Ironic will use oslo_db 0.4.0 or higher. # Ironic will use oslo_db 0.4.0 or higher.
# See bug #1214341 for details. # See bug #1214341 for details.
@ -332,13 +332,13 @@ class MigrationCheckersMixin(object):
# add some nodes in various states so we can assert that "None" # add some nodes in various states so we can assert that "None"
# was replaced by "available", and nothing else changed. # was replaced by "available", and nothing else changed.
nodes = db_utils.get_table(engine, 'nodes') nodes = db_utils.get_table(engine, 'nodes')
data = [{'uuid': utils.generate_uuid(), data = [{'uuid': uuidutils.generate_uuid(),
'provision_state': 'fake state'}, 'provision_state': 'fake state'},
{'uuid': utils.generate_uuid(), {'uuid': uuidutils.generate_uuid(),
'provision_state': 'active'}, 'provision_state': 'active'},
{'uuid': utils.generate_uuid(), {'uuid': uuidutils.generate_uuid(),
'provision_state': 'deleting'}, 'provision_state': 'deleting'},
{'uuid': utils.generate_uuid(), {'uuid': uuidutils.generate_uuid(),
'provision_state': None}] 'provision_state': None}]
nodes.insert().values(data).execute() nodes.insert().values(data).execute()
return data return data

View File

@ -13,8 +13,8 @@
"""Tests for custom SQLAlchemy types via Ironic DB.""" """Tests for custom SQLAlchemy types via Ironic DB."""
from oslo_db import exception as db_exc from oslo_db import exception as db_exc
from oslo_utils import uuidutils
from ironic.common import utils as ironic_utils
import ironic.db.sqlalchemy.api as sa_api import ironic.db.sqlalchemy.api as sa_api
from ironic.db.sqlalchemy import models from ironic.db.sqlalchemy import models
from ironic.tests.db import base from ironic.tests.db import base
@ -27,14 +27,14 @@ class SqlAlchemyCustomTypesTestCase(base.DbTestCase):
def test_JSONEncodedDict_default_value(self): def test_JSONEncodedDict_default_value(self):
# Create chassis w/o extra specified. # Create chassis w/o extra specified.
ch1_id = ironic_utils.generate_uuid() ch1_id = uuidutils.generate_uuid()
self.dbapi.create_chassis({'uuid': ch1_id}) self.dbapi.create_chassis({'uuid': ch1_id})
# Get chassis manually to test SA types in isolation from UOM. # Get chassis manually to test SA types in isolation from UOM.
ch1 = sa_api.model_query(models.Chassis).filter_by(uuid=ch1_id).one() ch1 = sa_api.model_query(models.Chassis).filter_by(uuid=ch1_id).one()
self.assertEqual({}, ch1.extra) self.assertEqual({}, ch1.extra)
# Create chassis with extra specified. # Create chassis with extra specified.
ch2_id = ironic_utils.generate_uuid() ch2_id = uuidutils.generate_uuid()
extra = {'foo1': 'test', 'foo2': 'other extra'} extra = {'foo1': 'test', 'foo2': 'other extra'}
self.dbapi.create_chassis({'uuid': ch2_id, 'extra': extra}) self.dbapi.create_chassis({'uuid': ch2_id, 'extra': extra})
# Get chassis manually to test SA types in isolation from UOM. # Get chassis manually to test SA types in isolation from UOM.

View File

@ -15,10 +15,10 @@
"""Tests for manipulating Chassis via the DB API""" """Tests for manipulating Chassis via the DB API"""
from oslo_utils import uuidutils
import six import six
from ironic.common import exception from ironic.common import exception
from ironic.common import utils as ironic_utils
from ironic.tests.db import base from ironic.tests.db import base
from ironic.tests.db import utils from ironic.tests.db import utils
@ -33,7 +33,7 @@ class DbChassisTestCase(base.DbTestCase):
def test_get_chassis_list(self): def test_get_chassis_list(self):
uuids = [] uuids = []
for i in range(1, 6): for i in range(1, 6):
n = utils.get_test_chassis(id=i, uuid=ironic_utils.generate_uuid()) n = utils.get_test_chassis(id=i, uuid=uuidutils.generate_uuid())
self.dbapi.create_chassis(n) self.dbapi.create_chassis(n)
uuids.append(six.text_type(n['uuid'])) uuids.append(six.text_type(n['uuid']))
res = self.dbapi.get_chassis_list() res = self.dbapi.get_chassis_list()
@ -91,7 +91,7 @@ class DbChassisTestCase(base.DbTestCase):
self.dbapi.destroy_chassis, ch['id']) self.dbapi.destroy_chassis, ch['id'])
def test_create_chassis_already_exists(self): def test_create_chassis_already_exists(self):
uuid = ironic_utils.generate_uuid() uuid = uuidutils.generate_uuid()
self._create_test_chassis(id=1, uuid=uuid) self._create_test_chassis(id=1, uuid=uuid)
self.assertRaises(exception.ChassisAlreadyExists, self.assertRaises(exception.ChassisAlreadyExists,
self._create_test_chassis, self._create_test_chassis,

View File

@ -19,11 +19,11 @@ import datetime
import mock import mock
from oslo_utils import timeutils from oslo_utils import timeutils
from oslo_utils import uuidutils
import six import six
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
from ironic.common import utils as ironic_utils
from ironic.tests.db import base from ironic.tests.db import base
from ironic.tests.db import utils from ironic.tests.db import utils
@ -42,12 +42,12 @@ class DbNodeTestCase(base.DbTestCase):
utils.create_test_node) utils.create_test_node)
def test_create_node_instance_already_associated(self): def test_create_node_instance_already_associated(self):
instance = ironic_utils.generate_uuid() instance = uuidutils.generate_uuid()
utils.create_test_node(uuid=ironic_utils.generate_uuid(), utils.create_test_node(uuid=uuidutils.generate_uuid(),
instance_uuid=instance) instance_uuid=instance)
self.assertRaises(exception.InstanceAssociated, self.assertRaises(exception.InstanceAssociated,
utils.create_test_node, utils.create_test_node,
uuid=ironic_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
instance_uuid=instance) instance_uuid=instance)
def test_create_node_name_duplicate(self): def test_create_node_name_duplicate(self):
@ -88,7 +88,7 @@ class DbNodeTestCase(base.DbTestCase):
def test_get_nodeinfo_list_defaults(self): def test_get_nodeinfo_list_defaults(self):
node_id_list = [] node_id_list = []
for i in range(1, 6): for i in range(1, 6):
node = utils.create_test_node(uuid=ironic_utils.generate_uuid()) node = utils.create_test_node(uuid=uuidutils.generate_uuid())
node_id_list.append(node.id) node_id_list.append(node.id)
res = [i[0] for i in self.dbapi.get_nodeinfo_list()] res = [i[0] for i in self.dbapi.get_nodeinfo_list()]
self.assertEqual(sorted(res), sorted(node_id_list)) self.assertEqual(sorted(res), sorted(node_id_list))
@ -97,7 +97,7 @@ class DbNodeTestCase(base.DbTestCase):
uuids = {} uuids = {}
extras = {} extras = {}
for i in range(1, 6): for i in range(1, 6):
uuid = ironic_utils.generate_uuid() uuid = uuidutils.generate_uuid()
extra = {'foo': i} extra = {'foo': i}
node = utils.create_test_node(extra=extra, uuid=uuid) node = utils.create_test_node(extra=extra, uuid=uuid)
uuids[node.id] = uuid uuids[node.id] = uuid
@ -108,11 +108,11 @@ class DbNodeTestCase(base.DbTestCase):
def test_get_nodeinfo_list_with_filters(self): def test_get_nodeinfo_list_with_filters(self):
node1 = utils.create_test_node(driver='driver-one', node1 = utils.create_test_node(driver='driver-one',
instance_uuid=ironic_utils.generate_uuid(), instance_uuid=uuidutils.generate_uuid(),
reservation='fake-host', reservation='fake-host',
uuid=ironic_utils.generate_uuid()) uuid=uuidutils.generate_uuid())
node2 = utils.create_test_node(driver='driver-two', node2 = utils.create_test_node(driver='driver-two',
uuid=ironic_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
maintenance=True) maintenance=True)
res = self.dbapi.get_nodeinfo_list(filters={'driver': 'driver-one'}) res = self.dbapi.get_nodeinfo_list(filters={'driver': 'driver-one'})
@ -147,13 +147,13 @@ class DbNodeTestCase(base.DbTestCase):
mock_utcnow.return_value = past mock_utcnow.return_value = past
# node with provision_updated timeout # node with provision_updated timeout
node1 = utils.create_test_node(uuid=ironic_utils.generate_uuid(), node1 = utils.create_test_node(uuid=uuidutils.generate_uuid(),
provision_updated_at=past) provision_updated_at=past)
# node with None in provision_updated_at # node with None in provision_updated_at
node2 = utils.create_test_node(uuid=ironic_utils.generate_uuid(), node2 = utils.create_test_node(uuid=uuidutils.generate_uuid(),
provision_state=states.DEPLOYWAIT) provision_state=states.DEPLOYWAIT)
# node without timeout # node without timeout
utils.create_test_node(uuid=ironic_utils.generate_uuid(), utils.create_test_node(uuid=uuidutils.generate_uuid(),
provision_updated_at=next) provision_updated_at=next)
mock_utcnow.return_value = present mock_utcnow.return_value = present
@ -167,25 +167,25 @@ class DbNodeTestCase(base.DbTestCase):
def test_get_node_list(self): def test_get_node_list(self):
uuids = [] uuids = []
for i in range(1, 6): for i in range(1, 6):
node = utils.create_test_node(uuid=ironic_utils.generate_uuid()) node = utils.create_test_node(uuid=uuidutils.generate_uuid())
uuids.append(six.text_type(node['uuid'])) uuids.append(six.text_type(node['uuid']))
res = self.dbapi.get_node_list() res = self.dbapi.get_node_list()
res_uuids = [r.uuid for r in res] res_uuids = [r.uuid for r in res]
self.assertEqual(uuids.sort(), res_uuids.sort()) self.assertEqual(uuids.sort(), res_uuids.sort())
def test_get_node_list_with_filters(self): def test_get_node_list_with_filters(self):
ch1 = utils.get_test_chassis(id=1, uuid=ironic_utils.generate_uuid()) ch1 = utils.get_test_chassis(id=1, uuid=uuidutils.generate_uuid())
ch2 = utils.get_test_chassis(id=2, uuid=ironic_utils.generate_uuid()) ch2 = utils.get_test_chassis(id=2, uuid=uuidutils.generate_uuid())
self.dbapi.create_chassis(ch1) self.dbapi.create_chassis(ch1)
self.dbapi.create_chassis(ch2) self.dbapi.create_chassis(ch2)
node1 = utils.create_test_node(driver='driver-one', node1 = utils.create_test_node(driver='driver-one',
instance_uuid=ironic_utils.generate_uuid(), instance_uuid=uuidutils.generate_uuid(),
reservation='fake-host', reservation='fake-host',
uuid=ironic_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
chassis_id=ch1['id']) chassis_id=ch1['id'])
node2 = utils.create_test_node(driver='driver-two', node2 = utils.create_test_node(driver='driver-two',
uuid=ironic_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
chassis_id=ch2['id'], chassis_id=ch2['id'],
maintenance=True) maintenance=True)
@ -222,7 +222,7 @@ class DbNodeTestCase(base.DbTestCase):
def test_get_node_list_chassis_not_found(self): def test_get_node_list_chassis_not_found(self):
self.assertRaises(exception.ChassisNotFound, self.assertRaises(exception.ChassisNotFound,
self.dbapi.get_node_list, self.dbapi.get_node_list,
{'chassis_uuid': ironic_utils.generate_uuid()}) {'chassis_uuid': uuidutils.generate_uuid()})
def test_get_node_by_instance(self): def test_get_node_by_instance(self):
node = utils.create_test_node( node = utils.create_test_node(
@ -294,7 +294,7 @@ class DbNodeTestCase(base.DbTestCase):
self.assertEqual(new_extra, res.extra) self.assertEqual(new_extra, res.extra)
def test_update_node_not_found(self): def test_update_node_not_found(self):
node_uuid = ironic_utils.generate_uuid() node_uuid = uuidutils.generate_uuid()
new_extra = {'foo': 'bar'} new_extra = {'foo': 'bar'}
self.assertRaises(exception.NodeNotFound, self.dbapi.update_node, self.assertRaises(exception.NodeNotFound, self.dbapi.update_node,
node_uuid, {'extra': new_extra}) node_uuid, {'extra': new_extra})
@ -307,7 +307,7 @@ class DbNodeTestCase(base.DbTestCase):
def test_update_node_associate_and_disassociate(self): def test_update_node_associate_and_disassociate(self):
node = utils.create_test_node() node = utils.create_test_node()
new_i_uuid = ironic_utils.generate_uuid() new_i_uuid = uuidutils.generate_uuid()
res = self.dbapi.update_node(node.id, {'instance_uuid': new_i_uuid}) res = self.dbapi.update_node(node.id, {'instance_uuid': new_i_uuid})
self.assertEqual(new_i_uuid, res.instance_uuid) self.assertEqual(new_i_uuid, res.instance_uuid)
res = self.dbapi.update_node(node.id, {'instance_uuid': None}) res = self.dbapi.update_node(node.id, {'instance_uuid': None})
@ -315,19 +315,19 @@ class DbNodeTestCase(base.DbTestCase):
def test_update_node_already_associated(self): def test_update_node_already_associated(self):
node = utils.create_test_node() node = utils.create_test_node()
new_i_uuid_one = ironic_utils.generate_uuid() new_i_uuid_one = uuidutils.generate_uuid()
self.dbapi.update_node(node.id, {'instance_uuid': new_i_uuid_one}) self.dbapi.update_node(node.id, {'instance_uuid': new_i_uuid_one})
new_i_uuid_two = ironic_utils.generate_uuid() new_i_uuid_two = uuidutils.generate_uuid()
self.assertRaises(exception.NodeAssociated, self.assertRaises(exception.NodeAssociated,
self.dbapi.update_node, self.dbapi.update_node,
node.id, node.id,
{'instance_uuid': new_i_uuid_two}) {'instance_uuid': new_i_uuid_two})
def test_update_node_instance_already_associated(self): def test_update_node_instance_already_associated(self):
node1 = utils.create_test_node(uuid=ironic_utils.generate_uuid()) node1 = utils.create_test_node(uuid=uuidutils.generate_uuid())
new_i_uuid = ironic_utils.generate_uuid() new_i_uuid = uuidutils.generate_uuid()
self.dbapi.update_node(node1.id, {'instance_uuid': new_i_uuid}) self.dbapi.update_node(node1.id, {'instance_uuid': new_i_uuid})
node2 = utils.create_test_node(uuid=ironic_utils.generate_uuid()) node2 = utils.create_test_node(uuid=uuidutils.generate_uuid())
self.assertRaises(exception.InstanceAssociated, self.assertRaises(exception.InstanceAssociated,
self.dbapi.update_node, self.dbapi.update_node,
node2.id, node2.id,
@ -343,9 +343,9 @@ class DbNodeTestCase(base.DbTestCase):
timeutils.normalize_time(res['provision_updated_at'])) timeutils.normalize_time(res['provision_updated_at']))
def test_update_node_name_duplicate(self): def test_update_node_name_duplicate(self):
node1 = utils.create_test_node(uuid=ironic_utils.generate_uuid(), node1 = utils.create_test_node(uuid=uuidutils.generate_uuid(),
name='spam') name='spam')
node2 = utils.create_test_node(uuid=ironic_utils.generate_uuid()) node2 = utils.create_test_node(uuid=uuidutils.generate_uuid())
self.assertRaises(exception.DuplicateName, self.assertRaises(exception.DuplicateName,
self.dbapi.update_node, self.dbapi.update_node,
node2.id, node2.id,

View File

@ -15,10 +15,10 @@
"""Tests for manipulating Ports via the DB API""" """Tests for manipulating Ports via the DB API"""
from oslo_utils import uuidutils
import six import six
from ironic.common import exception from ironic.common import exception
from ironic.common import utils as ironic_utils
from ironic.tests.db import base from ironic.tests.db import base
from ironic.tests.db import utils as db_utils from ironic.tests.db import utils as db_utils
@ -47,7 +47,7 @@ class DbPortTestCase(base.DbTestCase):
def test_get_port_list(self): def test_get_port_list(self):
uuids = [] uuids = []
for i in range(1, 6): for i in range(1, 6):
port = db_utils.create_test_port(uuid=ironic_utils.generate_uuid(), port = db_utils.create_test_port(uuid=uuidutils.generate_uuid(),
address='52:54:00:cf:2d:4%s' % i) address='52:54:00:cf:2d:4%s' % i)
uuids.append(six.text_type(port.uuid)) uuids.append(six.text_type(port.uuid))
res = self.dbapi.get_port_list() res = self.dbapi.get_port_list()
@ -88,7 +88,7 @@ class DbPortTestCase(base.DbTestCase):
def test_update_port_duplicated_address(self): def test_update_port_duplicated_address(self):
address1 = self.port.address address1 = self.port.address
address2 = 'aa-bb-cc-11-22-33' address2 = 'aa-bb-cc-11-22-33'
port2 = db_utils.create_test_port(uuid=ironic_utils.generate_uuid(), port2 = db_utils.create_test_port(uuid=uuidutils.generate_uuid(),
node_id=self.node.id, node_id=self.node.id,
address=address2) address=address2)
self.assertRaises(exception.MACAlreadyExists, self.assertRaises(exception.MACAlreadyExists,
@ -98,7 +98,7 @@ class DbPortTestCase(base.DbTestCase):
def test_create_port_duplicated_address(self): def test_create_port_duplicated_address(self):
self.assertRaises(exception.MACAlreadyExists, self.assertRaises(exception.MACAlreadyExists,
db_utils.create_test_port, db_utils.create_test_port,
uuid=ironic_utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
node_id=self.node.id, node_id=self.node.id,
address=self.port.address) address=self.port.address)

View File

@ -17,11 +17,11 @@
import mock import mock
from neutronclient.common import exceptions as neutron_client_exc from neutronclient.common import exceptions as neutron_client_exc
from neutronclient.v2_0 import client from neutronclient.v2_0 import client
from oslo_utils import uuidutils
from ironic.common import dhcp_factory from ironic.common import dhcp_factory
from ironic.common import exception from ironic.common import exception
from ironic.common import pxe_utils from ironic.common import pxe_utils
from ironic.common import utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.dhcp import neutron from ironic.dhcp import neutron
from ironic.tests.conductor import utils as mgr_utils from ironic.tests.conductor import utils as mgr_utils
@ -301,7 +301,7 @@ class TestNeutron(db_base.DbTestCase):
port = object_utils.create_test_port(self.context, port = object_utils.create_test_port(self.context,
node_id=self.node.id, node_id=self.node.id,
address='aa:bb:cc', address='aa:bb:cc',
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
extra={'vif_port_id': extra={'vif_port_id':
'test-vif-A'}, 'test-vif-A'},
driver='fake') driver='fake')
@ -323,7 +323,7 @@ class TestNeutron(db_base.DbTestCase):
port = object_utils.create_test_port(self.context, port = object_utils.create_test_port(self.context,
node_id=self.node.id, node_id=self.node.id,
address='aa:bb:cc', address='aa:bb:cc',
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
extra={'vif_port_id': extra={'vif_port_id':
'test-vif-A'}, 'test-vif-A'},
driver='fake') driver='fake')

View File

@ -25,6 +25,7 @@ import fixtures
import mock import mock
from oslo_concurrency import processutils from oslo_concurrency import processutils
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
import requests import requests
from ironic.common import disk_partitioner from ironic.common import disk_partitioner
@ -1094,7 +1095,7 @@ class VirtualMediaDeployUtilsTestCase(db_base.DbTestCase):
def test_get_single_nic_with_vif_port_id(self): def test_get_single_nic_with_vif_port_id(self):
obj_utils.create_test_port(self.context, node_id=self.node.id, obj_utils.create_test_port(self.context, node_id=self.node.id,
address='aa:bb:cc', uuid=common_utils.generate_uuid(), address='aa:bb:cc', uuid=uuidutils.generate_uuid(),
extra={'vif_port_id': 'test-vif-A'}, driver='iscsi_ilo') extra={'vif_port_id': 'test-vif-A'}, driver='iscsi_ilo')
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
shared=False) as task: shared=False) as task:

View File

@ -21,13 +21,13 @@ Test class for Native IPMI power driver module.
import mock import mock
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
from pyghmi import exceptions as pyghmi_exception from pyghmi import exceptions as pyghmi_exception
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import driver_factory from ironic.common import driver_factory
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.drivers.modules import console_utils from ironic.drivers.modules import console_utils
from ironic.drivers.modules import ipminative from ironic.drivers.modules import ipminative
@ -388,7 +388,7 @@ class IPMINativeDriverTestCase(db_base.DbTestCase):
def test_management_interface_validate_fail(self): def test_management_interface_validate_fail(self):
# Missing IPMI driver_info information # Missing IPMI driver_info information
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake_ipminative') driver='fake_ipminative')
with task_manager.acquire(self.context, node.uuid) as task: with task_manager.acquire(self.context, node.uuid) as task:
self.assertRaises(exception.MissingParameterValue, self.assertRaises(exception.MissingParameterValue,

View File

@ -28,6 +28,7 @@ import time
import mock import mock
from oslo_concurrency import processutils from oslo_concurrency import processutils
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
from ironic.common import boot_devices from ironic.common import boot_devices
from ironic.common import driver_factory from ironic.common import driver_factory
@ -1317,7 +1318,7 @@ class IPMIToolDriverTestCase(db_base.DbTestCase):
def test_management_interface_validate_fail(self): def test_management_interface_validate_fail(self):
# Missing IPMI driver_info information # Missing IPMI driver_info information
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake_ipmitool') driver='fake_ipmitool')
with task_manager.acquire(self.context, node.uuid) as task: with task_manager.acquire(self.context, node.uuid) as task:
self.assertRaises(exception.MissingParameterValue, self.assertRaises(exception.MissingParameterValue,

View File

@ -20,6 +20,7 @@ import tempfile
import mock import mock
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
from ironic.common import exception from ironic.common import exception
from ironic.common import keystone from ironic.common import keystone
@ -114,7 +115,7 @@ class IscsiDeployValidateParametersTestCase(db_base.DbTestCase):
'on', 'yes', 'y', '1']: 'on', 'yes', 'y', '1']:
info['preserve_ephemeral'] = opt info['preserve_ephemeral'] = opt
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
instance_info=info) instance_info=info)
data = iscsi_deploy.parse_instance_info(node) data = iscsi_deploy.parse_instance_info(node)
self.assertTrue(data.get('preserve_ephemeral')) self.assertTrue(data.get('preserve_ephemeral'))
@ -125,7 +126,7 @@ class IscsiDeployValidateParametersTestCase(db_base.DbTestCase):
'off', 'no', 'n', '0']: 'off', 'no', 'n', '0']:
info['preserve_ephemeral'] = opt info['preserve_ephemeral'] = opt
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
instance_info=info) instance_info=info)
data = iscsi_deploy.parse_instance_info(node) data = iscsi_deploy.parse_instance_info(node)
self.assertFalse(data.get('preserve_ephemeral')) self.assertFalse(data.get('preserve_ephemeral'))

View File

@ -15,6 +15,7 @@
import uuid import uuid
import mock import mock
from oslo_utils import uuidutils
from seamicroclient import client as seamicro_client from seamicroclient import client as seamicro_client
from seamicroclient import exceptions as seamicro_client_exception from seamicroclient import exceptions as seamicro_client_exception
@ -22,7 +23,6 @@ from ironic.common import boot_devices
from ironic.common import driver_factory from ironic.common import driver_factory
from ironic.common import exception from ironic.common import exception
from ironic.common import states from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.drivers.modules import console_utils from ironic.drivers.modules import console_utils
from ironic.drivers.modules import seamicro from ironic.drivers.modules import seamicro
@ -578,7 +578,7 @@ class SeaMicroPowerDriverTestCase(db_base.DbTestCase):
def test_management_interface_validate_fail(self): def test_management_interface_validate_fail(self):
# Missing SEAMICRO driver_info information # Missing SEAMICRO driver_info information
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake_seamicro') driver='fake_seamicro')
with task_manager.acquire(self.context, node.uuid) as task: with task_manager.acquire(self.context, node.uuid) as task:
self.assertRaises(exception.MissingParameterValue, self.assertRaises(exception.MissingParameterValue,

View File

@ -19,6 +19,7 @@ import fixtures
import mock import mock
from oslo_concurrency import processutils from oslo_concurrency import processutils
from oslo_config import cfg from oslo_config import cfg
from oslo_utils import uuidutils
import paramiko import paramiko
from ironic.common import boot_devices from ironic.common import boot_devices
@ -947,7 +948,7 @@ class SSHDriverTestCase(db_base.DbTestCase):
def test_management_interface_validate_fail(self): def test_management_interface_validate_fail(self):
# Missing SSH driver_info information # Missing SSH driver_info information
node = obj_utils.create_test_node(self.context, node = obj_utils.create_test_node(self.context,
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
driver='fake_ssh') driver='fake_ssh')
with task_manager.acquire(self.context, node.uuid) as task: with task_manager.acquire(self.context, node.uuid) as task:
self.assertRaises(exception.MissingParameterValue, self.assertRaises(exception.MissingParameterValue,

View File

@ -14,10 +14,10 @@
# under the License. # under the License.
import mock import mock
from oslo_utils import uuidutils
from testtools.matchers import HasLength from testtools.matchers import HasLength
from ironic.common import exception from ironic.common import exception
from ironic.common import utils as ironic_utils
from ironic import objects from ironic import objects
from ironic.tests.db import base from ironic.tests.db import base
from ironic.tests.db import utils from ironic.tests.db import utils
@ -74,7 +74,7 @@ class TestChassisObject(base.DbTestCase):
def test_refresh(self): def test_refresh(self):
uuid = self.fake_chassis['uuid'] uuid = self.fake_chassis['uuid']
new_uuid = ironic_utils.generate_uuid() new_uuid = uuidutils.generate_uuid()
returns = [dict(self.fake_chassis, uuid=uuid), returns = [dict(self.fake_chassis, uuid=uuid),
dict(self.fake_chassis, uuid=new_uuid)] dict(self.fake_chassis, uuid=new_uuid)]
expected = [mock.call(uuid), mock.call(uuid)] expected = [mock.call(uuid), mock.call(uuid)]

View File

@ -13,8 +13,9 @@
# 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 oslo_utils import uuidutils
from ironic.common import network from ironic.common import network
from ironic.common import utils
from ironic.conductor import task_manager from ironic.conductor import task_manager
from ironic.tests.conductor import utils as mgr_utils from ironic.tests.conductor import utils as mgr_utils
from ironic.tests.db import base as db_base from ironic.tests.db import base as db_base
@ -38,7 +39,7 @@ class TestNetwork(db_base.DbTestCase):
def test_get_node_vif_ids_one_port(self): def test_get_node_vif_ids_one_port(self):
port1 = db_utils.create_test_port(node_id=self.node.id, port1 = db_utils.create_test_port(node_id=self.node.id,
address='aa:bb:cc', address='aa:bb:cc',
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
extra={'vif_port_id': 'test-vif-A'}, extra={'vif_port_id': 'test-vif-A'},
driver='fake') driver='fake')
expected = {port1.uuid: 'test-vif-A'} expected = {port1.uuid: 'test-vif-A'}
@ -49,12 +50,12 @@ class TestNetwork(db_base.DbTestCase):
def test_get_node_vif_ids_two_ports(self): def test_get_node_vif_ids_two_ports(self):
port1 = db_utils.create_test_port(node_id=self.node.id, port1 = db_utils.create_test_port(node_id=self.node.id,
address='aa:bb:cc', address='aa:bb:cc',
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
extra={'vif_port_id': 'test-vif-A'}, extra={'vif_port_id': 'test-vif-A'},
driver='fake') driver='fake')
port2 = db_utils.create_test_port(node_id=self.node.id, port2 = db_utils.create_test_port(node_id=self.node.id,
address='dd:ee:ff', address='dd:ee:ff',
uuid=utils.generate_uuid(), uuid=uuidutils.generate_uuid(),
extra={'vif_port_id': 'test-vif-B'}, extra={'vif_port_id': 'test-vif-B'},
driver='fake') driver='fake')
expected = {port1.uuid: 'test-vif-A', port2.uuid: 'test-vif-B'} expected = {port1.uuid: 'test-vif-A', port2.uuid: 'test-vif-B'}

View File

@ -19,7 +19,6 @@ import os
import os.path import os.path
import shutil import shutil
import tempfile import tempfile
import uuid
import mock import mock
import netaddr import netaddr
@ -443,46 +442,6 @@ class MkfsTestCase(base.TestCase):
'ext4', '/my/block/dev', 'ext4-vol') 'ext4', '/my/block/dev', 'ext4-vol')
class IntLikeTestCase(base.TestCase):
def test_is_int_like(self):
self.assertTrue(utils.is_int_like(1))
self.assertTrue(utils.is_int_like("1"))
self.assertTrue(utils.is_int_like("514"))
self.assertTrue(utils.is_int_like("0"))
self.assertFalse(utils.is_int_like(1.1))
self.assertFalse(utils.is_int_like("1.1"))
self.assertFalse(utils.is_int_like("1.1.1"))
self.assertFalse(utils.is_int_like(None))
self.assertFalse(utils.is_int_like("0."))
self.assertFalse(utils.is_int_like("aaaaaa"))
self.assertFalse(utils.is_int_like("...."))
self.assertFalse(utils.is_int_like("1g"))
self.assertFalse(
utils.is_int_like("0cc3346e-9fef-4445-abe6-5d2b2690ec64"))
self.assertFalse(utils.is_int_like("a1"))
class UUIDTestCase(base.TestCase):
def test_generate_uuid(self):
uuid_string = utils.generate_uuid()
self.assertIsInstance(uuid_string, str)
self.assertEqual(36, len(uuid_string))
# make sure there are 4 dashes
self.assertEqual(32, len(uuid_string.replace('-', '')))
def test_is_uuid_like(self):
self.assertTrue(utils.is_uuid_like(str(uuid.uuid4())))
def test_id_is_uuid_like(self):
self.assertFalse(utils.is_uuid_like(1234567))
def test_name_is_uuid_like(self):
self.assertFalse(utils.is_uuid_like('zhongyueluo'))
class TempFilesTestCase(base.TestCase): class TempFilesTestCase(base.TestCase):
def test_tempdir(self): def test_tempdir(self):