Revision 3e5bbd85 snf-tools/synnefo_tools/burnin/common.py
b/snf-tools/synnefo_tools/burnin/common.py | ||
---|---|---|
59 | 59 |
SNF_TEST_PREFIX = "snf-test-" |
60 | 60 |
CONNECTION_RETRY_LIMIT = 2 |
61 | 61 |
SYSTEM_USERS = ["images@okeanos.grnet.gr", "images@demo.synnefo.org"] |
62 |
KB = 2**10 |
|
63 |
MB = 2**20 |
|
64 |
GB = 2**30 |
|
62 | 65 |
|
63 | 66 |
|
64 | 67 |
# -------------------------------------------------------------------- |
... | ... | |
205 | 208 |
self.info("Image url is %s", self.clients.image_url) |
206 | 209 |
|
207 | 210 |
self.quotas = self._get_quotas() |
208 |
self.info(" Disk usage is %s", |
|
211 |
self.info(" Disk usage is %s bytes",
|
|
209 | 212 |
self.quotas['system']['cyclades.disk']['usage']) |
210 | 213 |
self.info(" VM usage is %s", |
211 | 214 |
self.quotas['system']['cyclades.vm']['usage']) |
212 |
self.info(" DiskSpace usage is %s", |
|
215 |
self.info(" DiskSpace usage is %s bytes",
|
|
213 | 216 |
self.quotas['system']['pithos.diskspace']['usage']) |
214 |
self.info(" Ram usage is %s", |
|
217 |
self.info(" Ram usage is %s bytes",
|
|
215 | 218 |
self.quotas['system']['cyclades.ram']['usage']) |
216 | 219 |
self.info(" CPU usage is %s", |
217 | 220 |
self.quotas['system']['cyclades.cpu']['usage']) |
... | ... | |
480 | 483 |
# Quotas |
481 | 484 |
def _get_quotas(self): |
482 | 485 |
"""Get quotas""" |
483 |
self.info("Getting quotas for user %s", self._get_uuid())
|
|
486 |
self.info("Getting quotas")
|
|
484 | 487 |
astakos_client = self.clients.astakos.get_client() |
485 | 488 |
return astakos_client.get_quotas() |
486 | 489 |
|
490 |
# Invalid argument name. pylint: disable-msg=C0103 |
|
491 |
# Too many arguments. pylint: disable-msg=R0913 |
|
492 |
def _check_quotas(self, disk=None, vm=None, diskspace=None, |
|
493 |
ram=None, cpu=None, network=None): |
|
494 |
"""Check that quotas' changes are consistent""" |
|
495 |
assert any(v is None for v in |
|
496 |
[disk, vm, diskspace, ram, cpu, network]), \ |
|
497 |
"_check_quotas require arguments" |
|
498 |
|
|
499 |
self.info("Check that quotas' changes are consistent") |
|
500 |
old_quotas = self.quotas |
|
501 |
new_quotas = self._get_quotas() |
|
502 |
self.quotas = new_quotas |
|
503 |
|
|
504 |
# Check Disk usage |
|
505 |
self._check_quotas_aux( |
|
506 |
old_quotas, new_quotas, 'cyclades.disk', disk) |
|
507 |
# Check VM usage |
|
508 |
self._check_quotas_aux( |
|
509 |
old_quotas, new_quotas, 'cyclades.vm', vm) |
|
510 |
# Check DiskSpace usage |
|
511 |
self._check_quotas_aux( |
|
512 |
old_quotas, new_quotas, 'pithos.diskspace', diskspace) |
|
513 |
# Check Ram usage |
|
514 |
self._check_quotas_aux( |
|
515 |
old_quotas, new_quotas, 'cyclades.ram', ram) |
|
516 |
# Check CPU usage |
|
517 |
self._check_quotas_aux( |
|
518 |
old_quotas, new_quotas, 'cyclades.cpu', cpu) |
|
519 |
# Check Network usage |
|
520 |
self._check_quotas_aux( |
|
521 |
old_quotas, new_quotas, 'cyclades.network.private', network) |
|
522 |
|
|
523 |
def _check_quotas_aux(self, old_quotas, new_quotas, resource, value): |
|
524 |
"""Auxiliary function for _check_quotas""" |
|
525 |
old_value = old_quotas['system'][resource]['usage'] |
|
526 |
new_value = new_quotas['system'][resource]['usage'] |
|
527 |
if value is not None: |
|
528 |
assert isinstance(value, int), \ |
|
529 |
"%s value has to be integer" % resource |
|
530 |
old_value += value |
|
531 |
self.assertEqual(old_value, new_value, |
|
532 |
"%s quotas don't match" % resource) |
|
533 |
|
|
487 | 534 |
|
488 | 535 |
# -------------------------------------------------------------------- |
489 | 536 |
# Initialize Burnin |
Also available in: Unified diff