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