Files
neutron-lib/neutron_lib/tests/tools.py
Ihar Hrachyshka 4d67703e97 Deprecate is_bsd and remove its use in test suite
We do not support running neutron on bsd (e.g. macos) systems, so the
function has no reason to exist. The only user is neutron test suite and
it's proposed to remove its usage there too:

If5e06dcf3a323692137d2c7cbb8ca725d9d7d821

Note: This patch reintroduces debtcollector dependency to handle the
deprecation process.

Change-Id: I7db4698a247df18cf5fa1ce7f8ede5c5f27ecfa0
2025-01-09 20:44:24 -05:00

79 lines
2.3 KiB
Python

# Copyright (c) 2013 NEC Corporation
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import os
import platform
import random
import time
from debtcollector import removals
import netaddr
from neutron_lib.utils import helpers
from neutron_lib.utils import net
class UnorderedList(list):
"""A list that is equals to any permutation of itself."""
def __eq__(self, other):
if not isinstance(other, list):
return False
return (sorted(self, key=helpers.safe_sort_key) ==
sorted(other, key=helpers.safe_sort_key))
def __neq__(self, other):
return not self == other
@removals.remove
def is_bsd():
"""Return True on BSD-based systems."""
system = platform.system()
if system == 'Darwin':
return True
if 'bsd' in system.lower():
return True
return False
def get_random_cidr(version=4):
if version == 4:
return '10.%d.%d.0/%d' % (random.randint(3, 254),
random.randint(3, 254),
24)
return '2001:db8:%x::/%d' % (random.getrandbits(16), 64)
def reset_random_seed():
# reset random seed to make sure other processes extracting values from RNG
# don't get the same results (useful especially when you then use the
# random values to allocate system resources from global pool, like ports
# to listen). Use both current time and pid to make sure no tests started
# at the same time get the same values from RNG
seed = time.time() + os.getpid()
random.seed(seed)
def get_random_EUI():
return netaddr.EUI(
net.get_random_mac(['fe', '16', '3e', '00', '00', '00'])
)
def get_random_ip_network(version=4):
return netaddr.IPNetwork(get_random_cidr(version=version))