def __check_disks(cls, task): try: for node in task.cluster.nodes: node.volume_manager.check_disk_space_for_deployment() except errors.NotEnoughFreeSpace: raise errors.NotEnoughFreeSpace( u"Node '%s' has insufficient disk space" % node.human_readable_name)
def _check_volumes(cls, task): try: for node in task.cluster.nodes: if cls._is_disk_checking_required(node): node.volume_manager.check_volume_sizes_for_deployment() except errors.NotEnoughFreeSpace as e: raise errors.NotEnoughFreeSpace( u"Node '%s' has insufficient disk space\n%s" % (node.human_readable_name, e.message))
def _check_disks(cls, task): try: for node in task.cluster.nodes: if cls._is_disk_checking_required(node): node.volume_manager.check_disk_space_for_deployment() except errors.NotEnoughFreeSpace: raise errors.NotEnoughFreeSpace( u"Node '{0}' has insufficient disk space".format( node.human_readable_name))
def check_volume_sizes_for_deployment(self): vg_errors = [] for volume in self.allowed_volumes: vg_size = self.get_total_allocated_size(volume['id']) min_size = self.expand_generators(volume)['min_size'] if vg_size < min_size: vg_errors.append([volume['label'], min_size]) if vg_errors: msgs = ["Volume group '{0}' requires a minimum of {1}MB".format(*v) for v in vg_errors] raise errors.NotEnoughFreeSpace('\n'.join(msgs))
def check_disk_space_for_deployment(self): '''Check disks space for minimal installation. This method calls in before deployment task. :raises: errors.NotEnoughFreeSpace ''' disks_space = sum([d.size for d in self.disks]) minimal_installation_size = self.__calc_minimal_installation_size() self.__logger('Checking disks space: disks space %s, minimal size %s' % (disks_space, minimal_installation_size)) if disks_space < minimal_installation_size: raise errors.NotEnoughFreeSpace()