Use six.iterkeys(x) instead of x.keys()
Partially-Implements: blueprint designate-py3 Change-Id: Iaccc96c9f9de785d79fd7eeba026b3bcd975590e
This commit is contained in:
parent
2debd0cc08
commit
1584243ba8
|
@ -17,11 +17,11 @@ import random
|
|||
import socket
|
||||
import base64
|
||||
|
||||
import six
|
||||
import dns
|
||||
import dns.exception
|
||||
import dns.zone
|
||||
import eventlet
|
||||
import six
|
||||
from dns import rdatatype
|
||||
from oslo_log import log as logging
|
||||
from oslo_config import cfg
|
||||
|
@ -210,7 +210,7 @@ def from_dnspython_zone(dnspython_zone):
|
|||
def dnspyrecords_to_recordsetlist(dnspython_records):
|
||||
rrsets = objects.RecordList()
|
||||
|
||||
for rname in dnspython_records.keys():
|
||||
for rname in six.iterkeys(dnspython_records):
|
||||
for rdataset in dnspython_records[rname]:
|
||||
rrset = dnspythonrecord_to_recordset(rname, rdataset)
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
# under the License.
|
||||
import uuid
|
||||
|
||||
import six
|
||||
from oslo_log import log as logging
|
||||
|
||||
from designate.network_api.base import NetworkAPI
|
||||
|
@ -41,7 +42,7 @@ def allocate_floatingip(tenant_id, floatingip_id=None):
|
|||
"""
|
||||
ALLOCATIONS.setdefault(tenant_id, {})
|
||||
|
||||
id_ = floatingip_id or POOL.keys()[0]
|
||||
id_ = floatingip_id or list(six.iterkeys(POOL))[0]
|
||||
|
||||
ALLOCATIONS[tenant_id][id_] = POOL.pop(id_)
|
||||
values = _format_floatingip(id_, ALLOCATIONS[tenant_id][id_])
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
# 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 six
|
||||
from oslo_log import log as logging
|
||||
|
||||
from designate.objects.adapters.api_v2 import base
|
||||
|
@ -44,7 +45,7 @@ class PoolAttributeAPIv2Adapter(base.APIv2Adapter):
|
|||
|
||||
@classmethod
|
||||
def _parse_object(cls, values, object, *args, **kwargs):
|
||||
for key in values.keys():
|
||||
for key in six.iterkeys(values):
|
||||
object.key = key
|
||||
object.value = values[key]
|
||||
|
||||
|
@ -72,7 +73,7 @@ class PoolAttributeListAPIv2Adapter(base.APIv2Adapter):
|
|||
value = cls.get_object_adapter(
|
||||
cls.ADAPTER_FORMAT,
|
||||
object).render(cls.ADAPTER_FORMAT, object, *args, **kwargs)
|
||||
for key in value.keys():
|
||||
for key in six.iterkeys(value):
|
||||
r_list[key] = value[key]
|
||||
|
||||
return r_list
|
||||
|
|
|
@ -53,7 +53,7 @@ def make_class_properties(cls):
|
|||
# Store the results
|
||||
cls.FIELDS = fields
|
||||
|
||||
for field in cls.FIELDS.keys():
|
||||
for field in six.iterkeys(cls.FIELDS):
|
||||
def getter(self, name=field):
|
||||
self._obj_check_relation(name)
|
||||
return getattr(self, get_attrname(name), None)
|
||||
|
@ -64,7 +64,8 @@ def make_class_properties(cls):
|
|||
self._obj_changes.add(name)
|
||||
|
||||
if (self.obj_attr_is_set(name) and value != getattr(self, name)
|
||||
and name not in self._obj_original_values.keys()):
|
||||
and name not in list(six.iterkeys(
|
||||
self._obj_original_values))):
|
||||
self._obj_original_values[name] = getattr(self, name)
|
||||
|
||||
return setattr(self, get_attrname(name), value)
|
||||
|
@ -227,7 +228,7 @@ class DesignateObject(object):
|
|||
self._obj_original_values = dict()
|
||||
|
||||
for name, value in kwargs.items():
|
||||
if name in self.FIELDS.keys():
|
||||
if name in list(six.iterkeys(self.FIELDS)):
|
||||
setattr(self, name, value)
|
||||
else:
|
||||
raise TypeError("__init__() got an unexpected keyword "
|
||||
|
@ -243,7 +244,7 @@ class DesignateObject(object):
|
|||
"""
|
||||
data = {}
|
||||
|
||||
for field in self.FIELDS.keys():
|
||||
for field in six.iterkeys(self.FIELDS):
|
||||
if self.obj_attr_is_set(field):
|
||||
if isinstance(getattr(self, field), DesignateObject):
|
||||
data[field] = getattr(self, field).to_primitive()
|
||||
|
@ -261,7 +262,7 @@ class DesignateObject(object):
|
|||
"""Convert the object to a simple dictionary."""
|
||||
data = {}
|
||||
|
||||
for field in self.FIELDS.keys():
|
||||
for field in six.iterkeys(self.FIELDS):
|
||||
if self.obj_attr_is_set(field):
|
||||
if isinstance(getattr(self, field), ListObjectMixin):
|
||||
data[field] = getattr(self, field).to_list()
|
||||
|
@ -343,7 +344,7 @@ class DesignateObject(object):
|
|||
|
||||
def obj_get_original_value(self, field):
|
||||
"""Returns the original value of a field."""
|
||||
if field in self._obj_original_values.keys():
|
||||
if field in list(six.iterkeys(self._obj_original_values)):
|
||||
return self._obj_original_values[field]
|
||||
elif self.obj_attr_is_set(field):
|
||||
return getattr(self, field)
|
||||
|
@ -352,7 +353,7 @@ class DesignateObject(object):
|
|||
|
||||
def __setattr__(self, name, value):
|
||||
"""Enforces all object attributes are private or well defined"""
|
||||
if name[0:5] == '_obj_' or name in self.FIELDS.keys() \
|
||||
if name[0:5] == '_obj_' or name in list(six.iterkeys(self.FIELDS)) \
|
||||
or name == 'FIELDS':
|
||||
super(DesignateObject, self).__setattr__(name, value)
|
||||
|
||||
|
@ -375,7 +376,7 @@ class DesignateObject(object):
|
|||
|
||||
c_obj = self.__class__()
|
||||
|
||||
for field in self.FIELDS.keys():
|
||||
for field in six.iterkeys(self.FIELDS):
|
||||
if self.obj_attr_is_set(field):
|
||||
c_field = copy.deepcopy(getattr(self, field), memodict)
|
||||
setattr(c_obj, field, c_field)
|
||||
|
@ -408,10 +409,10 @@ class DictObjectMixin(object):
|
|||
setattr(self, key, value)
|
||||
|
||||
def __contains__(self, item):
|
||||
return item in self.FIELDS.keys()
|
||||
return item in list(six.iterkeys(self.FIELDS))
|
||||
|
||||
def get(self, key, default=NotSpecifiedSentinel):
|
||||
if key not in self.FIELDS.keys():
|
||||
if key not in list(six.iterkeys(self.FIELDS)):
|
||||
raise AttributeError("'%s' object has no attribute '%s'" % (
|
||||
self.__class__, key))
|
||||
|
||||
|
@ -421,12 +422,12 @@ class DictObjectMixin(object):
|
|||
return getattr(self, key)
|
||||
|
||||
def iteritems(self):
|
||||
for field in self.FIELDS.keys():
|
||||
for field in six.iterkeys(self.FIELDS):
|
||||
if self.obj_attr_is_set(field):
|
||||
yield field, getattr(self, field)
|
||||
|
||||
def __iter__(self):
|
||||
for field in self.FIELDS.keys():
|
||||
for field in six.iterkeys(self.FIELDS):
|
||||
if self.obj_attr_is_set(field):
|
||||
yield field, getattr(self, field)
|
||||
|
||||
|
@ -493,7 +494,7 @@ class ListObjectMixin(object):
|
|||
def to_primitive(self):
|
||||
data = {}
|
||||
|
||||
for field in self.FIELDS.keys():
|
||||
for field in six.iterkeys(self.FIELDS):
|
||||
if self.obj_attr_is_set(field):
|
||||
if field == 'objects':
|
||||
data[field] = [o.to_primitive() for o in self.objects]
|
||||
|
|
|
@ -25,6 +25,7 @@ such strings specially)
|
|||
|
||||
import copy
|
||||
|
||||
import six
|
||||
from oslo_serialization import jsonutils as json
|
||||
|
||||
from designate.openstack.common.report import utils as utils
|
||||
|
@ -57,7 +58,7 @@ class KeyValueView(object):
|
|||
def __call__(self, model):
|
||||
# this part deals with subviews that were already serialized
|
||||
cpy = copy.deepcopy(model)
|
||||
for key in model.keys():
|
||||
for key in six.iterkeys(model):
|
||||
if getattr(model[key], '__is_json__', False):
|
||||
cpy[key] = json.loads(model[key])
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
# 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 six
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
|
||||
|
@ -70,7 +71,8 @@ class StorageQuota(Quota):
|
|||
|
||||
self.storage.update_quota(context, quota)
|
||||
|
||||
if resource not in self.get_default_quotas(context).keys():
|
||||
if resource not in list(six.iterkeys(
|
||||
self.get_default_quotas(context))):
|
||||
raise exceptions.QuotaResourceUnknown("%s is not a valid quota "
|
||||
"resource", resource)
|
||||
|
||||
|
|
|
@ -35,9 +35,9 @@ LOG = logging.getLogger(__name__)
|
|||
def _set_object_from_model(obj, model, **extra):
|
||||
"""Update a DesignateObject with the values from a SQLA Model"""
|
||||
|
||||
for fieldname in obj.FIELDS.keys():
|
||||
for fieldname in six.iterkeys(obj.FIELDS):
|
||||
if hasattr(model, fieldname):
|
||||
if fieldname in extra.keys():
|
||||
if fieldname in six.iterkeys(extra):
|
||||
obj[fieldname] = extra[fieldname]
|
||||
else:
|
||||
obj[fieldname] = getattr(model, fieldname)
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
# 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 six
|
||||
from mock import Mock
|
||||
from mock import patch
|
||||
from oslo_config import cfg
|
||||
|
@ -102,7 +103,7 @@ class TestHookpointsConfigOpts(TestCase):
|
|||
hp = hook_point('foo')
|
||||
hp.hook_manager = Mock(return_value=get_hook_manager())
|
||||
hp(inc)
|
||||
assert hp.group in self.CONF.keys()
|
||||
assert hp.group in list(six.iterkeys(self.CONF))
|
||||
|
||||
|
||||
class TestHookpointsEnabling(TestCase):
|
||||
|
|
|
@ -214,7 +214,8 @@ def get_columns(data):
|
|||
def _seen(col):
|
||||
columns.add(str(col))
|
||||
|
||||
six.moves.map(lambda item: six.moves.map(_seen, item.keys()), data)
|
||||
six.moves.map(lambda item: six.moves.map(_seen,
|
||||
list(six.iterkeys(item))), data)
|
||||
return list(columns)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue