Use function is_valid_mac from oslo.utils
Oslo.utils 3.17 provides same function, just use it. Change-Id: I036cf1113c4e77100e0fa259b74af7e84b07a23c
This commit is contained in:
parent
6ef7e23aa3
commit
d7137982dd
|
@ -29,6 +29,7 @@ import tempfile
|
||||||
|
|
||||||
from oslo_concurrency import processutils
|
from oslo_concurrency import processutils
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
from oslo_utils import netutils
|
||||||
from oslo_utils import timeutils
|
from oslo_utils import timeutils
|
||||||
import paramiko
|
import paramiko
|
||||||
import pytz
|
import pytz
|
||||||
|
@ -115,21 +116,6 @@ def ssh_connect(connection):
|
||||||
return ssh
|
return ssh
|
||||||
|
|
||||||
|
|
||||||
def is_valid_mac(address):
|
|
||||||
"""Verify the format of a MAC address.
|
|
||||||
|
|
||||||
Check if a MAC address is valid and contains six octets. Accepts
|
|
||||||
colon-separated format only.
|
|
||||||
|
|
||||||
:param address: MAC address to be validated.
|
|
||||||
:returns: True if valid. False if not.
|
|
||||||
|
|
||||||
"""
|
|
||||||
m = "[0-9a-f]{2}(:[0-9a-f]{2}){5}$"
|
|
||||||
return (isinstance(address, six.string_types) and
|
|
||||||
re.match(m, address.lower()))
|
|
||||||
|
|
||||||
|
|
||||||
def is_valid_datapath_id(datapath_id):
|
def is_valid_datapath_id(datapath_id):
|
||||||
"""Verify the format of an OpenFlow datapath_id.
|
"""Verify the format of an OpenFlow datapath_id.
|
||||||
|
|
||||||
|
@ -240,7 +226,7 @@ def validate_and_normalize_mac(address):
|
||||||
:raises: InvalidMAC If the MAC address is not valid.
|
:raises: InvalidMAC If the MAC address is not valid.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if not is_valid_mac(address):
|
if not netutils.is_valid_mac(address):
|
||||||
raise exception.InvalidMAC(mac=address)
|
raise exception.InvalidMAC(mac=address)
|
||||||
return address.lower()
|
return address.lower()
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ from oslo_db import exception as db_exc
|
||||||
from oslo_db.sqlalchemy import enginefacade
|
from oslo_db.sqlalchemy import enginefacade
|
||||||
from oslo_db.sqlalchemy import utils as db_utils
|
from oslo_db.sqlalchemy import utils as db_utils
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
|
from oslo_utils import netutils
|
||||||
from oslo_utils import strutils
|
from oslo_utils import strutils
|
||||||
from oslo_utils import timeutils
|
from oslo_utils import timeutils
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
|
@ -34,7 +35,6 @@ from sqlalchemy import sql
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
from ironic.common.i18n import _, _LW
|
from ironic.common.i18n import _, _LW
|
||||||
from ironic.common import states
|
from ironic.common import states
|
||||||
from ironic.common import utils
|
|
||||||
from ironic.conf import CONF
|
from ironic.conf import CONF
|
||||||
from ironic.db import api
|
from ironic.db import api
|
||||||
from ironic.db.sqlalchemy import models
|
from ironic.db.sqlalchemy import models
|
||||||
|
@ -102,7 +102,7 @@ def add_port_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_valid_mac(value):
|
if netutils.is_valid_mac(value):
|
||||||
return query.filter_by(address=value)
|
return query.filter_by(address=value)
|
||||||
else:
|
else:
|
||||||
return add_identity_filter(query, value)
|
return add_identity_filter(query, value)
|
||||||
|
@ -127,7 +127,7 @@ def add_portgroup_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_valid_mac(value):
|
if netutils.is_valid_mac(value):
|
||||||
return query.filter_by(address=value)
|
return query.filter_by(address=value)
|
||||||
else:
|
else:
|
||||||
return add_identity_filter(query, value)
|
return add_identity_filter(query, value)
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
# 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 netutils
|
||||||
from oslo_utils import strutils
|
from oslo_utils import strutils
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
from oslo_versionedobjects import base as object_base
|
from oslo_versionedobjects import base as object_base
|
||||||
|
|
||||||
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 fields as object_fields
|
from ironic.objects import fields as object_fields
|
||||||
|
@ -77,7 +77,7 @@ class Port(base.IronicObject, object_base.VersionedObjectDictCompat):
|
||||||
return cls.get_by_id(context, port_id)
|
return cls.get_by_id(context, port_id)
|
||||||
elif uuidutils.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 netutils.is_valid_mac(port_id):
|
||||||
return cls.get_by_address(context, port_id)
|
return cls.get_by_address(context, port_id)
|
||||||
else:
|
else:
|
||||||
raise exception.InvalidIdentity(identity=port_id)
|
raise exception.InvalidIdentity(identity=port_id)
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
# 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 netutils
|
||||||
from oslo_utils import strutils
|
from oslo_utils import strutils
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
from oslo_versionedobjects import base as object_base
|
from oslo_versionedobjects import base as object_base
|
||||||
|
@ -68,7 +69,7 @@ class Portgroup(base.IronicObject, object_base.VersionedObjectDictCompat):
|
||||||
return cls.get_by_id(context, portgroup_ident)
|
return cls.get_by_id(context, portgroup_ident)
|
||||||
elif uuidutils.is_uuid_like(portgroup_ident):
|
elif uuidutils.is_uuid_like(portgroup_ident):
|
||||||
return cls.get_by_uuid(context, portgroup_ident)
|
return cls.get_by_uuid(context, portgroup_ident)
|
||||||
elif utils.is_valid_mac(portgroup_ident):
|
elif netutils.is_valid_mac(portgroup_ident):
|
||||||
return cls.get_by_address(context, portgroup_ident)
|
return cls.get_by_address(context, portgroup_ident)
|
||||||
elif utils.is_valid_logical_name(portgroup_ident):
|
elif utils.is_valid_logical_name(portgroup_ident):
|
||||||
return cls.get_by_name(context, portgroup_ident)
|
return cls.get_by_name(context, portgroup_ident)
|
||||||
|
|
|
@ -24,6 +24,7 @@ import tempfile
|
||||||
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 netutils
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
|
@ -247,17 +248,6 @@ class GenericUtilsTestCase(base.TestCase):
|
||||||
self.assertRaises(exception.InvalidParameterValue, utils.hash_file,
|
self.assertRaises(exception.InvalidParameterValue, utils.hash_file,
|
||||||
file_like_object, 'hickory-dickory-dock')
|
file_like_object, 'hickory-dickory-dock')
|
||||||
|
|
||||||
def test_is_valid_mac(self):
|
|
||||||
self.assertTrue(utils.is_valid_mac("52:54:00:cf:2d:31"))
|
|
||||||
self.assertTrue(utils.is_valid_mac(u"52:54:00:cf:2d:31"))
|
|
||||||
self.assertFalse(utils.is_valid_mac("127.0.0.1"))
|
|
||||||
self.assertFalse(utils.is_valid_mac("not:a:mac:address"))
|
|
||||||
self.assertFalse(utils.is_valid_mac("52-54-00-cf-2d-31"))
|
|
||||||
self.assertFalse(utils.is_valid_mac("aa bb cc dd ee ff"))
|
|
||||||
self.assertTrue(utils.is_valid_mac("AA:BB:CC:DD:EE:FF"))
|
|
||||||
self.assertFalse(utils.is_valid_mac("AA BB CC DD EE FF"))
|
|
||||||
self.assertFalse(utils.is_valid_mac("AA-BB-CC-DD-EE-FF"))
|
|
||||||
|
|
||||||
def test_is_valid_datapath_id(self):
|
def test_is_valid_datapath_id(self):
|
||||||
self.assertTrue(utils.is_valid_datapath_id("525400cf2d319fdf"))
|
self.assertTrue(utils.is_valid_datapath_id("525400cf2d319fdf"))
|
||||||
self.assertTrue(utils.is_valid_datapath_id("525400CF2D319FDF"))
|
self.assertTrue(utils.is_valid_datapath_id("525400CF2D319FDF"))
|
||||||
|
@ -332,7 +322,8 @@ class GenericUtilsTestCase(base.TestCase):
|
||||||
|
|
||||||
def test_validate_and_normalize_mac(self):
|
def test_validate_and_normalize_mac(self):
|
||||||
mac = 'AA:BB:CC:DD:EE:FF'
|
mac = 'AA:BB:CC:DD:EE:FF'
|
||||||
with mock.patch.object(utils, 'is_valid_mac', autospec=True) as m_mock:
|
with mock.patch.object(netutils, 'is_valid_mac',
|
||||||
|
autospec=True) as m_mock:
|
||||||
m_mock.return_value = True
|
m_mock.return_value = True
|
||||||
self.assertEqual(mac.lower(),
|
self.assertEqual(mac.lower(),
|
||||||
utils.validate_and_normalize_mac(mac))
|
utils.validate_and_normalize_mac(mac))
|
||||||
|
@ -347,7 +338,8 @@ class GenericUtilsTestCase(base.TestCase):
|
||||||
datapath_id))
|
datapath_id))
|
||||||
|
|
||||||
def test_validate_and_normalize_mac_invalid_format(self):
|
def test_validate_and_normalize_mac_invalid_format(self):
|
||||||
with mock.patch.object(utils, 'is_valid_mac', autospec=True) as m_mock:
|
with mock.patch.object(netutils, 'is_valid_mac',
|
||||||
|
autospec=True) as m_mock:
|
||||||
m_mock.return_value = False
|
m_mock.return_value = False
|
||||||
self.assertRaises(exception.InvalidMAC,
|
self.assertRaises(exception.InvalidMAC,
|
||||||
utils.validate_and_normalize_mac, 'invalid-mac')
|
utils.validate_and_normalize_mac, 'invalid-mac')
|
||||||
|
|
Loading…
Reference in New Issue