golden hour
/usr/lib/python2.7/site-packages/yum
⬆️ Go Up
Upload
File/Folder
Size
Actions
Errors.py
4.26 KB
Del
OK
Errors.pyc
9.08 KB
Del
OK
__init__.py
304.17 KB
Del
OK
__init__.pyc
199.58 KB
Del
OK
callbacks.py
5.64 KB
Del
OK
callbacks.pyc
6.23 KB
Del
OK
comps.py
31.59 KB
Del
OK
comps.pyc
26.87 KB
Del
OK
config.py
49.89 KB
Del
OK
config.pyc
48.02 KB
Del
OK
constants.py
4.94 KB
Del
OK
constants.pyc
3.46 KB
Del
OK
depsolve.py
74.05 KB
Del
OK
depsolve.pyc
46.75 KB
Del
OK
drpm.py
12.65 KB
Del
OK
drpm.pyc
10.69 KB
Del
OK
failover.py
5 KB
Del
OK
failover.pyc
5.24 KB
Del
OK
fssnapshots.py
10.16 KB
Del
OK
fssnapshots.pyc
9.75 KB
Del
OK
history.py
61.13 KB
Del
OK
history.pyc
53.31 KB
Del
OK
i18n.py
20.44 KB
Del
OK
i18n.pyc
16.05 KB
Del
OK
igroups.py
9.31 KB
Del
OK
igroups.pyc
10.22 KB
Del
OK
logginglevels.py
7.9 KB
Del
OK
logginglevels.pyc
6.51 KB
Del
OK
mdparser.py
6.26 KB
Del
OK
mdparser.pyc
7.58 KB
Del
OK
metalink.py
9.19 KB
Del
OK
metalink.pyc
8.84 KB
Del
OK
misc.py
39.57 KB
Del
OK
misc.pyc
39.58 KB
Del
OK
packageSack.py
40.79 KB
Del
OK
packageSack.pyc
41.88 KB
Del
OK
packages.py
84.1 KB
Del
OK
packages.pyc
84.51 KB
Del
OK
parser.py
7.97 KB
Del
OK
parser.pyc
6.5 KB
Del
OK
pgpmsg.py
53.5 KB
Del
OK
pgpmsg.pyc
38.27 KB
Del
OK
pkgtag_db.py
4.86 KB
Del
OK
pkgtag_db.pyc
5.06 KB
Del
OK
plugins.py
28.1 KB
Del
OK
plugins.pyc
29.1 KB
Del
OK
repoMDObject.py
11.23 KB
Del
OK
repoMDObject.pyc
9.17 KB
Del
OK
repos.py
16.53 KB
Del
OK
repos.pyc
17.38 KB
Del
OK
rpmsack.py
70.25 KB
Del
OK
rpmsack.pyc
58.36 KB
Del
OK
rpmtrans.py
24.84 KB
Del
OK
rpmtrans.pyc
22.54 KB
Del
OK
sqlitesack.py
69.76 KB
Del
OK
sqlitesack.pyc
53.75 KB
Del
OK
sqlutils.py
6.27 KB
Del
OK
sqlutils.pyc
5.6 KB
Del
OK
transactioninfo.py
33.78 KB
Del
OK
transactioninfo.pyc
30.29 KB
Del
OK
update_md.py
25.9 KB
Del
OK
update_md.pyc
21.72 KB
Del
OK
updateinfo.py
18.29 KB
Del
OK
updateinfo.pyc
16.36 KB
Del
OK
yumRepo.py
83.85 KB
Del
OK
yumRepo.pyc
64.83 KB
Del
OK
Edit: failover.py
#!/usr/bin/python # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Copyright 2003 Jack Neely, NC State University # Here we define a base class for failover methods. The idea here is that each # failover method uses a class derived from the base class so yum only has to # worry about calling get_serverurl() and server_failed() and these classes will # figure out which URL to cough up based on the failover method. """Classes for handling failovers for server URLs.""" import random class baseFailOverMethod: """A base class to provide a failover to switch to a new server if the current one fails. """ def __init__(self, repo): self.repo = repo self.failures = 0 def get_serverurl(self, i=None): """Return a server URL based on this failover method, or None if there is a complete failure. This method should always be used to translate an index into a URL, as this object may change how indexes map. :param i: if given, this is the index of the server URL to return, instead of using the failures counter :return: the next server URL """ return None def server_failed(self): """Notify the failover method that the current server has failed. """ self.failures = self.failures + 1 def reset(self, i=0): """Reset the failures counter to the given index. :param i: the index to reset the failures counter to """ self.failures = i def get_index(self): """Return the current number of failures, which is also the current index into the list of URLs that this object represents. :fun:`get_serverurl` should always be used to translate an index into a URL, as this object may change how indexes map. :return: the current number of failures, which is also the current index """ return self.failures def len(self): """Return the total number of URLs available to cycle through in this object. :return: the total number of URLs available """ return len(self.repo.urls) class priority(baseFailOverMethod): """A class to provide a failover to switch to a new server if the current one fails. This classes chooses the next server based on the first success in the list of servers. """ def get_serverurl(self, i=None): """Return the next successful server URL in the list, or None if there is a complete failure. This method should always be used to translate an index into a URL, as this object may change how indexes map. :param i: if given, this is the index of the server URL to return, instead of using the failures counter :return: the next server URL """ if i == None: index = self.failures else: index = i if index >= len(self.repo.urls): return None return self.repo.urls[index] class roundRobin(baseFailOverMethod): """A class to provide a failover to switch to a new server if the current one fails. When an object of this class is created, it selects a random place in the list of URLs to begin with, then each time :func:`get_serveurl` is called, the next URL in the list is returned, cycling back to the beginning of the list after the end is reached. """ def __init__(self, repo): baseFailOverMethod.__init__(self, repo) random.seed() self.offset = random.randint(0, 37) def get_serverurl(self, i=None): """Return the next successful server URL in the list, using the round robin scheme, or None if there is a complete failure. This method should always be used to translate an index into a URL, as this object may change how indexes map. :param i: if given, this is the index of the server URL to return, instead of using the failures counter :return: the next server URL """ if i == None: index = self.failures else: index = i if index >= len(self.repo.urls): return None rr = (index + self.offset) % len(self.repo.urls) return self.repo.urls[rr] # SDG
Save