(6, ['install', 'kde-icons-oxygen']),
]),
+ 'a': ('Test pipelining and caching, can also interrupt to test resuming.',
+ {1: {}},
+ {1: {},
+ 2: {}},
+ [(1, ['update']),
+ (1, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
+ 'aspectj-doc', 'fop-doc', 'asis-doc',
+ 'bison-doc', 'crash-whitepaper',
+ 'bash-doc', 'apt-howto-common', 'autotools-dev',
+ 'aptitude-doc-en', 'asr-manpages',
+ 'atomix-data', 'alcovebook-sgml-doc',
+ 'afbackup-common', 'airstrike-common',
+ ]),
+ (1, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
+ 'aspectj-doc', 'fop-doc', 'asis-doc',
+ 'bison-doc', 'crash-whitepaper',
+ 'bash-doc', 'apt-howto-common', 'autotools-dev',
+ 'aptitude-doc-en', 'asr-manpages',
+ 'atomix-data', 'alcovebook-sgml-doc',
+ 'afbackup-common', 'airstrike-common',
+ ]),
+ (2, ['update']),
+ (2, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
+ 'aspectj-doc', 'fop-doc', 'asis-doc',
+ 'bison-doc', 'crash-whitepaper',
+ 'bash-doc', 'apt-howto-common', 'autotools-dev',
+ 'aptitude-doc-en', 'asr-manpages',
+ 'atomix-data', 'alcovebook-sgml-doc',
+ 'afbackup-common', 'airstrike-common',
+ ]),
+ (2, ['install', 'aboot-base', 'aap-doc', 'ada-reference-manual',
+ 'aspectj-doc', 'fop-doc', 'asis-doc',
+ 'bison-doc', 'crash-whitepaper',
+ 'bash-doc', 'apt-howto-common', 'autotools-dev',
+ 'aptitude-doc-en', 'asr-manpages',
+ 'atomix-data', 'alcovebook-sgml-doc',
+ 'afbackup-common', 'airstrike-common',
+ ]),
+ ]),
+
}
assert 'all' not in tests
# Set this to 0 to not limit the upload bandwidth.
UPLOAD_LIMIT = 100
+# The minimum number of peers before the mirror is not used.
+# If there are fewer peers than this for a file, the mirror will also be
+# used to speed up the download. Set to 0 to never use the mirror if
+# there are peers.
+MIN_DOWNLOAD_PEERS = 3
+
# Directory to store the downloaded files in
CACHE_DIR = %(CACHE_DIR)s
# for everybody to download
# OTHER_DIRS =
-# User name to try and run as
-# USERNAME =
-
# Whether it's OK to use an IP addres from a known local/private range
LOCAL_OK = yes
+# Whether a remote peer can access the statistics page
+REMOTE_STATS = yes
+
# Unload the packages cache after an interval of inactivity this long.
# The packages cache uses a lot of memory, and only takes a few seconds
# to reload when a new request arrives.
# This should be a time slightly less than the DHT's KEY_EXPIRE value.
KEY_REFRESH = 57m
+# The user name to try and run as (leave blank to run as current user)
+USERNAME =
+
# Which DHT implementation to use.
# It must be possile to do "from <DHT>.DHT import DHT" to get a class that
# implements the IDHT interface.
# whether this node is a bootstrap node
BOOTSTRAP_NODE = %(BOOTSTRAP_NODE)s
-# Kademlia "K" constant, this should be an even number
-K = 8
-
-# SHA1 is 160 bits long
-HASH_LENGTH = 160
-
# checkpoint every this many seconds
CHECKPOINT_INTERVAL = 5m
"""
+ downloader_dir = down_dir(num_down)
+ rmrf(join([downloader_dir, 'var', 'cache', 'apt', 'archives']))
+ makedirs([downloader_dir, 'var', 'cache', 'apt', 'archives', 'partial'])
+
print '*************** apt-get (' + str(num_down) + ') ' + ' '.join(cmd) + ' ****************'
apt_conf = join([down_dir(num_down), 'etc', 'apt', 'apt.conf'])
dpkg_status = join([down_dir(num_down), 'var', 'lib', 'dpkg', 'status'])
except:
pass
- # Create the directory structure needed by apt
- makedirs([downloader_dir, 'etc', 'apt', 'apt.conf.d'])
- makedirs([downloader_dir, 'var', 'lib', 'apt', 'lists', 'partial'])
- makedirs([downloader_dir, 'var', 'lib', 'dpkg'])
- makedirs([downloader_dir, 'var', 'cache', 'apt', 'archives', 'partial'])
- touch([downloader_dir, 'var', 'lib', 'apt', 'lists', 'lock'])
- touch([downloader_dir, 'var', 'lib', 'dpkg', 'lock'])
- touch([downloader_dir, 'var', 'lib', 'dpkg', 'status'])
- touch([downloader_dir, 'var', 'cache', 'apt', 'archives', 'lock'])
-
+ # Create the directory structure needed by apt
+ makedirs([downloader_dir, 'etc', 'apt', 'apt.conf.d'])
+ makedirs([downloader_dir, 'var', 'lib', 'apt', 'lists', 'partial'])
+ makedirs([downloader_dir, 'var', 'lib', 'dpkg'])
+ rmrf(join([downloader_dir, 'var', 'cache', 'apt', 'archives']))
+ makedirs([downloader_dir, 'var', 'cache', 'apt', 'archives', 'partial'])
+ touch([downloader_dir, 'var', 'lib', 'apt', 'lists', 'lock'])
+ touch([downloader_dir, 'var', 'lib', 'dpkg', 'lock'])
+ touch([downloader_dir, 'var', 'lib', 'dpkg', 'status'])
+ touch([downloader_dir, 'var', 'cache', 'apt', 'archives', 'lock'])
+
+ if not exists(join([downloader_dir, 'etc', 'apt', 'sources.list'])):
# Create apt's config files
f = open(join([downloader_dir, 'etc', 'apt', 'sources.list']), 'w')
f.write('deb http://localhost:1%02d77/%s/ unstable %s\n' % (num_down, mirror, suites))
f.close()
+ if not exists(join([downloader_dir, 'etc', 'apt', 'apt.conf'])):
f = open(join([downloader_dir, 'etc', 'apt', 'apt.conf']), 'w')
f.write('Dir "' + downloader_dir + '"')
f.write(apt_conf_template)