ring.py: Uses simplejson if avail and pep8 1.3.1
Change-Id: I1f91a82da064c9f0e64779f4fa8951962678831b
This commit is contained in:
1 changed files with 8 additions and 4 deletions
@@ -17,7 +17,6 @@ import array
import cPickle as pickle
from collections import defaultdict
from gzip import GzipFile
import json
from os.path import getmtime, join as pathjoin
import struct
from time import time
@@ -27,6 +26,11 @@ from io import BufferedReader
from swift.common.utils import hash_path, validate_configuration
from swift.common.ring.utils import tiers_for_dev
try:
import simplejson as json
except ImportError:
import json
class RingData(object):
"""Partitioned consistent hashing ring data (used for serialization)."""
@@ -74,7 +78,7 @@ class RingData(object):
ring_data = pickle.load(gz_file)
if not hasattr(ring_data, 'devs'):
ring_data = RingData(ring_data['replica2part2dev_id'],
ring_data['devs'], ring_data['part_shift'])
ring_data['devs'], ring_data['part_shift'])
return ring_data
def serialize_v1(self, file_obj):
@@ -119,7 +123,7 @@ class Ring(object):
validate_configuration()
if ring_name:
self.serialized_path = os.path.join(serialized_path,
ring_name + '.ring.gz')
ring_name + '.ring.gz')
else:
self.serialized_path = os.path.join(serialized_path)
self.reload_time = reload_time
@@ -230,7 +234,7 @@ class Ring(object):
part = struct.unpack_from('>I', key)[0] >> self._part_shift
seen_ids = set()
return part, [self._devs[r[part]] for r in self._replica2part2dev_id
if not (r[part] in seen_ids or seen_ids.add(r[part]))]
if not (r[part] in seen_ids or seen_ids.add(r[part]))]
def get_more_nodes(self, part):
"""
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.