32
31
configuration has been written.
35
if not hookenv.config()['squid-disk-caches']:
34
if not unitdata.kv().get('squid-disk-caches'):
36
35
LOG('No on disk cache directories founds for squid.',
46
45
This must be run at installation time. Runtime tuning is unsupported.
49
config = hookenv.config()
51
for cache in config['squid-disk-caches']:
49
for cache in unitdata.kv().get('squid-disk-caches'):
52
50
avail_disk += cache[1]
53
51
LOG('{}MB of disk cache available for squid.'.format(avail_disk),
64
62
raise RuntimeError('Too little system memory for squid deployment')
66
64
# Start by giving squid a maximum of 256MB for in-memory cache
67
config['squid-cache-mem'] = min(memory, 256)
68
memory -= config['squid-cache-mem']
65
squid_cache_mem = min(memory, 256)
66
memory -= squid_cache_mem
70
68
# Estimate 20MB of memory overhead per GB of on-disk cache
71
69
max_disk = int(memory / 20.0 * 1024)
72
config['squid-cache-disk'] = min(max_disk, avail_disk)
73
disk_overhead = int(round(config['squid-cache-disk'] / 1024.0 * 20))
70
squid_cache_disk = min(max_disk, avail_disk)
71
disk_overhead = int(round(squid_cache_disk / 1024.0 * 20))
74
72
memory -= disk_overhead
76
74
# Remaining memory (up to 1/2 total RAM) is given to in-memory cache
77
config['squid-cache-mem'] += memory
78
config['squid-cache-mem'] = int(config['squid-cache-mem'])
75
squid_cache_mem += memory
76
squid_cache_mem = int(squid_cache_mem)
78
unitdata.kv().set('squid-cache-mem', squid_cache_mem)
79
unitdata.kv().set('squid-cache-disk', squid_cache_disk)
80
80
LOG('Squid sizing complete. In-memory cache: {}MB '
81
'On-disk cache: {}MB'.format(config['squid-cache-mem'],
82
config['squid-cache-disk']),
81
'On-disk cache: {}MB'.format(unitdata.kv().get('squid-cache-mem'),
82
unitdata.kv().get('squid-cache-disk')),
89
87
'''Perform the install/config and disable avahi'''
160
158
Returns a string containing the cache_dir line(s)
162
config = hookenv.config()
164
max_size = config['squid-cache-disk']
165
for path, free in config['squid-disk-caches']:
161
config = hookenv.config()
162
max_size = unitdata.kv().get('squid-cache-disk')
163
for path, free in unitdata.kv().get('squid-disk-caches'):
166
164
if config.get('cache-storage-size', 0):
167
165
size = int(config['cache-storage-size'])
183
181
config = hookenv.config()
185
183
context['Cache_Config'] = cache_dirs()
186
context['Cache_Mem'] = config['squid-cache-mem']
184
context['Cache_Mem'] = unitdata.kv().get('squid-cache-mem')
187
185
context['Cache_Peers'] = peer_config()
188
186
context['Cache_Hostname'] = hookenv.unit_private_ip()
189
187
if config['squid_snmp']: