Remove six

Python 2 reached its EOL long time ago so we no longer need to use six
to guarantee compatibility with Python 2. Also set the minimum python
version to avoid installation in old Python 3 versions which already
reached EOL.

Change-Id: I8f3fb493fd09943660fdae24bf592fbc3ff7ea2b
This commit is contained in:
Takashi Kajinami
2024-09-27 16:06:08 +09:00
parent 3ee69d2d37
commit c3ca521025
9 changed files with 20 additions and 46 deletions

View File

@@ -1,6 +1,3 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
pbr!=2.1.0,>=2.0.0 # Apache-2.0 pbr!=2.1.0,>=2.0.0 # Apache-2.0
Babel!=2.4.0,>=2.3.4 # BSD Babel!=2.4.0,>=2.3.4 # BSD
pyghmi>=1.0.24 # Apache-2.0 pyghmi>=1.0.24 # Apache-2.0
@@ -9,6 +6,5 @@ pyasn1>=0.5.1 # BSD
pyasn1-modules>=0.3.0 # BSD pyasn1-modules>=0.3.0 # BSD
requests>=2.14.2 # Apache-2.0 requests>=2.14.2 # Apache-2.0
defusedxml>=0.7.0 # PSF defusedxml>=0.7.0 # PSF
six>=1.10.0 # MIT
oslo.utils>=3.33.0 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0
oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0

View File

@@ -21,7 +21,6 @@ import time
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
import requests import requests
import six
from scciclient.irmc import scci from scciclient.irmc import scci
@@ -1118,7 +1117,7 @@ def set_bios_configuration(irmc_info, settings):
setting_value = setting_param.get("value") setting_value = setting_param.get("value")
# Revert-conversion from a string of True/False to boolean. # Revert-conversion from a string of True/False to boolean.
# It will be raise failed if put "True" or "False" string value. # It will be raise failed if put "True" or "False" string value.
if isinstance(setting_value, six.string_types): if isinstance(setting_value, str):
if setting_value.lower() == "true": if setting_value.lower() == "true":
setting_value = True setting_value = True
elif setting_value.lower() == "false": elif setting_value.lower() == "false":
@@ -1153,6 +1152,6 @@ def get_bios_settings(irmc_info):
type_config, config = BIOS_CONFIGURATION_DICTIONARY[ type_config, config = BIOS_CONFIGURATION_DICTIONARY[
setting_param].split("_") setting_param].split("_")
if config in bios_config_data.get(type_config, {}): if config in bios_config_data.get(type_config, {}):
value = six.text_type(bios_config_data[type_config][config]) value = str(bios_config_data[type_config][config])
settings.append({'name': setting_param, 'value': value}) settings.append({'name': setting_param, 'value': value})
return settings return settings

View File

@@ -22,7 +22,6 @@ import time
import defusedxml.ElementTree as ET import defusedxml.ElementTree as ET
import requests import requests
import six
from scciclient.irmc import ipmi from scciclient.irmc import ipmi
from scciclient.irmc import snmp from scciclient.irmc import snmp
@@ -250,8 +249,7 @@ class MetaShareType(type):
return cls.CIFS return cls.CIFS
@six.add_metaclass(MetaShareType) class ShareType(object, metaclass=MetaShareType):
class ShareType(object):
""""Virtual Media Share Type.""" """"Virtual Media Share Type."""
NFS = 0 NFS = 0
CIFS = 1 CIFS = 1

View File

@@ -14,7 +14,6 @@
from pysnmp import error as snmp_error from pysnmp import error as snmp_error
from pysnmp import hlapi as snmp from pysnmp import hlapi as snmp
import six
BMC_NAME_OID = '1.3.6.1.4.1.231.2.10.2.2.10.3.4.1.3.1.1' BMC_NAME_OID = '1.3.6.1.4.1.231.2.10.2.2.10.3.4.1.3.1.1'
@@ -96,7 +95,7 @@ def get_bios_firmware_version(snmp_client):
try: try:
bios_firmware_version = snmp_client.get(BIOS_FW_VERSION_OID) bios_firmware_version = snmp_client.get(BIOS_FW_VERSION_OID)
return six.text_type(bios_firmware_version) return str(bios_firmware_version)
except SNMPFailure as e: except SNMPFailure as e:
raise SNMPBIOSFirmwareFailure( raise SNMPBIOSFirmwareFailure(
SNMP_FAILURE_MSG % ("GET BIOS FIRMWARE VERSION", e)) SNMP_FAILURE_MSG % ("GET BIOS FIRMWARE VERSION", e))
@@ -112,7 +111,7 @@ def get_server_model(snmp_client):
try: try:
server_model = snmp_client.get(SERVER_MODEL_OID) server_model = snmp_client.get(SERVER_MODEL_OID)
return six.text_type(server_model) return str(server_model)
except SNMPFailure as e: except SNMPFailure as e:
raise SNMPServerModelFailure( raise SNMPServerModelFailure(
SNMP_FAILURE_MSG % ("GET SERVER MODEL", e)) SNMP_FAILURE_MSG % ("GET SERVER MODEL", e))

