diff options
Diffstat (limited to 'ufo/gluster/swift/common/ring.py')
| -rw-r--r-- | ufo/gluster/swift/common/ring.py | 111 | 
1 files changed, 0 insertions, 111 deletions
diff --git a/ufo/gluster/swift/common/ring.py b/ufo/gluster/swift/common/ring.py deleted file mode 100644 index 06aab8d3763..00000000000 --- a/ufo/gluster/swift/common/ring.py +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright (c) 2013 Red Hat, Inc. -# -# 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. - -from ConfigParser import ConfigParser -from swift.common.ring import ring -from swift.common.utils import search_tree -from gluster.swift.common.Glusterfs import SWIFT_DIR - -reseller_prefix = "AUTH_" -conf_files = search_tree(SWIFT_DIR, "proxy-server*", 'conf') -if conf_files: -    conf_file = conf_files[0] - -_conf = ConfigParser() -if conf_files and _conf.read(conf_file): -    if _conf.defaults().get("reseller_prefix", None): -        reseller_prefix = _conf.defaults().get("reseller_prefix") -    else: -        for key, value in _conf._sections.items(): -            if value.get("reseller_prefix", None): -                reseller_prefix = value["reseller_prefix"] -                break - -if not reseller_prefix.endswith('_'): -    reseller_prefix = reseller_prefix + '_' - -class Ring(ring.Ring): -    def _get_part_nodes(self, part): -        seen_ids = set() -        nodes = [dev for dev in self._devs \ -                     if dev['device'] == self.acc_name \ -                     and not (dev['id'] in seen_ids \ -                                  or seen_ids.add(dev['id']))] -        if not nodes: -            nodes = [self.false_node] -        return nodes - -    def get_part_nodes(self, part): -        """ -        Get the nodes that are responsible for the partition. If one -        node is responsible for more than one replica of the same -        partition, it will only appear in the output once. - -        :param part: partition to get nodes for -        :returns: list of node dicts - -        See :func:`get_nodes` for a description of the node dicts. -        """ -        return self._get_part_nodes(part) - -    def get_nodes(self, account, container=None, obj=None): -        """ -        Get the partition and nodes for an account/container/object. -        If a node is responsible for more than one replica, it will -        only appear in the output once. -        :param account: account name -        :param container: container name -        :param obj: object name -        :returns: a tuple of (partition, list of node dicts) - -        Each node dict will have at least the following keys: -        ======  =============================================================== -        id      unique integer identifier amongst devices -        weight  a float of the relative weight of this device as compared to -                others; this indicates how many partitions the builder will try -                to assign to this device -        zone    integer indicating which zone the device is in; a given -                partition will not be assigned to multiple devices within the -                same zone -        ip      the ip address of the device -        port    the tcp port of the device -        device  the device's name on disk (sdb1, for example) -        meta    general use 'extra' field; for example: the online date, the -                hardware description -        ======  =============================================================== -        """ -        self.false_node = {'zone': 1, 'weight': 100.0, 'ip': '127.0.0.1', 'id': 0, \ -                           'meta': '', 'device': 'volume_not_in_ring', \ -                           'port': 6012} -        if account.startswith(reseller_prefix): -            self.acc_name = account.replace(reseller_prefix, '', 1) -        else: -            self.acc_name = account - -        part = 0 -        return part, self._get_part_nodes(part) - - -    def get_more_nodes(self, part): -        """ -        Generator to get extra nodes for a partition for hinted handoff. - -        :param part: partition to get handoff nodes for -        :returns: generator of node dicts - -        See :func:`get_nodes` for a description of the node dicts. -        Should never be called in the swift UFO environment, so yield nothing -        """ -        yield self.false_node  | 
