Commit aa55c23d authored by Sebastian Brzezinka's avatar Sebastian Brzezinka Committed by Ben Walker
Browse files

sma: crypto support for vhost_blk devices



The vhost_blk devices will now support volumes with encryption enabled.
Reorder 'imports' according to PEP 8.

Change-Id: Ia4ae0832f4cf91578153da7ca0a28a83707ccdca
Signed-off-by: default avatarSebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13983


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 62e82554
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
import os
import grpc
import logging
from ..common import format_volume_id
import os
from socket import AddressFamily

import grpc
from spdk.rpc.client import JSONRPCException
from .device import DeviceManager, DeviceException

from ..common import format_volume_id, volume_id_to_nguid
from ..proto import sma_pb2, virtio_blk_pb2
from ..qmp import QMPClient, QMPError
from ..proto import sma_pb2
from ..proto import virtio_blk_pb2
from ..volume import CryptoException, get_crypto_engine
from .device import DeviceException, DeviceManager


class VhostBlkDeviceManager(DeviceManager):
@@ -72,10 +74,11 @@ class VhostBlkDeviceManager(DeviceManager):
            logging.error('Failed to delete controller')
        return False

    def _find_bdev(self, client, name):
    def _find_bdev(self, client, guid):
        try:
            return client.call('bdev_get_bdevs', {'name': name})[0]
        except JSONRPCException:
            bdev_name = get_crypto_engine().get_crypto_bdev(guid) or guid
            return client.call('bdev_get_bdevs', {'name': bdev_name})[0]
        except (JSONRPCException, CryptoException):
            return None

    def _bdev_cmp(self, client, bdev1, bdev2):
@@ -89,8 +92,9 @@ class VhostBlkDeviceManager(DeviceManager):
        if nctrlr is not None:
            return self._bdev_cmp(client, nctrlr['backend_specific']['block']['bdev'], volume_guid)
        try:
            bdev_name = get_crypto_engine().get_crypto_bdev(volume_guid) or volume_guid
            return client.call('vhost_create_blk_controller',
                               {'ctrlr': ctrlr, 'dev_name': volume_guid})
                               {'ctrlr': ctrlr, 'dev_name': bdev_name})
        except JSONRPCException:
            logging.error('Failed to create subsystem')
        return False