Пример #1
0
 def _get_pool_stats(self, pool):
     return {
         'pool_name':
         pool.name,
         'total_capacity_gb':
         utils.byte_to_gib(pool.size_total),
         'provisioned_capacity_gb':
         utils.byte_to_gib(pool.size_subscribed),
         'free_capacity_gb':
         utils.byte_to_gib(pool.size_free),
         'reserved_percentage':
         self.reserved_percentage,
         'location_info': ('%(pool_name)s|%(array_serial)s' % {
             'pool_name': pool.name,
             'array_serial': self.serial_number
         }),
         'compression_support':
         pool.is_all_flash,
         'max_over_subscription_ratio': (self.max_over_subscription_ratio),
         'multiattach':
         True,
         'replication_enabled':
         self.replication_manager.is_replication_configured,
         'replication_targets':
         list(self.replication_manager.replication_devices),
     }
Пример #2
0
 def _get_pool_stats(self, pool):
     return {
         'pool_name':
         pool.name,
         'total_capacity_gb':
         utils.byte_to_gib(pool.size_total),
         'provisioned_capacity_gb':
         utils.byte_to_gib(pool.size_subscribed),
         'free_capacity_gb':
         utils.byte_to_gib(pool.size_free),
         'reserved_percentage':
         self.reserved_percentage,
         'location_info': ('%(pool_name)s|%(array_serial)s' % {
             'pool_name': pool.name,
             'array_serial': self.serial_number
         }),
         'thin_provisioning_support':
         True,
         'thick_provisioning_support':
         True,
         'compression_support':
         pool.is_all_flash,
         'max_over_subscription_ratio': (self.max_over_subscription_ratio),
         'multiattach':
         True
     }
Пример #3
0
 def _get_pool_stats(self, pool):
     return {
         'pool_name': pool.name,
         'total_capacity_gb': utils.byte_to_gib(pool.size_total),
         'provisioned_capacity_gb': utils.byte_to_gib(
             pool.size_subscribed),
         'free_capacity_gb': utils.byte_to_gib(pool.size_free),
         'reserved_percentage': self.reserved_percentage,
         'location_info': ('%(pool_name)s|%(array_serial)s' %
                           {'pool_name': pool.name,
                            'array_serial': self.serial_number}),
         'thin_provisioning_support': True,
         'thick_provisioning_support': False,
         'max_over_subscription_ratio': (
             self.max_over_subscription_ratio)}
Пример #4
0
    def manage_existing_get_size(self, volume, existing_ref):
        """Returns size of volume to be managed by `manage_existing`.

        The driver does some check here:
        1. The LUN `existing_ref` should be managed by the `volume.host`.
        """
        lun = self._get_referenced_lun(existing_ref)
        target_pool_name = utils.get_pool_name(volume)
        lun_pool_name = lun.pool.name
        if target_pool_name and lun_pool_name != target_pool_name:
            reason = (_('The imported LUN is in pool %(pool_name)s '
                        'which is not managed by the host %(host)s.') %
                      {'pool_name': lun_pool_name,
                       'host': volume.host})
            raise exception.ManageExistingInvalidReference(
                existing_ref=existing_ref, reason=reason)

        return utils.byte_to_gib(lun.size_total)
Пример #5
0
    def manage_existing_get_size(self, volume, existing_ref):
        """Returns size of volume to be managed by `manage_existing`.

        The driver does some check here:
        1. The LUN `existing_ref` should be managed by the `volume.host`.
        """
        lun = self._get_referenced_lun(existing_ref)
        target_pool_name = utils.get_pool_name(volume)
        lun_pool_name = lun.pool.name
        if target_pool_name and lun_pool_name != target_pool_name:
            reason = (_('The imported LUN is in pool %(pool_name)s '
                        'which is not managed by the host %(host)s.') %
                      {'pool_name': lun_pool_name,
                       'host': volume.host})
            raise exception.ManageExistingInvalidReference(
                existing_ref=existing_ref, reason=reason)

        return utils.byte_to_gib(lun.size_total)
Пример #6
0
 def test_byte_to_gib(self):
     self.assertEqual(5, utils.byte_to_gib(5 * units.Gi))
Пример #7
0
 def test_byte_to_gib(self):
     self.assertEqual(5, utils.byte_to_gib(5 * units.Gi))