View File

@@ -17,8 +17,6 @@ import re
import socket import socket
import struct import struct
import six
from scciclient.irmc import scci from scciclient.irmc import scci
from scciclient.irmc.viom import elcm from scciclient.irmc.viom import elcm
@@ -44,8 +42,7 @@ _CNA_FCOE_FUNC_IDX = 2
_CNA_ISCSI_FUNC_IDX = 3 _CNA_ISCSI_FUNC_IDX = 3
@six.add_metaclass(abc.ABCMeta) class _PortHandler(object, metaclass=abc.ABCMeta):
class _PortHandler(object):
"""VIOM Configurator with physical port information""" """VIOM Configurator with physical port information"""
def __init__(self, slot_type, card_type, slot_idx, card_idx, port_idx): def __init__(self, slot_type, card_type, slot_idx, card_idx, port_idx):

View File

@@ -16,8 +16,6 @@ import abc
import json import json
import time import time
import six
from scciclient.irmc import elcm from scciclient.irmc import elcm
from scciclient.irmc import scci from scciclient.irmc import scci
@@ -121,8 +119,7 @@ class VIOMAttribute(object):
self.init = init self.init = init
@six.add_metaclass(abc.ABCMeta) class VIOMElement(object, metaclass=abc.ABCMeta):
class VIOMElement(object):
"""Element in VIOM table.""" """Element in VIOM table."""
def __init__(self, **kwargs): def __init__(self, **kwargs):
for attr in self.__class__._BASIC_ATTRIBUTES: for attr in self.__class__._BASIC_ATTRIBUTES:
@@ -287,8 +284,7 @@ class Slot(VIOMElement):
return json return json
@six.add_metaclass(abc.ABCMeta) class PCICard(object, metaclass=abc.ABCMeta):
class PCICard(object):
"Abstract class for PCI cards." "Abstract class for PCI cards."
def __init__(self, card_idx, adapter): def __init__(self, card_idx, adapter):
self.card_idx = card_idx self.card_idx = card_idx
@@ -341,8 +337,7 @@ class AddOnCard(PCICard):
INDEX_KEY = '@AddOnCardIdx' INDEX_KEY = '@AddOnCardIdx'
@six.add_metaclass(abc.ABCMeta) class Adapter(object, metaclass=abc.ABCMeta):
class Adapter(object):
"""Abstract class for adapters. """Abstract class for adapters.
Adapter represents type of PCI card. Adapter represents type of PCI card.
@@ -395,8 +390,7 @@ class CNAAdapter(Adapter):
ADAPTER_NAME = 'CNAAdapter' ADAPTER_NAME = 'CNAAdapter'
@six.add_metaclass(abc.ABCMeta) class AdapterPort(VIOMElement, metaclass=abc.ABCMeta):
class AdapterPort(VIOMElement):
"""Port in adapters.""" """Port in adapters."""
def __init__(self, port_idx, **kwargs): def __init__(self, port_idx, **kwargs):
@@ -555,8 +549,7 @@ class CNAPort(AdapterPort):
return port return port
@six.add_metaclass(abc.ABCMeta) class CNAFunction(VIOMElement, metaclass=abc.ABCMeta):
class CNAFunction(VIOMElement):
"""Abstract class for Functions for CNA card""" """Abstract class for Functions for CNA card"""
_BASIC_ATTRIBUTES = [ _BASIC_ATTRIBUTES = [
VIOMAttribute('function_enable', 'FunctionEnable'), VIOMAttribute('function_enable', 'FunctionEnable'),
@@ -729,8 +722,7 @@ class ISCSIFunction(CNAFunction):
return {'MAC': self.mac} if self.mac else None return {'MAC': self.mac} if self.mac else None
@six.add_metaclass(abc.ABCMeta) class Boot(VIOMElement, metaclass=abc.ABCMeta):
class Boot(VIOMElement):
"""Abstract class for BootProtocol""" """Abstract class for BootProtocol"""
_BASIC_ATTRIBUTES = [] _BASIC_ATTRIBUTES = []

View File

@@ -15,6 +15,8 @@
Test class for iRMC Power Driver Test class for iRMC Power Driver
""" """
import builtins
import io
import os import os
import time import time
from unittest import mock from unittest import mock
@@ -22,18 +24,12 @@ import xml.etree.ElementTree as ET
import defusedxml.ElementTree as dET import defusedxml.ElementTree as dET
from requests_mock.contrib import fixture as rm_fixture from requests_mock.contrib import fixture as rm_fixture
import six
import six.moves.builtins as __builtin__
import testtools import testtools
from scciclient.irmc import ipmi from scciclient.irmc import ipmi
from scciclient.irmc import scci from scciclient.irmc import scci
from scciclient.irmc import snmp from scciclient.irmc import snmp
if six.PY3:
import io
file = io.BytesIO
IRMC_CONFIG_PARTIAL = """<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> IRMC_CONFIG_PARTIAL = """<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CMDSEQ> <CMDSEQ>
@@ -1188,7 +1184,7 @@ class SCCITestCase(testtools.TestCase):
upgrade_type) upgrade_type)
self.assertEqual(expected_status, result['upgrade_status']) self.assertEqual(expected_status, result['upgrade_status'])
@mock.patch.object(__builtin__, 'open', autospec=True) @mock.patch.object(builtins, 'open', autospec=True)
def test_create_bios_firmware_upgrade(self, open_mock): def test_create_bios_firmware_upgrade(self, open_mock):
upgrade_type = 'bios' upgrade_type = 'bios'
self.requests_mock.post("http://" + self.irmc_address + "/biosupdate", self.requests_mock.post("http://" + self.irmc_address + "/biosupdate",
@@ -1210,7 +1206,7 @@ class SCCITestCase(testtools.TestCase):
r = client(bios_input) r = client(bios_input)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
@mock.patch.object(__builtin__, 'open', side_effect=IOError, autospec=True) @mock.patch.object(builtins, 'open', side_effect=IOError, autospec=True)
def test_create_fail_bios_firmware_upgrade(self, open_mock): def test_create_fail_bios_firmware_upgrade(self, open_mock):
upgrade_type = 'bios' upgrade_type = 'bios'
self.requests_mock.post("http://" + self.irmc_address + "/biosupdate", self.requests_mock.post("http://" + self.irmc_address + "/biosupdate",
@@ -1234,7 +1230,7 @@ class SCCITestCase(testtools.TestCase):
self.assertRaises(scci.SCCIClientError, client, bios_input) self.assertRaises(scci.SCCIClientError, client, bios_input)
@mock.patch.object(__builtin__, 'open', autospec=True) @mock.patch.object(builtins, 'open', autospec=True)
def test_create_irmc_firmware_upgrade(self, open_mock): def test_create_irmc_firmware_upgrade(self, open_mock):
upgrade_type = 'irmc' upgrade_type = 'irmc'
self.requests_mock.post("http://" + self.irmc_address + self.requests_mock.post("http://" + self.irmc_address +
@@ -1257,7 +1253,7 @@ class SCCITestCase(testtools.TestCase):
r = client(irmc_input) r = client(irmc_input)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
@mock.patch.object(__builtin__, 'open', side_effect=IOError, autospec=True) @mock.patch.object(builtins, 'open', side_effect=IOError, autospec=True)
def test_create_fail_irmc_firmware_upgrade(self, open_mock): def test_create_fail_irmc_firmware_upgrade(self, open_mock):
upgrade_type = 'irmc' upgrade_type = 'irmc'
self.requests_mock.post("http://" + self.irmc_address + self.requests_mock.post("http://" + self.irmc_address +
@@ -1271,7 +1267,7 @@ class SCCITestCase(testtools.TestCase):
""") """)
# Fake wrong file directory # Fake wrong file directory
irmc_input = '/media/DATA/TX2540M1111.bin' irmc_input = '/media/DATA/TX2540M1111.bin'
mock_file_handle = mock.MagicMock(spec=file) mock_file_handle = mock.MagicMock(spec=io.BytesIO)
open_mock.return_value = mock_file_handle open_mock.return_value = mock_file_handle
client = scci.get_client(self.irmc_address, client = scci.get_client(self.irmc_address,
self.irmc_username, self.irmc_username,

View File

@@ -6,6 +6,7 @@ description_file =
author = FUJITSU LIMITED author = FUJITSU LIMITED
author_email = fj-lsoft-scciclient@dl.jp.fujitsu.com author_email = fj-lsoft-scciclient@dl.jp.fujitsu.com
home_page = https://opendev.org/x/python-scciclient home_page = https://opendev.org/x/python-scciclient
python_requires = >=3.8
classifier = classifier =
Development Status :: 4 - Beta Development Status :: 4 - Beta
Environment :: Console Environment :: Console

View File

@@ -1,7 +1,3 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
coverage!=4.4,>=4.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD fixtures>=3.0.0 # Apache-2.0/BSD
python-subunit>=1.0.0 # Apache-2.0/BSD python-subunit>=1.0.0 # Apache-2.0/BSD